用Mouse_event()来控制鼠标操作

C#实现键盘鼠标模拟器 /MOUSEEVENTF_WHEEL:在Windows NT中如果鼠标有一个轮,表明鼠标轮被移动。//MOUSEEVENTF_LEFTDOWN:表明接按下鼠标左键。//MOUSEEVENTF_RIGHTDOWN:表明按下鼠标右键。 C#实现键盘鼠标模拟器 阅读详情

用Mouse_event()来控制鼠标操作

已有 238 次阅读   2010-01-10 23:34    标签:   鼠标   event   Mouse 
      在自动化测试的开发中,有一些控件的ID是很难找到的,所以有些时候,我们直接设置鼠标的位置,然后是用click事件,会收到很好的效果。在Windows API中有个mouse_event函数为我们准备好了这一切。 
    这个函数在user32.dll这个库文件里面。我们可以在C:/WINDOWS/system32(XP系统)这个目录下找到这个文件,他是系统自带的。 我们以C#直接调用这个文件中的API为例子来说下怎么进行鼠标操作,首先在我们C#中声明引用,如果是一个基于From的程序,这个声明的位置写在你的From class就可以了 
[System.Runtime.InteropServices.DllImport("user32")] 
private static extern int mouse_event(int dwFlags, int dx, int dy, int cButtons, int dwExtraInfo); 
参数 意义 
dwFlags Long,下表中标志之一或它们的组合 
dx,dy Long,根据MOUSEEVENTF_ABSOLUTE标志,指定x,y方向的绝对位置或相对位置 
cButtons Long,没有使用 
dwExtraInfo Long,没有使用 
dwFlags常数 意义 
const int MOUSEEVENTF_MOVE = 0x0001;      移动鼠标 
const int MOUSEEVENTF_LEFTDOWN = 0x0002; 模拟鼠标左键按下 
const int MOUSEEVENTF_LEFTUP = 0x0004; 模拟鼠标左键抬起 
const int MOUSEEVENTF_RIGHTDOWN = 0x0008; 模拟鼠标右键按下 
const int MOUSEEVENTF_RIGHTUP = 0x0010; 模拟鼠标右键抬起 
const int MOUSEEVENTF_MIDDLEDOWN = 0x0020; 模拟鼠标中键按下 
const int MOUSEEVENTF_MIDDLEUP = 0x0040; 模拟鼠标中键抬起 
const int MOUSEEVENTF_ABSOLUTE = 0x8000; 标示是否采用绝对坐标 
 
程序中我们直接调用mouse_event函数就可以了 
mouse_event(MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE, 500, 500, 0, 0); 
1、这里是鼠标左键按下和松开两个事件的组合即一次单击: 
mouse_event (MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 ) 
2、模拟鼠标右键单击事件: 
mouse_event (MOUSEEVENTF_RIGHTDOWN | MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0 ) 
3、两次连续的鼠标左键单击事件 构成一次鼠标双击事件: 
mouse_event (MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 )
mouse_event (MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 ) 
4、使用绝对坐标 
MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE, 500, 500, 0, 0 
需要说明的是,如果没有使用MOUSEEVENTF_ABSOLUTE,函数默认的是相对于鼠标当前位置的点,如果dx,和dy,用0,0表示,这函数认为是当前鼠标所在的点。
5、直接设定绝对坐标并单击
mouse_event(MOUSEEVENTF_LEFTDOWN, X * 65536 / 1024, Y * 65536 / 768, 0, 0); 
mouse_event(MOUSEEVENTF_LEFTUP, X * 65536 / 1024, Y * 65536 / 768, 0, 0); 
其中X,Y分别是你要点击的点的横坐标和纵坐标

C# 模拟鼠标发送消息(mouse_event) 想必有很多人在项目开发中可能遇见需要做模拟鼠标点击的小功能,很多人会在百度过后采用mouse_event这个函数,不过我并不想讨论如何去使用mouse_event函数怎么去使用,因为那没有多大意义。 static void mouse_event(int dwFlags, int dx, int dy, int cButtons, int dwExtraInfo) { int x = dx, y = dy; edit_position(dwFlags, dx, dy, ref x, ref y) 阅读详情

相关推荐

Qt使用API实现鼠标点击操作

hWnd:指定要接收消息的窗口的句柄。给出的绝对数据作为鼠标的实际y坐标,给出的相对数据作为移动的mickeys数。思路:首先你需要获取组件在窗口上的相对坐标,然后再进行点击,这是因为,组件相对于窗口,这个坐标是恒定不变的,变化的只是窗口本身在桌面的位置,获取窗口在桌面的位置,需要先获取当前显示器的分辨率。思路:首先你需要获取组件在窗口上的相对坐标,然后再进行点击,这是因为,组件相对于窗口,这个坐标是恒定不变的,变化的只是窗口本身在桌面的位置,获取窗口在桌面的位置,需要先获取当前显示器的分辨率。

QtCompany的博客 1853

使用API函数mouse_event可以模拟鼠标事件

使用API函数mouse_event可以模拟鼠标事件 使用API函数mouse_event可以模拟鼠标;先在程序中加入如下的声明后,就能引用mouse_;PrivateDeclareSubmouse_e;其中各个参数的意义如下表所示:;参数意义;dwFlagsLong,下表中标志之一或它们的组;dx,dyLong,根据MOUSEEVENTF_;cButtonsLong

linus_Robot的博客 4万+

控制台界面控制(十):读取鼠标操作

我在看到这一章之前一直不知道控制台也能通过鼠标来操作。控制台的鼠标操作需要得到鼠标位置信息,左右键信息,单双击等等。 效果 当鼠标在控制台范围内的时候,第一行会显示鼠标的位置;左键单击在鼠标当前位置写下一个A,右键单击在鼠标当前位置写下一个a;左键双击控制台退出。 相关信息 与读取键盘信息类似,读取鼠标信息也是通过 ReadConsoleInput

bnb45的专栏 1万+

VC 动态控制鼠标点击事件

在完成实例之前,我们先来学习mouse_event()这个函数函数功能:该函数综合鼠标击键和鼠标动作。  函数原型:   VOID mouse_event(  DWORD dwFlags, // motion and click options  DWORD dx, // horizontal position or change  DWORD dy, // verti

独爱糕 7327

C/C++ Windows.h 鼠标键盘操作

现在有些情况下我们需要用鼠标或键盘重复做某些操作,一次两次还好,当我们需要重复做100次或远程控制时,我们就需要用到鼠标键盘操作。这时,我们就要用Windows.h来实现了。

luckzjm的博客 4860

鼠标事件(MouseEvent)在QT中的应用

鼠标事件(MouseEvent)是指在计算机应用中,与鼠标设备的交互过程中发生的各种动作和状态变化的事件。QT是一种流行的跨平台应用程序开发框架,它提供了丰富的功能和工具来处理用户界面的交互。本文将介绍在QT中如何处理鼠标事件,并提供相应的源代码示例。我们在函数中判断鼠标按下的按钮类型,并执行相应的处理逻辑。,如果是,则进一步判断鼠标按下的按钮类型(左键或右键),并进行相应的处理逻辑。当按钮被点击时,我们的自定义鼠标事件处理函数将被调用。在上述示例代码中,我们创建了一个自定义的事件过滤器类。

TechRoarX的博客 391

mouse_event() 控制鼠标操作

在自动化测试的开发中,有一些控件的ID是很难找到的,所以有些时候,我们直接设置鼠标的位置,然后是用click事件,会收到很好的效果。在Windows API中有个mouse_event函数为我们准备好了这一切。 这个函数在user32.dll这个库文件里面。我们可以在C:/WINDOWS/system32(XP系统)这个目录下找到这个文件,他是系统自带的。 我们以C#直接调用这个文件中的API为...

HelloKandy's Blog 2万+

《解锁GCC版本选择的奥秘:从入门到精通》

GCC 版本的选择是一项复杂而关键的决策,犹如一场精心策划的战略布局,贯穿于软件开发的整个生命周期。从项目需求与兼容性的深度考量,到性能与稳定性的权衡抉择,再到硬件与系统适配的精准对接,每一个环节都紧密相连,相互影响。在游戏开发行业,对性能的极致追求促使开发者青睐较新的 GCC 版本,以实现更流畅的游戏体验和更震撼的视觉效果;科学计算领域则依赖于 GCC 版本对复杂数学运算的高效优化,以应对大规模数据处理的挑战;嵌入式开发行业因硬件资源的限制和对稳定性的严苛要求,通常选择经过长期验证的稳定版本;

zheng_ruiguo的专栏 1419

mouse_event()函数控制鼠标操作

在自动化测试的开发中,有一些控件的ID是很难找到的,所以有些时候,我们直接设置鼠标的位置,然后是用click事件,会收到很好的效果。在Windows API中有个mouse_event函数为我们准备好了这一切。 这个函数在user32.dll这个库文件里面。我们可以在C:/WINDOWS/system32(XP系统)这个目录下找到这个文件,他是系统自带的。 我们以C#直接调用这个文件中的AP

岁月如风的博客 3万+

【没有网络,安装python包】如何从 PyPI 下载并安装 Plotly 的离线包

在某些情况下,您可能需要在没有互联网连接的环境中安装 Python 包,例如在飞机上、在某些受限制的网络环境中或在需要离线安装的场景下。以下是如何在 PyPI(Python Package Index)下载 Plotly 包并进行离线安装的详细步骤。

赖德发的博客 1105

为什么你的PROFINET IRT同步性能不达标?等时模式常见配置误区盘点

本文深入剖析了PROFINET IRT等时模式同步性能不达标的常见原因。文章直击痛点,系统盘点了从硬件兼容性、拓扑组态、过程映像分区分配,到同步OB配置、时序参数调校及带宽管理等关键环节的配置误区,并提供了实用的诊断思路与性能优化清单,帮助工程师精准定位并解决同步抖动、时序混乱等难题。

ujm5678901的博客 457

C语言 在程序中打开网页,模拟鼠标点击、键盘输入

C语言 在程序中打开网页,模拟鼠标点击、键盘输入 一、简述 记--使用C语言 打开指定网页,并模拟鼠标点击、键盘输入。实现半自动填写账号密码,并登录网站(当然现在的大部分网站都有验证码,或有检测"非人为"操作,以防止恶意注册、登录)。 例子打包:链接: https://pan.baidu.com/s/1eStV0lAcmr8kmEA0n3LRcg 提取码: 7k...

SurpassLi的专栏 90

Pixhawk固定翼飞行控制实战:L1与TECS算法详解(附代码解析)

本文深入解析了Pixhawk飞控在固定翼无人机中的核心控制算法:L1导航与TECS总能量控制。通过剖析算法原理、代码实现与实战调参,帮助开发者解决航线跟踪振荡、高度速度不稳定等常见问题,实现精准稳定的自主飞行。

wine的专栏 744

VC控制鼠标操作

[转载]http://blog.youkuaiyun.com/aidy22/archive/2009/08/18/4457725.aspx 在完成实例之前,我们先来学习mouse_event()这个函数 函数功能:该函数综合鼠标击键和鼠标动作。   函数原型:   VOID mouse_event(   DWORD dwFlags, // motion and click options   ...

数据库天地 125

基于灰度区域生长算法的红外目标检测算法matlab仿真

基于灰度区域生长算法的红外目标检测算法是一种常用的红外目标检测技术。它通过对红外图像进行灰度区域生长,找到具有相似灰度值的像素区域来检测目标。在本文中,我们将详细介绍基于灰度区域生长算法的红外目标检测算法的原理、步骤和应用。一、原理灰度区域生长算法是一种基于像素相似性的区域分割算法。它通过对图像中具有相似灰度值的像素进行聚类,将它们组合成更大的区域。灰度区域生长算法通常包括以下步骤:1.初始化:选择一个种子点作为起始点,将其作为第一个区域的中心点。

平时工作较为繁忙,私信消息一般晚上回复,谢谢大家~~ 251

DSI3协议介绍

分布式系统接口(DSI)是一种通用且功能强大的总线协议,旨在将多个遥感器和执行器设备互连到中央控制模块。该网络的主要目标应用是汽车安全系统。这种应用的一些特点是需要低成本、高鲁棒性、中速互连,仅限于两根导线。此外,它必须具有故障安全性、确定性和良好的EMC特性。即使具有所有级别的智能和可编程性的设备都可以连接到网络,远程设备也必须能够通过简单的状态机实现。由于模块尺寸非常重要,因此中央模块和远程单元中的最小组件至关重要。

汽车电子软件领域知识分享 1万+

滑稽,用C语言搞个鼠标连点器

/ 头秃 / 头秃 / 头秃 / 头秃

King 2329

对MixPad精灵(触屏语音开关)进行解剖分析

概述 最近有点忙,已经很久没有更新文章了,对不起各位网友啦~ 这次对ORVIBO的新产品:MixPad精灵款的来个剖析,希望对大家有所帮助! 首先,我买了一台对应的设备,直接去官网采购,价格吗还算OK,400多的价格。 拆箱的过程我就不写了,简单的上个图就行了。 一、拆包: 主屏板包装盒(顶部): 主屏板包装盒(底部): 后盖电源部分无内容,我就不拍了,给优快云空间省点存储位置。 二、设备剖析开始 接下来,我们开始对设备进行剖析,步骤如下: 1、拆掉主屏板后盖板,...

LeeKwen的专栏 3946

C++模拟鼠标点击和键盘输入的操作 mouse_event & keybd_event

相关环境 操作系统:Win10 企业版 编译环境:MinGW 相关说明 参考资料:windows API,里面很详细,爱死了 使用的Windows API中的 mouse_event() 和 keybd_event()。 mouse_event private static extern int mouse_event(int dwFlags, int dx, int dy, int cButto...

Love丶伊卡洛斯 2万+

QGIS004:【05矢量属性表】-保留字段、删除字段、添加唯一值索引字段、添加字段到属性表、添加自增量字段、添加XY字段到图层、文本型转浮点型、重构字段、重命名字段

摘要:QGIS矢量属性表工具箱包括保留字段、删除字段、添加唯一值索引字段、添加字段到属性表、添加自增量字段、添加XY字段到图层、文本型转浮点型、重构字段、重命名字段等选项,本文介绍各选项的基本操作。

qq_31762031的博客 2312

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

mouse_event实现鼠标拖动

win10系统c++通过mouse_event实现鼠标精确移动。 核心移动代码: //选中 mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0); //移动 mouse_event(MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE, newpos[0], //x偏移后的值,偏移后的值若大于6553...

zxcvvqw的博客 4788

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

C语言控制和鼠标键盘 (windows环境)

C语言控制鼠标点击以及键盘输入使用场景主要的几个函数介绍实例键盘输入对应值 使用场景 当需要实现一些重复的点击,或者自动输入的情况下,可以使用到类似的功能,例如网页的自动刷新,QQ的自动输入,(嘴炮连发也可以)等,自己发掘呗,传奇这种游戏挂机也是可以的。 主要的几个函数介绍 1.GetSystemMetrics() 这个函数主要用于获取当前电脑的分辨率,通过参数SM_CXSCREEN,SM_CYSCREEN,可以分别获取电脑分辨率的X和Y,例如电脑分辨率为1440*960,那么: X_LEN=GetSyst

TJDFDG的博客 1万+

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

上一篇: 玩转keybd_event
下一篇: VC中窗口ID,句柄,指针三者相互转换函数
ding_net
博客等级 码龄26年 40粉丝 45原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值