C++ 鼠标模拟程序

C# 虚拟鼠标和键盘按键(三)【SendInput】 在前面两篇“C# 虚拟键盘按键(一)【SendKeys】”和“C# 虚拟键盘按键(二)【keybd_event】”文章中,我们讲了虚拟键盘按键的方法,它们只能虚拟键盘的按键操作,不能虚拟鼠标。本文介绍的Window API的SendInput函数,不仅能虚拟键盘,而且还能虚拟鼠标,同时微软用它取代了我们第二文章中说的keybd_event方法,所以相对来说功能更加丰富和先进,并且我们也能更多地了解一些键盘和鼠标的结构体和一些Window消息。2.1 下面代码需要用到的引用是: 代码有1000多行看起来比 阅读详情

    关于鼠标模拟程序应用不算少见,在游戏外挂或者一些操作频繁位置确定的程序上应用往往有奇效。

    比较旧的API是mouse_event,本人一开始也用这个在搞,不过后来才看到新的API在操作上更加统一,稍作改动便也能模拟键盘输入(两者往往要一起应用),所以就用新的API来做。对了,新的API名为SendInput。

    下面就不说废话了,直接上代码,本代码是运行在MFC工程上的,如要需要在控制台或者其他工程上运行要包含必须的头文件。此外,本程序只能模拟一般的鼠标操作,对于一些防外挂的程序进行点击需要驱动级的模拟。

    模拟鼠标各动作函数

void MouseMove(int x, int y)//鼠标移动到指定位置
{
	double fScreenWidth = ::GetSystemMetrics(SM_CXSCREEN) - 1;//获取屏幕分辨率宽度
	double fScreenHeight = ::GetSystemMetrics(SM_CYSCREEN) - 1;//获取屏幕分辨率高度
	double fx = x*(65535.0f / fScreenWidth);
	double fy = y*(65535.0f / fScreenHeight);
	INPUT  Input = { 0 };
	Input.type = INPUT_MOUSE;
	Input.mi.dwFlags = MOUSEEVENTF_MOVE | MOUSEEVENTF_ABSOLUTE;
	Input.mi.dx = fx;
	Input.mi.dy = fy;
	SendInput(1, &Input, sizeof(INPUT));
}

void MouseLeftDown()//鼠标左键按下
{
	INPUT  Input = { 0 };
	Input.type = INPUT_MOUSE;
	Input.mi.dwFlags = MOUSEEVENTF_LEFTDOWN;
	SendInput(1, &Input, sizeof(INPUT));
}

void MouseLeftUp()//鼠标左键放开
{
	INPUT  Input = { 0 };
	Input.type = INPUT_MOUSE;
	Input.mi.dwFlags = MOUSEEVENTF_LEFTUP;
	SendInput(1, &Input, sizeof(INPUT));
	
}

void MouseRightDown()//鼠标右键按下
{
	INPUT  Input = { 0 };
	Input.type = INPUT_MOUSE;
	Input.mi.dwFlags = MOUSEEVENTF_RIGHTDOWN;
	SendInput(1, &Input, sizeof(INPUT));
}

void MouseRightUp()//鼠标右键放开
{
	INPUT  Input = { 0 };
	Input.type = INPUT_MOUSE;
	Input.mi.dwFlags = MOUSEEVENTF_RIGHTUP;
	SendInput(1, &Input, sizeof(INPUT));
}

    各动作函数配合完成鼠标各种操作

//模拟鼠标拖动框选
ShowWindow(SW_SHOWMINIMIZED);//窗体最小化
POINT mypoint;
GetCursorPos(&mypoint);//获取鼠标当前所在位置
MouseMove(800, 1000);//鼠标移动到指定位置
MouseLeftDown();//鼠标左键点下
MouseMove(10, 10);//鼠标拖动到指定位置
Sleep(10);//这里需要等待一下,不然拖动会没有效果
MouseLeftUp();//鼠标释放
MouseMove(mypoint.x, mypoint.y);//将鼠标放回所在的位置
//模拟鼠标右键按下并释放
ShowWindow(SW_SHOWMINIMIZED);//窗体最小化
MouseRightDown();
Sleep(10);
MouseRightUp();





使用Sendinput函数模拟鼠标键盘操作 文章目录1.程序说明2.分析3.SendInput 1.程序说明 vs2008编译 代码在gayhub,链接 主要是使用SendInput函数,所以要好好看参数说明,建议MSDN走一波 2.分析 以鼠标为例,按左键,可以分成2个步骤: 1.鼠标左键按下 2.鼠标左键弹起 所以,模拟一个按键的动作,需要input2个事件,一般是key_down,key_up 怎么模拟组合键呢?比如说ct... 阅读详情

相关推荐

python模拟真实鼠标轨迹实现滑条验证,nuitka打包python代码,实战我们强【强烈建议收藏】

python模拟真实鼠标轨迹实现滑条验证,nuitka打包python代码,实战我们强

逆向先驱者 1967

Windows API——SendInput总结(模拟键盘鼠标动作)

SendInput()函数用于合成键盘事件和鼠标事件,用来模拟鼠标或者键盘操作。

weixin_62972527的博客 2万+

C++与GDI+图形模拟程序开发:从零构建与性能优化实战

图形编程是计算机科学中连接底层硬件与视觉呈现的核心领域,其原理在于通过程序指令控制像素绘制,实现动态可视化。在技术价值上,它不仅是游戏和仿真软件的基石,也是理解计算机系统软硬件协同的关键。对于需要在Windows平台进行2D图形开发、算法可视化或教学模拟等应用场景的开发者而言,掌握一套高效且易于理解的图形接口至关重要。GDI+作为Windows平台经典的2D图形接口,以其轻量化和功能全面性,成为入门与实践的理想选择。本文聚焦于使用C++结合GDI+进行手写模拟程序开发,深入探讨其核心循环模型与面向对象设计,

weixin_33178839的博客 251

实现使用SendInput函数来模拟键盘输入

实现使用SendInput函数来模拟键盘输入

weixin_45471729的博客 3984

模拟鼠标真人移动轨迹算法-易语言

模拟鼠标真人移动轨迹算法,算法写出来了,自己可以根据实际需求修改。

模拟鼠标真人移动轨迹易语言源码

模拟鼠标真人移动轨迹易语言源码

星空特效

源代码: #include <graphics.h> #include <time.h> #include <conio.h> #define MAXSTAR 700 class STAR { public: double x; int y; double step; int color; }; STAR star[MAXSTAR]; bool ...

weixin_43589807的博客 335

ISP图像处理Verilog仿真框架搭建(附代码)

基于Verilog的图像处理仿真框架搭建

路漫漫其修远兮,吾将上下而求索 1898

C++简单实现3D模拟:游戏人物移动,不如去拯救一下国产游戏吧!

C++ 模拟3D游戏人物走路,这是一个模拟3D游戏中人物走动的程序,人物会跟随鼠标走动。一个3dRPG游戏DEMO源码,c++开发,游戏场景很棒,可控制人物走动,二次开发者可以在此基础上继续开发自已的游戏。 项目结构截图: 代码测试效果: 代码截图: 游戏会拥有很多角色,大部分角色能在场景中走动,人物行走图是最常用到的美术资源。然而对于很多开发者来说...

3202

Excel插件开发实战:从零封装一个带自定义Ribbon的.xlam工具包

本文详细介绍了如何从零开发一个带自定义Ribbon的Excel插件.xlam工具包。通过VBA和XML技术,读者将学习到插件架构设计、Ribbon界面定制、模块化开发以及企业级部署策略,帮助提升Excel自动化办公效率。

weixin_42531128的博客 516

告别裸机:在FreeRTOS上为STM32移植SOEM 1.4.0的完整指南

本文详细介绍了在FreeRTOS环境下为STM32H7系列芯片移植SOEM 1.4.0的完整指南,涵盖环境准备、任务架构设计、OSAL层适配及网络驱动优化等关键步骤。通过EtherCAT主站解决方案的实现,帮助开发者构建稳定可靠的工业自动化系统,提升实时通信性能。

weixin_33582311的博客 363

2548: [Ctsc2002]灭鼠行动 (模拟)

#include #define SQR(x) ((x)*(x) using namespace std; const int maxn = 1000001; inline int read() { int x = 0, f = 1; char ch = getchar(); while (ch '9') { if (ch == '-')f = -1;

670

【网络图】:附Origin详细画图教程

网络图,是一种由节点(或顶点)和连接这些节点的边(或链路)组成的图形结构。在网络图中,节点通常代表系统中的一个实体(如项目中的一项任务、通信网络中的一个设备、或运输网络中的一个站点),而边则代表这些实体之间的直接联系或流动(如任务的先后顺序、数据的传输路径、或乘客的旅行路线)。 有向图:如果边具有方向性,即从一个节点指向另一个节点,则称为有向图。这种图常用于表示具有明确先后顺序或方向性的系统,如项目管理中的任务依赖关系。 无向图:如果图中的边没有方向,则称为无向图。它适用于表示实体间相互关联但无明确方向性的

weixin_50236590的博客 3955

SDL2 钢琴

【代码】SDL2 钢琴。

aLingYun的博客 350

FPGA以太网通信实战(一):实现MDIO接口驱动,掌控PHY芯片的钥匙

本文介绍了以太网通信技术及其核心组件。首先概述了以太网的发展历程,从标准以太网(10Mbps)到万兆以太网(10Gbps)的技术演进。重点分析了以太网接口的两大核心部件:MAC控制器负责数据链路层协议处理,PHY芯片负责物理信号转换和连接管理。文章详细解读了MDIO接口规范,包括帧格式和读写时序,并以YT8531 PHY芯片为例,介绍了其寄存器配置方法。最后设计了一个FPGA实现方案,通过MDIO接口完成PHY芯片的软复位和状态监测功能,并利用LED指示灯实时显示网络连接速率。

weixin_64402689的博客 1662

Windows原生环境配置Tensorflow使用GPU

本文讲解如何在Windows原生环境搭建可调用GPU设备进行计算的Tensorflow2.x环境。 区别于WSL,使用Windows原始环境作为开发环境。

天然玩家的博客 1499

Qt/C++激光雷达地图构建程序演示:随机地图创建与小车运动控制

Qt/C++实现的程序演示了使用激光雷达构建地图的整个过程,创建随机地图,使用上下左右键来控制小车的运动,小车在运动的过程中右上角会实时创建以点组成的地图,以点的形式显示小车周围的地图,右下角显示小车在场景中的方向,鼠标可以在地图添加图块障碍物,每一步都会有日志进行记录。右上角的点云地图像墨水晕染般展开,右下角的指南针指针微微颤动——这个用Qt/C++实现的激光雷达模拟器,把SLAM的趣味性直接拉满。运行效果嘛——就像在玩简化版的《元气骑士》,只不过地图是你自己亲手“扫”出来的。

2502_94431433的博客 51

SDA 还是 SDI:SAP HANA 数据虚拟化与数据集成的取舍、组合与实战

结论先放在前面:SDA 面向数据虚拟化与联邦查询,强调不落地、不复制、按需实时访问;SDI 面向数据集成与复制,强调抽取、转换、装载与近实时增量同步。两者共享 Remote Source 与 Adapter 的理念,但侧重点与运行时组件明显不同。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 585

zoj 2109.FatMouse' Trade

FatMouse' Trade #include #include #include #include using namespace std; //数据存取结构 struct Mouse{ double J; double F; double a; }; //自定义排序比较规则 bool Comp(const Mouse &d1,const Mouse &

da_fan_shu_的专栏 337

【应用】打造你的安全本地AI购物助手:OpenClaw + 淘宝MCP部署全攻略

本文介绍了在Ubuntu虚拟机中配置OpenClaw连接Windows宿主机的淘宝MCP服务的两种方案。核心原理是通过修改MCP服务监听地址或SSH隧道转发,实现跨网络访问。方案1推荐修改MCP服务绑定0.0.0.0并配置防火墙放行端口,适合长期使用;方案2通过SSH隧道转发,适合临时测试。文章详细说明了环境准备、配置文件修改及两种互通方案的具体实施步骤,重点解决了虚拟机与宿主机网络互通的关键问题。

海兰 1324

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

基于Python和deepseek的可视化文明模拟程序

周末回家睡不着。。。那就做个项目吧~最近deepseek很火我又想起了三体中的黑暗森林法则那么,我是不是可以把他们结合一下呢。。。(⊙o⊙)…好像很有意思的样子开干~~~~~~~~~~emm...deepseek的api有点烧钱。。。而且延迟不是一般的大,如果想要实时建模肯定是不行的。。。所以我采用了这样的思路:正常情况下:采用随机逻辑当存活文明数<=5时,调用deepseek进行分析差不多是这样:虽然有点简略,但我的实力也就到这了。。。

wyz831201的博客 1229

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Windows Message Queue(宽度搜索含优先级队列)

#include #include using namespace std; struct queue { string name; int r;//参数 int key;//优先级 }p[60010]; int heap[60010],top=0,used=0;//used 是用来记录开辟空间的,在删除之后used在出现新的值得时候

AI蜗牛之家 1090

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

【c++基础】泡泡龙

这是一个简化版的网络游戏:在一个N*N方块构成的棋盘中,每个方块均涂上红、黄、蓝、绿(记为1、2、3、4)中的一种颜色,游戏者可以在最底行任意找一个方块,用鼠标双击这个方块,于是该方块及与之相邻()的所有的同色方块均被消掉,而因下方失去支持的方块将会自由落下填补空位。下图左边给出一个4 *4的棋盘样例,当游戏者双击最底层左边第二个方块后,将会形成右边的布局。你的任务是编写一个泡泡龙模拟程序,对于给定的一个初始棋盘,计算游戏者双击最底层某个方块后棋盘的布局将会如何。

star-dusts的博客 711
上一篇: 利用FFmpeg将Jpeg图片转为任意视频容器格式
下一篇: MFC 控件字体样式和颜色设置
_寒潭雁影
博客等级 码龄14年 2809粉丝 343原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值