我一直在尝试检查程序运行时是否同时按下某些键盘按钮。 这个如果我使用的功能:
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上对我不起作用。在另一台计算机上运行脚本时也存在问题。
任何想法?
谢谢!