C#键盘监控 - 没有足够的存储空间来处理此命令

时间:2016-10-08 12:13:31

标签: c# windows-10 keyboard-events

我一直在尝试检查程序运行时是否同时按下某些键盘按钮。 这个如果我使用的功能:

static bool IsClicked(Keys modifier, Keys key)
      {
          /**
           * Return: True, if both modifier and key are pressed
           **/
          System.Windows.Forms.KeyEventArgs e = new System.Windows.Forms.KeyEventArgs(new System.Windows.Forms.Keys());
          bool isClicked = false;
          Thread clickThread = new Thread(
          keyToCheck =>
          {
              // WHERE I GET THE ERROR:
              isClicked = ((Keyboard.GetKeyStates(Key.LeftAlt) & KeyStates.Down) > 0) && ((Keyboard.GetKeyStates(Key.P) & KeyStates.Down) > 0);
          });
          clickThread.SetApartmentState(ApartmentState.STA);
          clickThread.Start();
          clickThread.Join();
          return isClicked;
      }

但是,我一直在“keyToCheck”函数中获得Win32Exception:
“没有足够的存储空间来处理此命令”

我找到了类似问题的答案,但是,解决方案是更改注册表值,这在Windows 10上对我不起作用。在另一台计算机上运行脚本时也存在问题。

任何想法?
谢谢!

0 个答案:

没有答案