在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
tab键 方法一:消息 postmessage(Application.ActiveFormHandle, wm_keydown, vk_tab, 0); 方法二: keybd_event(VK_TAB, 0, 0, 0); 例子1:模拟按下'A'键 例子2:模拟按下'ALT+F4'键 例子3:模拟按下'CTRL+C'键 keybd_event(17,0,0,0);
示鼠标的双击 setcursorpos(20,132); mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0); mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0); mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0); mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
键盘码参照 http://blog.sina.com.cn/s/blog_53013a8c01012nwa.html
在Windows大行其道的今天,windows界面程序受到广大用户的欢迎。对这些程序的操作不外乎两种,键盘输入控制和鼠标输入控制。有时,对于繁杂 的,或重复性的操作,我们能否通过编制程序来代替手工输入,而用程序来模拟键盘及鼠标的输入呢?答案是肯定的。这主要是通过两个API函数来实现的。 下面以Delphi为例来介绍一下如何实现这两个功能。模拟键盘我们用Keybd_event这个api函数,模拟鼠标按键用mouse_event函数。大家不用担心,在delphi里调用api函数是很方便的事。 先介绍一下Keybd_event函数。Keybd_event能触发一个按键事件,也 就是说回产生一个WM_KEYDOWN或WM_KEYUP消息。当然也可以用产生这两个消息来模拟按键,但是没有直接用这个函数方便。 Keybd_event共有四个参数,第一个为按键的虚拟键值,如回车键为vk_return, tab键为vk_tab。第二个参数为扫描码,一般不用 设置,用0代替就行。第三个参数为选项标志,如果为keydown则置0即可,如果为keyup则设成“KEYEVENTF_KEYUP”,第四个参数一 般也是置0即可。用如下代码即可实现模拟按下i键,其中的$49表示i键的虚拟键值: keybd_event($49,0,0,0); keybd_event($49,0,KEYEVENTF_KEYUP,0); ...
mouse_event最好配合setcursorpos(x,y)函数一起使用,与 Keybd_event类似,mouse_event有五个参数,第一个为选项标志,为MOUSEEVENTF_LEFTDOWN时表示左键按下,为 MOUSEEVENTF_LEFTUP表示左键松开,向系统发送相应消息。第二三个参数分别表示x,y相对位置,一般可设为0,0,第四五个参数并不重 要,一般也可设为0,0。若要得到Keybd_event和mouse_event函数的更详细的用法,可以查阅msdn或delphi帮助。下面是关于 mouse_event的示例代码:
setcursorpos(20,132); mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0); mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0); mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0); mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0); ... 上面的代码表示鼠标的双击,若要表示单击,用两个mouse_event即可(一次放下,一次松开)。 注意,不管是模拟键盘还是鼠标事件,都要注意还原,即按完键要松开,一个keydown对应一个keyup;鼠标单击 完也要松开, 不然可能影响程序的功能。
模拟键盘输入首先要用到一个API函数:keybd_event。 例子2:模拟按下'ALT+F4'键 附:常用模拟键的键值对照表。 键盘键与虚拟键码对照表 字母和数字键 数字小键盘的键 功能键 其它键
好了,希望本文能让你对模拟键盘和鼠标按键有个初步的了解,如果想更深入的了解其中的奥妙,可以查阅详实的msdn在线帮助,并多多动手实践。 附:更详细的键值表: 常数名称 十六进制值 十进制值 对应按键 VK_LBUTTON鼠标左键 VK_RBUTTON鼠标右键 VK_CANCEL控制+休息 VK_MBUTTON鼠标中键 VK_BACK Backspace键 VK_TAB Tab键 VK_CLEAR清除主要 VK_RETURN Enter键 VK_SHIFT Shift键 VK_CONTROL Ctrl键 VK_MENU Alt键 VK_PAUSE暂停关键 VK_CAPITAL Caps Lock键 VK_KANA可与输入法 VK_HANGUL可与输入法 VK_JUNJA可与输入法 VK_FINAL可与输入法 VK_HANJA可与输入法 VK_KANJI可与输入法 VK_CONVERT可与输入法 VK_NONCONVERT可与输入法 VK_ACCEPT可与输入法 VK_MODECHANGE可与输入法 VK_ESCAPE Esc键 VK_SPACE空间酒吧 VK_PRIOR页键 VK_NEXT下一页关键 VK_END END键 VK_HOME主页关键 VK_LEFT左箭头键 VK_UP向上键 VK_RIGHT右箭头键 VK_DOWN下箭头键 VK_SELECT选择关键 VK_PRINT打印键(键盘的具体) VK_EXECUTE执行关键 VK_SNAPSHOT Print Screen键 VK_INSERT插入关键 VK_DELETE Delete键 VK_HELP帮助关键 VK_LWIN左Windows键(微软键盘) VK_RWIN右Windows键(微软键盘) VK_APPS应用关键(微软键盘) VK_NUMPAD0 0键(数字键盘) VK_NUMPAD1 1键(数字键盘) VK_NUMPAD2 2键(数字键盘) VK_NUMPAD3 3键(数字键盘) VK_NUMPAD4 4键(数字键盘) VK_NUMPAD5 5键(数字键盘) VK_NUMPAD6 6键(数字键盘) VK_NUMPAD7 7键(数字键盘) VK_NUMPAD8 8键(数字键盘) VK_NUMPAD9 9键(数字键盘) VK_MULTIPLY多键(数字键盘) VK_ADD添加键(数字键盘) VK_SEPARATOR分离键(数字键盘) VK_SUBTRACT减去键(数字键盘) VK_DECIMAL小数点键(数字键盘) VK_DIVIDE鸿沟键(数字键盘) VK_F1 F1键 VK_F2 F2键 VK_F3 F3的关键 VK_F4 F4键 VK_F5 F5键 VK_F6 F6键 VK_F7 F7键 VK_F8 F8键 VK_F9 F9键 VK_F10 F10键关键 VK_F11 F11键 VK_F12 F12键 VK_F13 F13键 VK_F14 F14键 VK_F15 F15键 VK_F16 F16键 VK_F17 F17键 VK_F18 F18键 VK_F19 F19键 VK_F20 F20键 VK_F21 F21键 VK_F22 F22键 VK_F23 F23键 VK_F24 F24键 VK_NUMLOCK数Lock键 VK_SCROLL滚动Lock键 VK_LSHIFT左Shift键(仅用于GetAsyncKeyState和GetKeyState ) VK_RSHIFT右Shift键(仅用于GetAsyncKeyState和GetKeyState ) VK_LCONTROL左Ctrl键(仅用于GetAsyncKeyState和GetKeyState ) VK_RCONTROL右Ctrl键(仅用于GetAsyncKeyState和GetKeyState ) VK_LMENU左Alt键(仅用于GetAsyncKeyState和GetKeyState ) VK_RMENU右Alt键(仅用于GetAsyncKeyState和GetKeyState ) VK_PROCESSKEY工艺关键 VK_ATTN经办关键 VK_CRSEL CrSel关键 VK_EXSEL ExSel关键 VK_EREOF擦除EOF分析关键 VK_PLAY发挥关键 VK_ZOOM变焦关键 VK_NONAME保留以供将来使用 VK_PA1 PA1关键 VK_OEM_CLEAR清除主要标签数: 1 “ F14键 VK_F15 F15键 VK_F16 F16键 VK_F17 F17键 VK_F18 F18键 VK_F19 F19键 VK_F20 F20键 VK_F21 F21键 VK_F22 F22键 VK_F23 F23键 VK_F24 F24键 VK_NUMLOCK数Lock键 VK_SCROLL滚动Lock键 VK_LSHIFT左Shift键(仅用于GetAsyncKeyState和GetKeyState ) VK_RSHIFT右Shift键(仅用于GetAsyncKeyState和GetKeyState ) VK_LCONTROL左Ctrl键(仅用于GetAsyncKeyState和GetKeyState ) VK_RCONTROL右Ctrl键(仅用于GetAsyncKeyState和GetKeyState ) VK_LMENU左Alt键(仅用于GetAsyncKeyState和GetKeyState ) VK_RMENU右Alt键(仅用于GetAsyncKeyState和GetKeyState ) VK_PROCESSKEY工艺关键 VK_ATTN经办关键 VK_CRSEL CrSel关键 VK_EXSEL ExSel关键 VK_EREOF擦除EOF分析关键 VK_PLAY发挥关键 VK_ZOOM变焦关键 VK_NONAME保留以供将来使用 VK_PA1 PA1关键 VK_OEM_CLEAR清除主要 |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论