当我的应用程序在静态void Main方法中启动时,我想确定是否按下了Alt或Ctrl等键,然后以某种Option-Mode启动Application。如何确定启动时是否按下某个键?
我已经发现了一些样本,但它们都导入了一个windows dll,这是我不想做的事情。
答案 0 :(得分:9)
使用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
}
答案 1 :(得分:3)
如果您确实需要在main方法中执行此操作,则必须使用
[DllImport("user32.dll")]
public static extern int GetKeyboardState(byte [] lpKeyState);
因为您通常使用的键盘静态成员在此时不起作用:
Keyboard.Modifiers Keyboard.IsKeyDown
但您可以尝试连接到Application.Startup事件并在那里进行键盘测试。
答案 2 :(得分:1)
您可能想查看this question [SO]
我遇到了同样的问题,最后检查了Loaded
事件中的键盘修饰符......