在c#(wpf)中捕获windows键

Pet*_*ter 6 c# keyboard wpf

我按下任何按钮时,我写了一个小节目,在屏幕上显示声音和图像.当我的一个小孩爬到我的膝盖上然后开始按键时,我总是开始它,当然是随机的.

它工作正常,除了2个键,其中一个是ON/OFF开关,另一个是Windows键.(CTRL-ESC相当于我相信)我可以在按下它时拦截它,但只有在startmenu显示之后.

我使用的事件是UIElement.KeyDown,到目前为止我能想到的是:( e是KeyEventArgs)

            if (e.Key == Key.LWin) e.Handled = true;
Run Code Online (Sandbox Code Playgroud)

但是起步窗口已经显示出我害怕了.

我已经有1个回答,但非常想知道是否有任何wpf支持?

我怀疑编程主开/关开关可能不可能?否则,任何帮助也会受到欢迎..

abh*_*ash 18

你需要一个键盘钩子.不幸的是,这必须通过P/Invoke来完成; 托管代码无法完成.

看看Baby Smash!作者:Scott Hanselman.它位于http://www.codeplex.com/babysmash Github的代码plex上,网址https://github.com/shanselman/babysmash

或者,在CodeProject上查看ShapeShow,这是类似的.