[英]Capturing the windows key in c# (wpf)
我按下任何按钮时,我写了一个小节目,在屏幕上显示声音和图像。 当我的一个小孩爬到我的膝盖上然后开始按键时,我总是开始它,当然是随机的。
它工作正常,除了2个键,其中一个是ON / OFF开关,另一个是Windows键。 (我相信CTRL-ESC的等价物)我可以按下它来拦截它,但只有在startmenu显示之后才会拦截它。
我使用的事件是UIElement.KeyDown,到目前为止我能想到的是:( e是KeyEventArgs)
if (e.Key == Key.LWin) e.Handled = true;
但是起步窗口已经显示出我害怕了。
我已经有1个回答,但非常想知道是否有任何wpf支持?
我怀疑编程主开/关开关可能不可能? 否则,任何帮助也会受到欢迎..
你需要一个键盘钩子 。 不幸的是,这必须通过P / Invoke来完成; 托管代码无法完成。
看看Baby Smash! 作者:Scott Hanselman。 它位于http://www.codeplex.com/babysmash Github的代码plex上, 网址为https://github.com/shanselman/babysmash
或者,在CodeProject上查看ShapeShow ,这是类似的。
请参阅http://msdn.microsoft.com/en-us/library/system.windows.input.key(v=VS.90).aspx
在底部你会看到一个简单的例子,我认为你正在寻找的东西是这样的:
左窗口键:System.Windows.Input.Key.LWin
右键窗口:System.Windows.Input.Key.RWin
例:
private void OnKeyDownHandler(object sender, KeyEventArgs e)
{
if (e.Key == Key.LWin) {
textBlock1.Text = "You Entered: " + textBox1.Text;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.