首页 新闻 会员 周边

c# Winform程序 如何让用户自定义键盘热键功能

0
悬赏园豆:50 [已解决问题] 解决于 2013-06-03 11:26

大家好!我的项目中有这样一个需求:用户可以自己定义键盘热键 。

功能和“有道词典”中的“屏幕取词”设置热键一样。

如下图的功能:

 

我用键盘钩子去实现这个功能,但一致没有处理好这个功能,求园友帮助。

james.dong的主页 james.dong | 初学一级 | 园豆:91
提问于:2013-06-01 14:31
< >
分享
最佳答案
0

我在csdn论坛里发了帖子,版主提供了CodeProject网址里面的一个作者写的程序,可以满足我的要求。

有需要的博友可以参考一下。http://bbs.csdn.net/topics/390477780

james.dong | 初学一级 |园豆:91 | 2013-06-03 11:25
其他回答(3)
0

不就是keycode么, 不行就查表

收获园豆:10
悟了 | 园豆:521 (小虾三级) | 2013-06-01 15:43

高手出现了,给个例子。菜菜鸟小弟先谢了。

支持(0) 反对(0) james.dong | 园豆:91 (初学一级) | 2013-06-01 16:49

@james.dong: 窗体KeyPreview设为true, 响应窗体KeyDown事件

支持(0) 反对(0) 悟了 | 园豆:521 (小虾三级) | 2013-06-01 17:33
0

写一个“键盘钩子”程序应该可以解决这个问题。

参考:http://blog.163.com/epeda@126/blog/static/418034782012798394905/

        http://www.cnblogs.com/Charles2008/archive/2010/04/05/1700094.html

收获园豆:30
滴答的雨 | 园豆:3660 (老鸟四级) | 2013-06-01 15:53

你给的参考我看了啊,我就是按照这种方法搞的啊,

你有没有试过,他们的方法 都是 有错误的。在实际中。没法用的或者是 有bug的。

网上都是这类文章,没有实践过的。

 

 public int MyKeyboardProc(int nCode, IntPtr wParam, IntPtr lParam)
        {
            
if (nCode >= 0)
            {
                KeyBoardHookStruct kbh 
= (KeyBoardHookStruct)Marshal.PtrToStructure(lParam, typeof(KeyBoardHookStruct));

支持(0) 反对(0) james.dong | 园豆:91 (初学一级) | 2013-06-01 16:47

@james.dong: 我没做过奥,只是了解到这样可以做

支持(0) 反对(0) 滴答的雨 | 园豆:3660 (老鸟四级) | 2013-06-01 23:19

@滴答的雨: 这边有园友刚发了一个,,,你们可以讨论下:http://www.cnblogs.com/yuanli/archive/2013/06/02/3114214.html

支持(0) 反对(0) 滴答的雨 | 园豆:3660 (老鸟四级) | 2013-06-02 20:43
0

WinForm程序使用ContextMenuStrip,不想显示出来也行,就是不绑定任何控件,菜单项可以动态设置快捷键,但是范围是窗体内相应。不是系统热键。

收获园豆:10
数据酷软件 | 园豆:130 (初学一级) | 2013-06-01 20:50

你这个不是我满足我的需球的。谢谢。

支持(0) 反对(0) james.dong | 园豆:91 (初学一级) | 2013-06-01 22:12
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册