private void _keyboardListener_KeyUp(object sender, RawKeyEventArgs args)
 {
     if (_keyList.Contains(args.VKCode))
     {
         if (_keyPressed[args.VKCode])
         {
             _keyCount[args.VKCode]++;
             _saver.Save(_filenames[args.VKCode], _keyCount[args.VKCode].ToString());
             _keyPressed[args.VKCode] = false;
             _keysPerX?.AddToKeys();
         }
     }
 }
        private void Kb_KeyDown(object sender, RawKeyEventArgs args)
        {
            var keys = _settings.Get("keyList");

            bool exists = false;
            foreach (var key in keys)
            {
                if (key.Contains(args.VKCode.ToString()))
                {
                    exists = true;
                    break;
                }
            }

            BeginInvoke((MethodInvoker)(() =>
               {
               keyboardCounterKeyClick.Close();
               keyboardCounterKeyClick.Dispose();
               keyboardCounterKeyClick = null;
               if (!exists)
               {
                   //get file name to save
                   var filenameFrm = new ClickCounterFileName();
                   filenameFrm.ShowDialog();
                   string filename = filenameFrm.textBox_FileName.Text;
                   filenameFrm.Dispose();

                   //check if filename is valid
                   string invalidChars = new string(Path.GetInvalidFileNameChars());
                   foreach (var invalidChar in invalidChars)
                   {
                       if (filename.Contains(invalidChar))
                           return;
                   }

                   if (filename.Trim() != string.Empty)
                   {
                       if (!filename.EndsWith(".txt"))
                           filename += ".txt";

                       AddKey(args.VKCode, filename.Trim());
                       this.dataGridView1.Rows.Add(args.Key, "0", filename.Trim());
                   }
               }
               }));
        }
 private void _keyboardListener_KeyDown(object sender, RawKeyEventArgs args)
 {
     if (_keyList.Contains(args.VKCode))
     {
         _keyPressed[args.VKCode] = true;
     }
 }