当我的应用程序在静态void Main方法中启动时,我想确定是否按下了像Alt或Ctrl这样的键,然后以某种Option-Mode启动应用程序。如何确定在启动过程中是否按下了键?
我已经找到了一些示例,但它们都导入了一个windows dll,这是我不想做的事情。
发布于 2009-10-09 07:19:33
使用Keyboard.IsKeyDown()静态方法将帮助您检查您感兴趣的键的状态。
if (Keyboard.IsKeyDown(Key.LeftCtrl) || Keyboard.IsKeyDown(Key.RightCtrl)
|| Keyboard.IsKeyDown(Key.LeftAlt) || Keyboard.IsKeyDown(Key.RightAlt) )
{
//Load in a special mode
}
else
{
//Load standard mode
}发布于 2009-10-09 07:22:11
如果您确实需要在main方法中执行此操作,则必须使用
[DllImport("user32.dll")]
public static extern int GetKeyboardState(byte [] lpKeyState);docs here
因为您通常使用的键盘静态成员在这一点上不起作用:
Keyboard.Modifiers Keyboard.IsKeyDown
但是您可以尝试连接到Application.Startup事件并在那里进行键盘测试。
发布于 2009-10-09 08:56:34
您可能需要检查this question,以便
我也遇到了同样的问题,最终不得不在Loaded事件中检查键盘修饰符...
https://stackoverflow.com/questions/1542276
复制相似问题