杜 杜汉 Unregistered / Unconfirmed GUEST, unregistred user! 2006-05-08 #1 各位大大大大富翁好 请问怎么模拟键盘的硬件输入啊 不是用PostMessage或keybd_event<br>这些我都用过了不行<br>有的说用钩子 可是得到了钩子后 怎么发送啊??!!!!![][]<br>谢谢了 万分的感谢[?][?][8D][8D][][]
各位大大大大富翁好 请问怎么模拟键盘的硬件输入啊 不是用PostMessage或keybd_event<br>这些我都用过了不行<br>有的说用钩子 可是得到了钩子后 怎么发送啊??!!!!![][]<br>谢谢了 万分的感谢[?][?][8D][8D][][]
L lxggc Unregistered / Unconfirmed GUEST, unregistred user! 2006-05-09 #3 就是用 keybd_event, 关键是你要搞清楚参数的含义
大 大唐电信 Unregistered / Unconfirmed GUEST, unregistred user! 2006-05-11 #4 用模拟硬的办法来实现模拟按键<br><br>可以是用模拟硬的办法来实现.我知道的有WinIo,包含三个文件 WinIo.dll WinIo.sys WINIO.VXD <br><br>DELPHI里面我们可以在implementation 后面这样静态连接DLL<br><br> function InitializeWinIo():Boolean;stdcall;external 'WinIo.dll' name 'InitializeWinIo';<br> function GetPortVal(PortAddr:integer;PortValDWORD;bSize:BYTE):Boolean;stdcall;external 'WinIo.dll' name 'GetPortVal';<br> function SetPortVal(PortAddr:integer;PortValWORD;bSize:BYTE):Boolean;stdcall;external 'WinIo.dll' name 'SetPortVal';<br> function ShutdownWinIo():Boolean;stdcall;external 'WinIo.dll' name 'ShutdownWinIo';<br><br> 注意 WinIo.dll WinIo.sys WINIO.VXD 要放在程序的同一目录下. <br><br>先要调用 InitializeWinIo()<br><br>具体模拟一个按键的操作可以象下面这样来写.<br><br> Delay(); <br> SetPortVal($64,$D2,1);<br> Delay(); <br> SetPortVal($60,btScancode,1); //btScancode 是键盘键,笔记本和台试机可能不太一样<br> Delay(); <br> SetPortVal($64,$D2,1);<br> Delay(); <br> SetPortVal($60,btScancode or $80,1);//一次按键完成.<br><br>一定要按上面的顺序来做,否则可能造成键盘缩住了,只能硬关机了.哈..<br><br>这是我在我的电脑上测试的一些键值<br><br>IBM本本键盘键值对应的按键[可能有部分和实际不符]<br>硬键值 对应按键 keyCode<br>1 Esc键 27<br>2 1 49<br>3 2 50<br>4 3 51<br>5 4<br>6 5<br>7 6<br>8 7<br>9 8<br>A 9<br>B 0<br>D =<br>E Backspace<br>F Tab<br>10 Q<br>11 W<br>12 E<br>13 R<br>14 T<br>15 Y<br>16 U<br>17 I<br>18 O<br>19 P<br>1A [<br>1B ]
用模拟硬的办法来实现模拟按键<br><br>可以是用模拟硬的办法来实现.我知道的有WinIo,包含三个文件 WinIo.dll WinIo.sys WINIO.VXD <br><br>DELPHI里面我们可以在implementation 后面这样静态连接DLL<br><br> function InitializeWinIo():Boolean;stdcall;external 'WinIo.dll' name 'InitializeWinIo';<br> function GetPortVal(PortAddr:integer;PortValDWORD;bSize:BYTE):Boolean;stdcall;external 'WinIo.dll' name 'GetPortVal';<br> function SetPortVal(PortAddr:integer;PortValWORD;bSize:BYTE):Boolean;stdcall;external 'WinIo.dll' name 'SetPortVal';<br> function ShutdownWinIo():Boolean;stdcall;external 'WinIo.dll' name 'ShutdownWinIo';<br><br> 注意 WinIo.dll WinIo.sys WINIO.VXD 要放在程序的同一目录下. <br><br>先要调用 InitializeWinIo()<br><br>具体模拟一个按键的操作可以象下面这样来写.<br><br> Delay(); <br> SetPortVal($64,$D2,1);<br> Delay(); <br> SetPortVal($60,btScancode,1); //btScancode 是键盘键,笔记本和台试机可能不太一样<br> Delay(); <br> SetPortVal($64,$D2,1);<br> Delay(); <br> SetPortVal($60,btScancode or $80,1);//一次按键完成.<br><br>一定要按上面的顺序来做,否则可能造成键盘缩住了,只能硬关机了.哈..<br><br>这是我在我的电脑上测试的一些键值<br><br>IBM本本键盘键值对应的按键[可能有部分和实际不符]<br>硬键值 对应按键 keyCode<br>1 Esc键 27<br>2 1 49<br>3 2 50<br>4 3 51<br>5 4<br>6 5<br>7 6<br>8 7<br>9 8<br>A 9<br>B 0<br>D =<br>E Backspace<br>F Tab<br>10 Q<br>11 W<br>12 E<br>13 R<br>14 T<br>15 Y<br>16 U<br>17 I<br>18 O<br>19 P<br>1A [<br>1B ]
故 故居 Unregistered / Unconfirmed GUEST, unregistred user! 2006-05-21 #5 可能游戏防外挂吧<br>keybd_event游戏中不好用了<br>大唐兄的方法能用的话很有前途啊<br>关注一下