首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >启动时在Main-Method中获取WPF应用程序中的键盘状态

启动时在Main-Method中获取WPF应用程序中的键盘状态
EN

Stack Overflow用户
提问于 2009-10-09 07:16:28
回答 3查看 7K关注 0票数 4

当我的应用程序在静态void Main方法中启动时,我想确定是否按下了像Alt或Ctrl这样的键,然后以某种Option-Mode启动应用程序。如何确定在启动过程中是否按下了键?

我已经找到了一些示例,但它们都导入了一个windows dll,这是我不想做的事情。

EN

回答 3

Stack Overflow用户

发布于 2009-10-09 07:19:33

使用Keyboard.IsKeyDown()静态方法将帮助您检查您感兴趣的键的状态。

代码语言:javascript
复制
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
}
票数 9
EN

Stack Overflow用户

发布于 2009-10-09 07:22:11

如果您确实需要在main方法中执行此操作,则必须使用

代码语言:javascript
复制
[DllImport("user32.dll")]
public static extern int GetKeyboardState(byte [] lpKeyState);

docs here

因为您通常使用的键盘静态成员在这一点上不起作用:

Keyboard.Modifiers Keyboard.IsKeyDown

但是您可以尝试连接到Application.Startup事件并在那里进行键盘测试。

票数 3
EN

Stack Overflow用户

发布于 2009-10-09 08:56:34

您可能需要检查this question,以便

我也遇到了同样的问题,最终不得不在Loaded事件中检查键盘修饰符...

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1542276

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档