Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#全局热键(没有常用的全局钩子)_C#_Hotkeys_Keyboard Hook - Fatal编程技术网

C#全局热键(没有常用的全局钩子)

C#全局热键(没有常用的全局钩子),c#,hotkeys,keyboard-hook,C#,Hotkeys,Keyboard Hook,我正在为我的个人用途创建一个程序,它必须对一些热键做出反应。例如,当我按ctrl+win+z时,它必须执行特定的操作。目前,我可以使用user32.dll中的GetKeyState()来检测按键,但是我无法阻止它们被传递到活动应用程序。在ctrl+win+z的情况下,我希望执行的操作会发生,但如果我使用explorer,例如,explorer也会将其读取为“撤消” 显而易见的解决方案是使用“SetWindowsHookEx()”(也来自user32.dll),但是每次我尝试涉及它的解决方案(类似

我正在为我的个人用途创建一个程序,它必须对一些热键做出反应。例如,当我按ctrl+win+z时,它必须执行特定的操作。目前,我可以使用user32.dll中的GetKeyState()来检测按键,但是我无法阻止它们被传递到活动应用程序。在ctrl+win+z的情况下,我希望执行的操作会发生,但如果我使用explorer,例如,explorer也会将其读取为“撤消”

显而易见的解决方案是使用“SetWindowsHookEx()”(也来自user32.dll),但是每次我尝试涉及它的解决方案(类似于示例代码)时,第一次使用热键时,我都会大大降低速度。这是不能接受的


我希望有人能帮忙。如果需要,我可以提供更多信息。

您尝试过该功能吗?它肯定比windows钩子更容易使用。

即使在调试器之外,您也会看到这种速度减慢吗?是的。这不仅仅是一个减速。。。它是所有程序对任何输入完全无响应的可能持续4秒。在调试器中/调出调试器不会改变我所知道的任何内容。