hook函数。

my_westlife 2010-11-04 10:36:21
我的机器只是描述成了一个键盘,那我用hook函数是应该用那个中键盘的hook函数?WH_KEYBOARD_LL还是WH_KEYNOARD?而且我不知道数据传送方式。
...全文
202 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhf_198647 2010-11-09
  • 打赏
  • 举报
回复
LZ 还没解决么??
my_westlife 2010-11-06
  • 打赏
  • 举报
回复
这是我写的hook函数,大家帮我看看我那里是不是写错了。
LRESULT CALLBACK CallWndProc(int nCode,WPARAM wParam,LPARAM lParam)
{
char ch;
CString DataReceive;



KBDLLHOOKSTRUCT *pMsg = (KBDLLHOOKSTRUCT*)lParam;
if(pMsg->vkCode==1||pMsg->vkCode==VK_NUMPAD1)
ch =1;
else if(pMsg->vkCode==2||pMsg->vkCode==VK_NUMPAD2)
ch=2;
else if(pMsg->vkCode==3||pMsg->vkCode==VK_NUMPAD3)
ch =3;
else if(pMsg->vkCode==4||pMsg->vkCode==VK_NUMPAD4)
ch=4;
else if(pMsg->vkCode==5||pMsg->vkCode==VK_NUMPAD5)
ch =5;
else if(pMsg->vkCode==6||pMsg->vkCode==VK_NUMPAD6)
ch = 6;
else if(pMsg->vkCode==7||pMsg->vkCode==VK_NUMPAD7)
ch = 7;
else if(pMsg->vkCode==8||pMsg->vkCode==VK_NUMPAD8)
ch=8;
else if(pMsg->vkCode==9||pMsg->vkCode==VK_NUMPAD9)
ch = 9;
else if(pMsg->vkCode==0||pMsg->vkCode==VK_NUMPAD0)
ch =0;
else if(pMsg->vkCode==VK_DECIMAL)
ch='.';
DataReceive.Insert(DataReceive.GetLength(),ch);

return CallNextHookEx(hook,nCode,wParam,lParam);

}



hook = SetWindowsHookEx(WH_CALLWNDPROC,LowLevelKeyboardProc,theApp.m_hInstance,0);
my_westlife 2010-11-06
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 qinqijing_123 的回复:]

还没解决吗?
[/Quote]
没解决。
my_westlife 2010-11-06
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 zhf_198647 的回复:]

你外部设备是个什么东东啊?有键盘功能么?有的话没理由勾不到啊。
[/Quote]
键盘功能?就是像键盘一样可以按键?没有键盘功能,只是一个外部的IC。但是做硬件的人说按hid的协议描述成了键盘。
zhf_198647 2010-11-06
  • 打赏
  • 举报
回复
你外部设备是个什么东东啊?有键盘功能么?有的话没理由勾不到啊。
Rainqin123 2010-11-06
  • 打赏
  • 举报
回复
还没解决吗?
my_westlife 2010-11-06
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 visualeleven 的回复:]

HOOK键盘按键?
[/Quote]
对啊。我就只hook键盘按键啊。这样做是错的吗?
my_westlife 2010-11-06
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 zhf_198647 的回复:]

什么都勾不到?
连自己键盘的都勾不到?
[/Quote]
自己键盘的可以钩到。但是usb的那个外部设备却是过不到 。会不会因为它不是之恩征得键盘,所以找不到?
zhf_198647 2010-11-05
  • 打赏
  • 举报
回复
什么意思啊?外部设备描述成键盘?
那实现的是键盘功能么?
可以先用bushound软件抓数据看看
Eleven 2010-11-05
  • 打赏
  • 举报
回复
HOOK键盘按键?
手机写程序 2010-11-05
  • 打赏
  • 举报
回复
http://www.vckbase.com/document/viewdoc/?id=424
这里的WH_KEYBOARD_LL可以用.
zhf_198647 2010-11-05
  • 打赏
  • 举报
回复
什么都勾不到?
连自己键盘的都勾不到?
my_westlife 2010-11-05
  • 打赏
  • 举报
回复
?但是现在都够不到发出来的数啊。 你的意思是不管数是什么先抓到再说?
zhf_198647 2010-11-05
  • 打赏
  • 举报
回复
不如用钩子试试能不能勾到你设备发出的码

my_westlife 2010-11-05
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 qinqijing_123 的回复:]

有了,那你就把外部机器的动作当成是键盘动作一样进行监控啊,只要有动作发生就会触发软件后续处理....一直的监控还要注意::peekmessage(...)的,不然很麻烦,
[/Quote]
我是把外部机器当键盘监控的啊。所以才会用钩子函数,可是还是不行,外部的机器不是键盘,但是做硬件的负责人说,将机器描述成了键盘,我把它当建安处理就可以了。郁闷啊
my_westlife 2010-11-05
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 qinqijing_123 的回复:]

www.paper.edu.cn/index.php/default/releasepaper/.../200706-124换个思路也行,看看串口通信怎么样...这个没做过不好往下说...
[/Quote]
我看看,谢谢帮助啊!
my_westlife 2010-11-05
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 zhf_198647 的回复:]

什么意思啊?外部设备描述成键盘?
那实现的是键盘功能么?
可以先用bushound软件抓数据看看
[/Quote]
用bushound抓数据了。能传上来,可是截取不到数据。
Rainqin123 2010-11-05
  • 打赏
  • 举报
回复
www.paper.edu.cn/index.php/default/releasepaper/.../200706-124换个思路也行,看看串口通信怎么样...这个没做过不好往下说...
Rainqin123 2010-11-05
  • 打赏
  • 举报
回复
有了,那你就把外部机器的动作当成是键盘动作一样进行监控啊,只要有动作发生就会触发软件后续处理....一直的监控还要注意::peekmessage(...)的,不然很麻烦,
Rainqin123 2010-11-05
  • 打赏
  • 举报
回复
看看这个http://wenku.baidu.com/view/1f95de28915f804d2b16c15d.html
加载更多回复(6)

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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