一、鼠标事件模拟使用的函数是mouse_event()函数,对于鼠标事件我们应该确定两个问题:1.鼠标点击了哪个键:左键、中键、右键?  2.鼠标点击的位置。

mouse_event()函数常常配合SetCursorPos();函数来使用。

mouse_event():

1

2

3

4

5

6

7

VOID mouse_event(

DWORD dwFlags, // motion and click options

DWORD dx, // horizontal position or change

DWORD dy, // vertical position or change

DWORD dwData, // wheel movement

ULONG_PTR dwExtraInfo // application-defined information

);

参数1:告诉系统你的鼠标事件,一共有下面的几种鼠标事件可供选择:

MOUSEEVENTF_ABSOLUTE:表明参数dX,dy含有规范化的绝对坐标。如果不设置此位,那么dX和dY是相对于上一次鼠标的位置,例如上一次鼠标通过SetCursorPos(0,0)将鼠标的位置设置为了(0,0),那么这个时候的dX和dY就是相对于(0,0)的偏移。

此标志可被设置,也可不设置,不管鼠标的类型或与系统相连的类似于鼠标的设备的类型如何。要得到关于相对鼠标动作的信息,还是需要下面的几个类型的参数的:

MOUSEEVENTF_MOVE:表明发生移动。

MOUSEEVENTF_LEFTDOWN:表明接按下鼠标左键。

MOUSEEVENTF_LEFTUP:表明松开鼠标左键。

MOUSEEVENTF_RIGHTDOWN:表明按下鼠标右键。

MOUSEEVENTF_RIGHTUP:表明松开鼠标右键。

MOUSEEVENTF_MIDDLEDOWN:表明按下鼠标中键。

MOUSEEVENTF_MIDDLEUP:表明松开鼠标中键。

MOUSEEVENTF_WHEEL:如果鼠标有一个滚轮,表明鼠标轮被移动。移动的数量由dwData给出。

参数2:事件发生的x坐标,但也可能是偏移量

参数3:事件发生的y坐标,但也可能是偏移量

参数4:dwData:,如果dwFlags为MOUSEEVENTF_WHEEL,

则dwData指定鼠标轮移动的数量。正值表明鼠

标轮向前转动,即远离用户的方向;负值表明鼠

标轮向后转动,即朝向用户。一个轮击定义为

WHEEL_DELTA,即120。

参数5:指定与鼠标事件相关的附加32位值。应用程序

调用函数GetMessageExtraInfo来获得此附

加信息。

我们以鼠标双击(100,100)这个坐标为例子写一段代码片段吧,注意对于双击来说,其实就是短时间内左键按下然后左键弹起:

1

2

3

4

5

6

7

8

9

10

//首先直接鼠标位置设置为(100,100)

SetCursorPos(100,100);

//然后,完成一次点击,(按下弹起)

mouse_event(MOUSEEVENTF_LEFTDOWN ,0,0,0,0);

mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);

//注意鼠标两次点击之间应当有一个时间间隔,否则可能不会出发双击的

Sleep(100);

//再来一次点击

mouse_event(MOUSEEVENTF_LEFTDOWN ,0,0,0,0);

mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);

二、键盘事件模拟使用函数keybd_event()函数。

VOID keybd_event(BYTE bVk,BYTE bScan,DWORD dwFlags,DWORD dwExtralnfo);

参数1:一个8位的按键虚拟码,注意是1~254之间的

参数2:定义该键的硬件扫描码:。

参数3:定义函数操作的各个方面的一个标志位集。应用程

序可使用如下一些预定义常数的组合设置标志位。

      KEYEVENTF_EXTENDEDKEY:若指定该值,则扫描码前

一个值为OXEO(224)的前缀字节。

      KEYEVENTF_KEYUP:若指定该值,该键将被释放;若

未指定该值,该键将被按下。

参数4:定义与击键相关的附加的32位值。

我们以暴风影音的播放按钮为例来模拟键盘事件:

  1. 1

  2. 1

  3. 通过模拟键盘事件,给暴风影音的播放按钮发送消息

  4. HWND hFrmWnd=::FindWindow(_T("Baofeng_StormPlayer"),NULL);

  5. if (hFrmWnd!=NULL)

  6. {

  7. ::ShowWindow(hFrmWnd,SW_SHOWNORMAL);

  8. ::SetForegroundWindow(hFrmWnd);

  9. keybd_event(VK_SPACE,0,0,0);

  10. Sleep(200);

  11. keybd_event(VK_SPACE,0,KEYEVENTF_KEYUP,0);

  12. }

三、键盘  虚拟码表

VK_LBUTTON 1 鼠标左键
VK_RBUTTON 2 鼠标右键
VK_CANCEL 3 Cancel
VK_MBUTTON 4 鼠标中键
VK_XBUTTON1 5  
VK_XBUTTON2 6  
VK_BACK 8 Backspace
VK_TAB 9 Tab
VK_CLEAR 12 Clear
VK_RETURN 13 Enter
VK_SHIFT 16 Shift
VK_CONTROL 17 Ctrl
VK_MENU 18 Alt
VK_PAUSE 19 Pause
VK_CAPITAL 20 Caps Lock
VK_KANA 21  
VK_HANGUL 21  
VK_JUNJA 23  
VK_FINAL 24  
VK_HANJA 25  
VK_KANJI 25*  
VK_ESCAPE 27 Esc
VK_CONVERT 28  
VK_NONCONVERT 29  
VK_ACCEPT 30  
VK_MODECHANGE 31  
VK_SPACE 32 Space
VK_PRIOR 33 Page Up
VK_NEXT 34 Page Down
VK_END 35 End
VK_HOME 36 Home
VK_LEFT 37 Left Arrow
VK_UP 38 Up Arrow
VK_RIGHT 39 Right Arrow
VK_DOWN 40 Down Arrow
VK_SELECT 41 Select
VK_PRINT 42 Print
VK_EXECUTE 43 Execute
VK_SNAPSHOT 44 Snapshot
VK_INSERT 45 Insert
VK_DELETE 46 Delete
VK_HELP 47 Help
  48 0
  49 1
  50 2
  51 3
  52 4
  53 5
  54 6
  55 7
  56 8
  57 9
  65 A
  66 B
  67 C
  68 D
  69 E
  70 F
  71 G
  72 H
  73 I
  74 J
  75 K
  76 L
  77 M
  78 N
  79 O
  80 P
  81 Q
  82 R
  83 S
  84 T
  85 U
  86 V
  87 W
  88 X
  89 Y
  90 Z
VK_LWIN 91  
VK_RWIN 92  
VK_APPS 93  
VK_SLEEP 95  
VK_NUMPAD0 96 小键盘 0
VK_NUMPAD1 97 小键盘 1
VK_NUMPAD2 98 小键盘 2
VK_NUMPAD3 99 小键盘 3
VK_NUMPAD4 100 小键盘 4
VK_NUMPAD5 101 小键盘 5
VK_NUMPAD6 102 小键盘 6
VK_NUMPAD7 103 小键盘 7
VK_NUMPAD8 104 小键盘 8
VK_NUMPAD9 105 小键盘 9
VK_MULTIPLY 106 小键盘 *
VK_ADD 107 小键盘 +
VK_SEPARATOR 108 小键盘 Enter
VK_SUBTRACT 109 小键盘 -
VK_DECIMAL 110 小键盘 .
VK_DIVIDE 111 小键盘 /
VK_F1 112 F1
VK_F2 113 F2
VK_F3 114 F3
VK_F4 115 F4
VK_F5 116 F5
VK_F6 117 F6
VK_F7 118 F7
VK_F8 119 F8
VK_F9 120 F9
VK_F10 121 F10
VK_F11 122 F11
VK_F12 123 F12
VK_F13 124  
VK_F14 125  
VK_F15 126  
VK_F16 127  
VK_F17 128  
VK_F18 129  
VK_F19 130  
VK_F20 131  
VK_F21 132  
VK_F22 133  
VK_F23 134  
VK_F24 135  
VK_NUMLOCK 144 Num Lock
VK_SCROLL 145 Scroll
VK_LSHIFT 160  
VK_RSHIFT 161  
VK_LCONTROL 162  
VK_RCONTROL 163  
VK_LMENU 164  
VK_RMENU 165  
VK_BROWSER_BACK 166  
VK_BROWSER_FORWARD 167  
VK_BROWSER_REFRESH 168  
VK_BROWSER_STOP 169  
VK_BROWSER_SEARCH 170  
VK_BROWSER_FAVORITES 171  
VK_BROWSER_HOME 172  
VK_VOLUME_MUTE 173 VolumeMute
VK_VOLUME_DOWN 174 VolumeDown
VK_VOLUME_UP 175 VolumeUp
VK_MEDIA_NEXT_TRACK 176  
VK_MEDIA_PREV_TRACK 177  
VK_MEDIA_STOP 178  
VK_MEDIA_PLAY_PAUSE 179  
VK_LAUNCH_MAIL 180  
VK_LAUNCH_MEDIA_SELECT 181  
VK_LAUNCH_APP1 182  
VK_LAUNCH_APP2 183  
VK_OEM_1 186 ; :
VK_OEM_PLUS 187 = +
VK_OEM_COMMA 188  
VK_OEM_MINUS 189 - _
VK_OEM_PERIOD 190  
VK_OEM_2 191 / ?
VK_OEM_3 192 ` ~
VK_OEM_4 219 [ {
VK_OEM_5 220 \ |
VK_OEM_6 221 ] }
VK_OEM_7 222 ' "
VK_OEM_8 223  
VK_OEM_102 226  
VK_PACKET 231  
VK_PROCESSKEY 229  
VK_ATTN 246  
VK_CRSEL 247  
VK_EXSEL 248  
VK_EREOF 249  
VK_PLAY 250  
VK_ZOOM 251  
VK_NONAME 252  
VK_PA1 253  
VK_OEM_CLEAR 254
VK_LBUTTON 1 鼠标左键
VK_RBUTTON 2 鼠标右键
VK_CANCEL 3 Cancel
VK_MBUTTON 4 鼠标中键
VK_XBUTTON1 5  
VK_XBUTTON2 6  
VK_BACK 8 Backspace
VK_TAB 9 Tab
VK_CLEAR 12 Clear
VK_RETURN 13 Enter
VK_SHIFT 16 Shift
VK_CONTROL 17 Ctrl
VK_MENU 18 Alt
VK_PAUSE 19 Pause
VK_CAPITAL 20 Caps Lock
VK_KANA 21  
VK_HANGUL 21  
VK_JUNJA 23  
VK_FINAL 24  
VK_HANJA 25  
VK_KANJI 25*  
VK_ESCAPE 27 Esc
VK_CONVERT 28  
VK_NONCONVERT 29  
VK_ACCEPT 30  
VK_MODECHANGE 31  
VK_SPACE 32 Space
VK_PRIOR 33 Page Up
VK_NEXT 34 Page Down
VK_END 35 End
VK_HOME 36 Home
VK_LEFT 37 Left Arrow
VK_UP 38 Up Arrow
VK_RIGHT 39 Right Arrow
VK_DOWN 40 Down Arrow
VK_SELECT 41 Select
VK_PRINT 42 Print
VK_EXECUTE 43 Execute
VK_SNAPSHOT 44 Snapshot
VK_INSERT 45 Insert
VK_DELETE 46 Delete
VK_HELP 47 Help
  48 0
  49 1
  50 2
  51 3
  52 4
  53 5
  54 6
  55 7
  56 8
  57 9
  65 A
  66 B
  67 C
  68 D
  69 E
  70 F
  71 G
  72 H
  73 I
  74 J
  75 K
  76 L
  77 M
  78 N
  79 O
  80 P
  81 Q
  82 R
  83 S
  84 T
  85 U
  86 V
  87 W
  88 X
  89 Y
  90 Z
VK_LWIN 91  
VK_RWIN 92  
VK_APPS 93  
VK_SLEEP 95  
VK_NUMPAD0 96 小键盘 0
VK_NUMPAD1 97 小键盘 1
VK_NUMPAD2 98 小键盘 2
VK_NUMPAD3 99 小键盘 3
VK_NUMPAD4 100 小键盘 4
VK_NUMPAD5 101 小键盘 5
VK_NUMPAD6 102 小键盘 6
VK_NUMPAD7 103 小键盘 7
VK_NUMPAD8 104 小键盘 8
VK_NUMPAD9 105 小键盘 9
VK_MULTIPLY 106 小键盘 *
VK_ADD 107 小键盘 +
VK_SEPARATOR 108 小键盘 Enter
VK_SUBTRACT 109 小键盘 -
VK_DECIMAL 110 小键盘 .
VK_DIVIDE 111 小键盘 /
VK_F1 112 F1
VK_F2 113 F2
VK_F3 114 F3
VK_F4 115 F4
VK_F5 116 F5
VK_F6 117 F6
VK_F7 118 F7
VK_F8 119 F8
VK_F9 120 F9
VK_F10 121 F10
VK_F11 122 F11
VK_F12 123 F12
VK_F13 124  
VK_F14 125  
VK_F15 126  
VK_F16 127  
VK_F17 128  
VK_F18 129  
VK_F19 130  
VK_F20 131  
VK_F21 132  
VK_F22 133  
VK_F23 134  
VK_F24 135  
VK_NUMLOCK 144 Num Lock
VK_SCROLL 145 Scroll
VK_LSHIFT 160  
VK_RSHIFT 161  
VK_LCONTROL 162  
VK_RCONTROL 163  
VK_LMENU 164  
VK_RMENU 165  
VK_BROWSER_BACK 166  
VK_BROWSER_FORWARD 167  
VK_BROWSER_REFRESH 168  
VK_BROWSER_STOP 169  
VK_BROWSER_SEARCH 170  
VK_BROWSER_FAVORITES 171  
VK_BROWSER_HOME 172  
VK_VOLUME_MUTE 173 VolumeMute
VK_VOLUME_DOWN 174 VolumeDown
VK_VOLUME_UP 175 VolumeUp
VK_MEDIA_NEXT_TRACK 176  
VK_MEDIA_PREV_TRACK 177  
VK_MEDIA_STOP 178  
VK_MEDIA_PLAY_PAUSE 179  
VK_LAUNCH_MAIL 180  
VK_LAUNCH_MEDIA_SELECT 181  
VK_LAUNCH_APP1 182  
VK_LAUNCH_APP2 183  
VK_OEM_1 186 ; :
VK_OEM_PLUS 187 = +
VK_OEM_COMMA 188  
VK_OEM_MINUS 189 - _
VK_OEM_PERIOD 190  
VK_OEM_2 191 / ?
VK_OEM_3 192 ` ~
VK_OEM_4 219 [ {
VK_OEM_5 220 \ |
VK_OEM_6 221 ] }
VK_OEM_7 222 ' "
VK_OEM_8 223  
VK_OEM_102 226  
VK_PACKET 231  
VK_PROCESSKEY 229  
VK_ATTN 246  
VK_CRSEL 247  
VK_EXSEL 248  
VK_EREOF 249  
VK_PLAY 250  
VK_ZOOM 251  
VK_NONAME 252  
VK_PA1 253  
VK_OEM_CLEAR 254

VC++鼠标、键盘的模拟操作相关推荐

  1. 模拟鼠标键盘html,模拟按键操作神器(鼠标键盘模拟操作助手)V2.0.2.1 正式版

    模拟按键操作神器(鼠标键盘模拟操作助手)是一款很优秀好用的由网友自制的模拟按键操作的辅助工具.如果你需要一款好用的键盘模拟软件,小编带来的这款模拟按键操作神器是很不错的选择,功能强大全面,使用后可以帮 ...

  2. Python脚本控制鼠标键盘完成机械化操作

    Python直接控制鼠标键盘 使用Python脚本直接控制键盘鼠标 安装 $ sudo pip install pyautogui 安装的依赖包可能比较多,只要耐心等待即可 控制鼠标操作 # -*- ...

  3. selenium webdriver模拟鼠标键盘操作

    在测试使用Selenium webdriver测试WEB系统的时候,用到了模拟鼠标.键盘的一些输入操作. 1.鼠标的左键点击.双击.拖拽.右键点击等: 2.键盘的回车.回退.空格.ctrl.alt.s ...

  4. Delphi下利用WinIo模拟鼠标键盘详解

    本文最早在编程论坛上发表,文章地址:http://programbbs.com/bbs/view12-17207-1.htm,相关文件可以在上述地址的页面中下载.转载时请注明出处. 前言 一日发现Se ...

  5. vba模拟鼠标点击_鼠标键盘模拟大师下载_鼠标键盘模拟大师免费版官方下载6.2...

    鼠标键盘模拟大师是目前国内唯一一款将鼠标自动点击.键盘自动输入.网页自动刷新和自动切换IP地址等功能完美结合与一体的鼠标键盘动作模拟软件,可以实现桌面及游戏的自动点击和按键点击等功能,有需要的小伙伴快 ...

  6. Delphi下利用SendInput模拟鼠标键盘

    前言 发了一篇<Delphi下利用WinIo模拟鼠标键盘详解>(http://programbbs.com/bbs/view12-17207-1.htm),再发一个利用SendInput模 ...

  7. Ubuntu18.04 鼠标键盘失灵

    问题描述 Ubuntu系统,未做特殊操作,远程登录忽然失效,过来一看发现鼠标和键盘都失灵.强制关机重启,在启动过程中以及登录界面,鼠标和键盘均正常,但是登录后,图形界面显示正常,鼠标和键盘都失灵. 解 ...

  8. ubantu系统(naro)鼠标键盘无法工作,连上了也不能工作

    在装机器人开发环境的时候,下一些准备的软件的时候,有可能误删了驱动. 导致第二天开机的时候,鼠标键盘都没用了. 光标不动,键盘无反应. wx_camera_1663850486324 上网问度娘,给出 ...

  9. android 控制电脑 源代码 鼠标,如何用鼠标键盘来控制手机?这个开源工具可以帮你做到...

    [摘要]scrcpy 可以将你的 Android 手机投屏到电脑上,并且通过鼠标和键盘来进行控制,有了它你就可以在电脑屏幕上管理手机. 手机和电脑之间的协作已经越来越常见:在电脑上登录账号,需要用手机 ...

  10. 如何用鼠标键盘来控制手机?这个开源工具可以帮你做到

    如何用鼠标键盘来控制手机?这个开源工具可以帮你做到 scrcpy 可以将你的 Android 手机投屏到电脑上,并且通过鼠标和键盘来进行控制,有了它你就可以在电脑屏幕上管理手机. 手机和电脑之间的协作 ...

最新文章

  1. No resource found that matches the given name '@style/Theme.AppCompat.Light'
  2. LVI-SAM:紧耦合的激光视觉惯导SLAM系统(Tixiao Shan新作,已开源)
  3. I.MX6 PLL5 clock hakcing
  4. js中event对象属性和方法
  5. Python学习一——Python下载安装
  6. HeapSort 堆排序
  7. Binder线程处理请求
  8. 编程基本功:一个任务的难度是不是适合自己,有没有产出,心里要有数
  9. 乐优购物学习笔记(5)
  10. CentOS mysql配置主从复制
  11. PHP案例-精彩商城教学
  12. 逗娱-游戏程序开发实习生测试题
  13. java播放MP3/APE音乐文件
  14. 苹果appstore审核等待很长时间的解决方案
  15. 2023 简单响应个人收款二维码源码 美化版
  16. 可复制的领导力(来自樊登读书会)
  17. 【天光学术】学前教育论文:幼儿园区角活动中存在的问题及有效对策(节选)
  18. springdoc swagger3 文件上传API正确写法
  19. 基本面分析:原理、类型和使用方法
  20. DisplayPort接口最详解析

热门文章

  1. 【正点原子MP157连载】第九章 STM32MP1时钟系统-摘自【正点原子】STM32MP1 M4裸机CubeIDE开发指南
  2. C++基于MFC编程——课程管理系统
  3. QT学习五之界面切换
  4. 高德地图根据经纬度获取具体城市信息
  5. 涉密计算机检查问题,针对RG涉密信息自检查工具1.0Beta检查出来的电脑泄密问题的应对措施?...
  6. 企业办理CMMI认证是怎么收费的?
  7. html 字体样式 幼圆,设置字体样式:字号大小,字体种类,字体粗细
  8. 51单片机c语言两个变量比对,51单片机C语言编程技巧
  9. (详细图解)VS2017安装教程
  10. 软件开发项目成本管理实践