繁体   English   中英

在c#(wpf)中捕获windows键

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM