读书人

*关于密码键盘的有关问题

发布时间: 2012-03-30 17:32:09 作者: rapoo

*******关于密码键盘的问题
现连接了密码键盘,当在大键盘上按下 "Ctrl"和"+"的组合键,密码键盘会提示 “请输入密码”
问题是我怎么在delphi 里模拟输入 "Ctrl"和"+"的组合键,
也就是说,在Delphi里需要输入密码界面显示的同时,提示“请输入密码”(不再按大键盘上的"Ctrl"和"+"的组合键就提示)

我用以下方法测试,但是不提示!
keybd_event(VK_CONTROL,MapVirtualKey(VK_CONTROL,0),0,0);
keybd_event(VK_ADD,MapVirtualKey(VK_ADD,0),0 ,0 );

keybd_event(VK_ADD,MapVirtualKey(VK_ADD, 0),KEYEVENTF_KEYUP,0);
keybd_event(VK_CONTROL,MapVirtualKey(VK_CONTROL,0),KEYEVENTF_KEYUP,0);

请高手帮忙解决

[解决办法]
试试这样行不行?
keybd_event(VK_CONTROL, MapVirtualKey(VK_CONTROL, 0), 0, 0);
keybd_event(ord('+'), MapVirtualKey(ord('+'), 0), 0, 0);
keybd_event(ord('+'), MapVirtualKey(ord('+'), 0), KEYEVENTF_KEYUP, 0);
keybd_event(VK_CONTROL, MapVirtualKey(VK_CONTROL, 0), KEYEVENTF_KEYUP, 0);

因为一个是43,一个是107(小键盘)

[解决办法]
先SetActiveWindow
然后setfocus让edit得到焦点。
最后
keybd_event(VK_CONTROL, (BYTE)0, 0 ,0);
keybd_event(VK_ADD,(BYTE)0, 0 ,0);
keybd_event(VK_ADD, (BYTE)0, KEYEVENTF_KEYUP,0);
keybd_event(VK_CONTROL, (BYTE)0, KEYEVENTF_KEYUP,0);
你测试下行不行

读书人网 >.NET

热点推荐