当前位置:  开发笔记 > 编程语言 > 正文

解决c#中全局热键处理的最佳方法?

如何解决《解决c#中全局热键处理的最佳方法?》经验,为你挑选了3个好方法。

我找到的最好的解决方案是http://bloggablea.wordpress.com/2007/05/01/global-hotkeys-with-net/

Hotkey hk = new Hotkey();

hk.KeyCode = Keys.1;
hk.Windows = true;
hk.Pressed += delegate { Console.WriteLine("Windows+1 pressed!"); };

hk.Register(myForm); 

请注意如何将不同的lambda设置为不同的热键



1> Ohad Schneid..:

我找到的最好的解决方案是http://bloggablea.wordpress.com/2007/05/01/global-hotkeys-with-net/

Hotkey hk = new Hotkey();

hk.KeyCode = Keys.1;
hk.Windows = true;
hk.Pressed += delegate { Console.WriteLine("Windows+1 pressed!"); };

hk.Register(myForm); 

请注意如何将不同的lambda设置为不同的热键



2> arul..:

http://www.codeproject.com/KB/cs/CSLLKeyboardHook.aspx

如果你没有使用.net 3.5.


-1键盘挂钩不是全局热键的好选择.

3> Andy..:

我会通过使用P/Invoke为每个热键调用RegisterHotKey(),然后使用NativeForm(假设您使用WinForms)来通知WM_HOTKEY消息.这应该将您的大多数热键代码保存在一个地方.

推荐阅读
wurtjq
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有