windows鼠标消息处理与键盘模拟函数
1、鼠标坐标问题
BOOL GetWindowRect(
RECT x;//定义一个二维数组x
::GetWindowRect(hwnd,&x);
POINT P;//x,y RECT型 X 的指针
GetCursorPos(&p); //取当前鼠标坐标指针
SetCursorPos(x+r1.left,y+r1.top); //设置下一步鼠标坐标指针
SetCursorPos(p.x,p.y); //还原鼠标坐标
2、模拟鼠标消息
LRESULT SendMessage(
HWND hWnd,
UINT Msg,
WPARAM wParam,
LPARAM lParam
);
int x=?,y=?;
//y<<16)+x=lParam
//lParam可由SPY++拦截获取,亦可计算
//eg.x=655;y=577 lparam 0x0241028f
// 0x 0172 01f3
// y=370 x= 499
左键单击模拟:
SendMessage(hwnd,WM_LBUTTONDOWN,0,(y<<16)+x);
SendMessage(hwnd,WM_LBUTTONUP,0,(y<<16)+x);
左键双击模拟:
SendMessage(hwnd,WM_LBUTTONDBLCLK,0,(y<<16)+x);
右键单击模拟:
SendMessage(hwnd,WM_RBUTTONDOWN,0,(y<<16)+x);
SendMessage(hwnd,WM_RBUTTONUP,0,(y<<16)+x);
右键双击模拟:
SendMessage(hwnd,WM_RBUTTONDBLCLK,0,(y<<16)+x);
2、鼠标事件
VOID mouse_event(
DWORD dwFlags,
DWORD dx,
DWORD dy,
DWORD dwData,
DWORD dwExtraInfo
);
左键单击消息:
mouse_event(mouse_event_LEFTUP,0,0,0,0); //第一个参数位 鼠标操作状态
mouse_event(mouse_event_LEFTDOWN,0,0,0,0);
左键双击消息:
mouse_event(mouse_event_LBUTTONDBLCLK,0,0,0,0);
右键单击消息
mouse_event(MOUSEEVENTF_REFTUP,0,0,0,0);
mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
右键双击消息:
mouse_event(mouse_event_RBUTTONDBLCLK,0,0,0,0);
键盘模拟函数
VOID keybd_event(
BYTE bVk,
BYTE bScan,
DWORD dwFlags,
PTR dwExtraInfo
);
调用:
keybd_event(13, 0, 0 ,0); //第一参数键值 13 回车
最新文章
- OpenCv ROI操作
- 解决idea中执行maven命令失败的问题
- MySQL学习记录--生成时间日期数据
- ios开发之网络php
- Web前端开发工程师基本要求
- 跨Controllers传数据
- jQuery学习笔记---兄弟元素、子元素和父元素的获取
- 优化Myeclipse10 Building Workspace速度慢等问题
- 【转】kylin优化
- 链表(c语言实现)--------------小练习
- aspose输出表格
- LSJ_NHibernate第四章 MVC
- poj 2570 Fiber Network(floyd)
- 代码修改WinForm datagridview 样式 及数据绑定
- 百度软件开发实习生c++方向面经(一面)
- 利用C#进行AUTOCAD的二次开发
- python基础一 ------";有序";的字典
- jdk1.7安装和配置
- JavaScript模板代码总结
- Java读取Excel文件转换成JSON并转成List——(七)
热门文章
- 2014年互联网IT待遇【转载】
- 转: 跨终端Web之Hybrid App
- Table of Contents - Spring
- java操作xml的一个小例子
- 学习Slim Framework for PHP v3 (四)--get()是怎么加进去的?
- 《深入浅出WPF》 学习笔记
- 2015英特尔&#174; 实感™ (Intel&#174; RealSense™) 动手开发实验课
- CCNA长语
- Windows Phone 8开发环境搭建
- 【Unity3D】刚体与碰撞体以及is Trigger属性的意义