【求助】想在一个服务程序中获得某个特定键盘按键的敲击信号

月小夏 2011-10-15 09:49:37
RT,想当按下一个自定义的按键,如R或者什么组合键的时候,运行的服务程序能够获取这个事件,并进行相应的操作。
看到好多人获取键盘消息都是用hook,我感觉在服务这里用不大合适。。不知道有没有简单一点的办法

谢谢~~
...全文
184 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
月小夏 2011-10-16
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 lactoferrin 的回复:]

如果你的服务是内核模式驱动程序,则很简单,网上代码一堆
如果是用户模式程序,则需要在active console session-winsta0-input desktop下创建子进程来记录,服务进程自己安装的键盘hook或raw input是没用的
服务程序可以通过打开并读取\Device\KeyboardClass0设备来记录键盘,但这会和csrss产生竞争
[/Quote]

是用户模式程序,麻烦您再详细说一下好吗??或者有没有相关的资料??谢谢~
Lactoferrin 2011-10-16
  • 打赏
  • 举报
回复
如果你的服务是内核模式驱动程序,则很简单,网上代码一堆
如果是用户模式程序,则需要在active console session-winsta0-input desktop下创建子进程来记录,服务进程自己安装的键盘hook或raw input是没用的
服务程序可以通过打开并读取\Device\KeyboardClass0设备来记录键盘,但这会和csrss产生竞争
endless_love123 2011-10-16
  • 打赏
  • 举报
回复
没有界面的话,我所知道的也就是HOOK了,不过我不太会钩,曾经钩过一次,不过好麻烦……过完了,过几天,我自己看代码,都晕了……这种可能需要去找点网络安全编程方面的书吧,HOOK一般破坏程序之类的比较喜欢用,黑客还可以监听你键盘按键的频率之类。
月小夏 2011-10-16
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 endless_love123 的回复:]

如果是在界面中进行的话,好像可以通过监听键盘事件,来获取按下的按键,然后处理?
其实我也只是想到了HOOK,看到了楼上有人说至少4种方法,想半天,想出来这种,不知道算不算?
[/Quote]

谢谢楼上,我其实主要是想在服务程序中完成,没有窗口,所以感觉hook有些麻烦,也可能是我不知道简单的办法。。。

继续求答案。。
endless_love123 2011-10-16
  • 打赏
  • 举报
回复
如果是在界面中进行的话,好像可以通过监听键盘事件,来获取按下的按键,然后处理?
其实我也只是想到了HOOK,看到了楼上有人说至少4种方法,想半天,想出来这种,不知道算不算?
Lactoferrin 2011-10-15
  • 打赏
  • 举报
回复
至少有4种方法
月小夏 2011-10-15
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 lijianli9 的回复:]

目前也只能想到的是hook
[/Quote]

我刚开始接触windows编程,感觉概念很模糊,请问有没有专门介绍hook的资料,我得细细看看才知道怎么完成。。有好的书或资料推荐码???
lijianli9 2011-10-15
  • 打赏
  • 举报
回复
目前也只能想到的是hook
月小夏 2011-10-15
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 l460602540 的回复:]
孙鑫的vc开发技术详解里有关于HOOK的介绍。LZ可以看看。

下面是我认为的实现方式:

1.在类中定义一个BOOL类型pubic的变量初始值为FALSE。
2.在钩子函数中判断是否是需要响应的消息。赋值为true
3.在响应函数中进行判断,如果是执行所有代码后赋值为FALSE

个人建议不知道有没有帮助。
[/Quote]


谢谢~~我看看资料试一下~~~
l460602540 2011-10-15
  • 打赏
  • 举报
回复
孙鑫的vc开发技术详解里有关于HOOK的介绍。LZ可以看看。

下面是我认为的实现方式:

1.在类中定义一个BOOL类型pubic的变量初始值为FALSE。
2.在钩子函数中判断是否是需要响应的消息。赋值为true
3.在响应函数中进行判断,如果是执行所有代码后赋值为FALSE

个人建议不知道有没有帮助。

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧