`

C++ 鼠标模拟程序

    博客分类:
  • C++
 
阅读更多
转自
http://blog.csdn.net/weixinhum/article/details/46351881

    关于鼠标模拟程序应用不算少见,在游戏外挂或者一些操作频繁位置确定的程序上应用往往有奇效。
    比较旧的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();


    //左键双击打开
    MouseMove(100, 100);//鼠标移动到指定位置  
    MouseLeftDown();//鼠标左键点下  
    MouseLeftUp();//鼠标释放 
    MouseLeftDown();//鼠标左键点下  
    MouseLeftUp();//鼠标释放 
分享到:
评论

相关推荐

    C++鼠标模拟程序.rar

    本主题聚焦于“C++鼠标模拟程序”,这通常涉及到Windows API或更高级的库,如SDL、SFML等,来实现对鼠标的控制。下面我们将深入探讨这个领域的相关知识点。 1. **Windows API**: Windows API是微软提供的一个编程...

    C++实现鼠标的轨迹

    在C++编程中,实现鼠标的轨迹涉及到操作系统底层交互、事件处理和图形用户界面(GUI)编程。这里我们将深入探讨如何使用C++来捕获和显示鼠标的移动路径。 首先,C++本身并不直接支持GUI或鼠标事件处理,但它可以...

    C++模拟鼠标点击、键盘按下工具

    结合上述知识点,你可以创建一个C++程序,先模拟鼠标点击打开特定网页,然后模拟键盘输入完成登录或其他操作,最后模拟点击下载按钮并自动下载文件。这通常在自动化测试或自动化工作流中很有用。 总结,C++通过调用...

    C++模拟鼠标移动和单击双击

    在C++编程中,模拟鼠标移动、单击和双击是一项常见的需求,特别是在自动化测试、图形用户界面(GUI)应用程序或者游戏开发中。这个主题涵盖了几个关键知识点,包括Windows API的使用、事件处理以及低级输入操作。 1...

    C++USB接口的鼠标驱动源程序

    在本例中,我们关注的是一个基于C++编写的USB接口鼠标驱动源程序。C++虽然通常用于编写应用程序,但它也可以用于构建底层系统组件,如驱动程序,特别是在需要高效性能和直接硬件访问的情况下。 1. **C++编程语言**...

    C++代码实现Windows系统下发送鼠标移动和单击的程序

    通过理解以上知识点,并结合提供的`SimulateMessage`源代码,你可以构建一个能够在Windows 10环境下模拟鼠标动作的C++程序。这个程序不仅可以用来自动化单个操作,还可以扩展为记录和播放一系列操作的工具,大大提高...

    操作鼠标的C++代码

    在C++编程中,控制鼠标操作涉及到Windows API(应用程序接口)或者特定的库来实现这样的功能。本项目提供的"mouse.cpp"文件很可能包含了使用API函数或第三方库来模拟鼠标动作的代码。以下是一些关于如何在C++中进行...

    后台 模拟 键盘 鼠标

    在IT领域,模拟键盘和鼠标的操作是一种常见的自动化测试和脚本编写技术。它允许程序在没有实际物理设备交互的情况下,模拟用户对计算机的操作,如按键、点击等。这种技术在自动化测试、游戏控制、远程桌面操作以及...

    基础C++实现鼠标病毒(不传播,无危险,附C++源码)

    本文将深入探讨如何使用C++实现一个基础的“鼠标病毒”程序,它实际上是一个不传播、无危险的示例,旨在帮助学习者理解系统级编程的基本概念。 首先,我们要明确这个“鼠标病毒”只是一个教学示例,它的功能是让...

    visual c++ vc使用winio.dll来模拟触发鼠标,键盘消息

    winio.dll是一个动态链接库,它提供了低级别的I/O控制功能,允许程序直接与硬件交互,包括模拟输入设备如鼠标和键盘的操作。 首先,要使用winio.dll,你需要将其包含到你的VC项目中。这通常涉及将dll文件复制到你的...

    C++模拟屏幕点击程序(测试程序)

    通过调用操作系统提供的API函数,我们可以使程序模拟用户的鼠标操作,如点击、移动等,从而实现对屏幕上的特定位置进行自动控制。 首先,我们需要理解C++语言的基础,它是面向对象的编程语言,具有高效、灵活和强大...

    鼠标模拟。鼠标模拟鼠标模拟鼠标模拟鼠标模拟

    在IT领域,鼠标模拟是一种技术,它允许软件或程序通过编程方式模拟用户的鼠标操作,如点击、移动、拖放等。这项技术广泛应用于自动化测试、游戏控制、远程操作以及无障碍辅助技术等多个方面。 首先,我们要理解鼠标...

    键盘模拟鼠标滚轮滚动

    "KeyMap.exe"是程序的主执行文件,运行这个文件就能启动键盘模拟鼠标滚轮的工具。它是用编程语言(如C++、C#或Java)编译后的二进制可执行文件,包含了程序的主要逻辑和功能实现。 "dftCfg.txt"文件可能是默认配置...

    键盘模拟鼠标 c++

    在这个“键盘模拟鼠标 c++”的项目中,开发者利用C++编程语言实现了这样的功能,使得用户可以通过键盘的上下左右键来代替鼠标移动,同时F6键作为鼠标左键的模拟,而F9键则用于终止程序运行。 首先,我们要理解C++的...

    模拟鼠标点击

    本文将基于一段C++代码示例,详细介绍如何利用C++实现模拟鼠标点击,并对其中涉及的关键技术点进行深入剖析。 #### 二、模拟鼠标点击的核心原理 在Windows平台上,可以通过发送特定的消息或调用特定的API函数来模拟...

    c++驱动级模拟按键 vs2013编写

    在本文中,我们将深入探讨如何使用C++在Visual Studio 2013中编写驱动级模拟按键程序。首先,我们要理解驱动级编程的基本概念,它涉及到操作系统内部的交互,允许程序对硬件进行直接控制。在C++中实现驱动级模拟按键...

    C++ MFC 鼠标随机移动

    **C++ MFC 鼠标随机移动**是Windows编程中的一个有趣且实用的技术,它涉及到用户界面交互和系统级事件处理。MFC(Microsoft Foundation Classes)是微软提供的一套面向对象的C++库,用于简化Windows应用程序开发。在...

    C++鼠标连点器源程序

    C++鼠标连点器是一种利用C++编程语言实现的小型应用程序,它的主要功能是在用户指定的位置模拟鼠标点击,实现自动连续或定时点击的效果。在游戏自动化、网页交互、软件测试等场景下,这样的工具非常实用。 C++是...

    鼠标点击模拟源程序

    "鼠标模拟"这个标签,暗示了这个源程序可能包含以下关键知识点: 1. **事件驱动编程**:模拟鼠标点击通常涉及到事件驱动的编程模型,即程序响应鼠标事件(如按下、移动和释放)并执行相应的动作。 2. **坐标系统**...

    驱动模拟鼠标键盘64位

    驱动模拟鼠标键盘即是指专门针对鼠标和键盘设备的驱动程序,它使得操作系统可以理解和控制这些输入设备。 2. **模拟鼠标键盘**:在某些情况下,我们可能需要通过编程方式来模拟鼠标的移动、点击和键盘的按键操作。...

Global site tag (gtag.js) - Google Analytics