1、鼠标坐标问题

BOOL GetWindowRect(

   HWND hWnd,
    LPRECT lpRect
 );

  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 回车

windows鼠标消息处理与键盘模拟函数的更多相关文章

  1. TWinControl的消息覆盖函数大全(41个WM_函数和31个CM_函数,它的WndProc就处理鼠标(转发)、键盘(取消拖动)、焦点、和WM_NCHITTEST一共4类消息)

    注意,这些函数只有Private一种形式(也就是不允许覆盖,但仍在动态表格中): 其中TWinControl对TControl有10个消息进行了覆盖(红色标记),其中有2个是WM_消息,8个是CM_消 ...

  2. windows7如何用键盘模拟鼠标操作

    windows7如何用键盘模拟鼠标操作 https://jingyan.baidu.com/article/6dad5075104907a123e36e38.html 听语音 37453人看了这个视频 ...

  3. OpenCV学习3-----利用鼠标、键盘回调函数实现标定人体关节点

    最近做实验,需要一些人体关节点的ground truth,需要自己手动标定,于是尝试使用OpenCV的鼠标键盘回调函数实现. 期间遇到不少问题,记录一下. 首先就是鼠标回调函数注册, namedWin ...

  4. python+selenium三:鼠标事件与键盘事件

    1.鼠标事件:# 每个模拟事件后需加.perform() 才会执行# context_click() 右击# double_click() 双击# drag_and_drop(source, targ ...

  5. 基于OpenGL编写一个简易的2D渲染框架-07 鼠标事件和键盘事件

    这次为程序添加鼠标事件和键盘事件 当检测到鼠标事件和键盘事件的信息时,捕获其信息并将信息传送到需要信息的对象处理.为此,需要一个可以分派信息的对象,这个对象能够正确的把信息交到正确的对象. 实现思路: ...

  6. 前端(十五)—— JavaScript事件:绑定事件方式、事件的冒泡和默认事件、鼠标事件、键盘事件、表单 事件、文档事件、图片事件、页面事件

    JS事件:绑定事件方式.事件的冒泡和默认事件.鼠标事件.键盘事件.表单 事件.文档事件.图片事件.页面事件 一.事件的两种绑定方式 1.on事件绑定方式 document.onclick = func ...

  7. 【Selenium02篇】python+selenium实现Web自动化:鼠标操作和键盘操作!

    一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 这是python+selenium实现Web自动化第二篇博 ...

  8. JavaScript模拟函数重载

    JavaScript是没有函数重载的,但是我们可以通过其他方法来模拟函数重载,如下所示: <!DOCTYPE html> <html> <head> <met ...

  9. Delphi For Android 开发笔记-附:如何Delphi中同时实现Windows、Android版的GetModuleFileName函数

    在Windows中开发DLL时,经常会需要获取当前DLL所在目录以便读取同目录下的其他文件,而目前Delphi在开发android时,其实没多大必要获取,因为整个工程只有一个so文件,而这个so文件也 ...

随机推荐

  1. 实现 kindle 原生系统、多看系弹出注释的通用写法

    入手 Kindle 后开始自己做 ePub,之前一直用原生系统,使用的弹出注释代码如下: <p class="P_Footnote" id="ref_footnot ...

  2. 获得自动增长的MySQL主键

    下面的脚本教您如何获得自动增长的MySQL主键,如果您对MySQL主键方面感兴趣的话,不妨一看,相信对您学习MySQL主键方面会有所启迪. import java.sql.Connection; im ...

  3. asp.net从一个页面的单击按钮事件控制另一个页面的刷新

    分步说(比如你的三个页面分别为main.aspx; left.aspx;right.aspx,且点击left.aspx页面的button,则right.aspx刷新): 1. 在父页面main.asp ...

  4. DCL,DDL,DML,DQL

    DCL(Data Control Language)是数据库控制语言. 是用来设置或更改数据库用户或角色权限的语句,包括(grant,deny,revoke等)语句. 在默认状态下,只有sysadmi ...

  5. 【学习笔记】【C语言】类型说明符

    1. short和long 1> short和long可以提供不同长度的整型数,也就是可以改变整型数的取值范围.在64bit编译器环境下,int占用4个字节(32bit),取值范围是-231~2 ...

  6. asp.net 客户邮件群发功能 SendMail 发送静态化html

    背景:现在几乎每个企业都要用到邮箱,而在大客户量情况下,为我们的不同等级的客户送上节日关怀,以及把我们的喜讯.新品通知到他们是我们急需解决的问题.效果如图 思路: 1.静态化网页模版,首先考虑需要发送 ...

  7. 理解C#系列 / 核心C# / 判断&循环&跳转

    判断&循环&跳转 说明 本节写的是C#语言的控制程序流的语句,“控制程序流”就是控制程序运行流程的意思. 判断 很容易理解:如果……就…… if语句:测试特定条件是否满足,如果满足就执 ...

  8. AMQ学习笔记 - 16. 确认机制的测试

    概述 对Acknowledge机制进行测试. 此处的测试是针对Consumer的确认设计的:对于Producer的确认是透明的,无法提供测试. 测试实例 设计demo,测试三种确认机制. 测试机制 测 ...

  9. acount

    #include<iostream> using namespace std; class account { public: int de( int i, double b, doubl ...

  10. Linux实现的IEEE 802.q VLAN

    本文转载自: http://blog.chinaunix.net/uid-20786208-id-4291059.html Technorati 标签: Linux VLAN   ---------- ...