C++实现【获取鼠标位置】以及控制鼠标【打开窗口并点击】

这篇具有很好参考价值的文章主要介绍了C++实现【获取鼠标位置】以及控制鼠标【打开窗口并点击】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

获取鼠标位置的函数源代码来自:C++【认知系列】实时获取鼠标坐标_c++ 获取鼠标坐标_Zalamp的博客-CSDN博客

鼠标点击操作代码来自:

C++控制鼠标移动到指定位置并且左键点击_c++鼠标移动_蜚语77的博客-CSDN博客

在特定程序中实现鼠标点击操作分为两步,第一步就是在任务栏点击一下鼠标,然后在打开的窗口里再点击特定按钮。需要用到两个函数被我整合了一下。一个就是获取位置的函数,在10s(当然要看多久可以自己调整)内获取到任务栏和特定窗口中按钮的位置;另一个就是将位置坐标输入后让程序实现点击操作的函数。

全部代码如下:文章来源地址https://www.toymoban.com/news/detail-659439.html

#include <windows.h>
#include <iostream>
#include <iomanip>		//setw()函数所在库
#include<stdlib.h>
#include<time.h>
using namespace std;

void get_position()
{//获取鼠标位置坐标
    CONSOLE_CURSOR_INFO info = { 1, 0 };				//创建光标的属性结构体
    HANDLE hand = GetStdHandle(STD_OUTPUT_HANDLE);	//创建光标的句柄
    COORD coord = { 0, 0 };								//创建xy坐标结构体,用于设置光标位置
    POINT pt = { 0, 0 };								//创建鼠标点坐标变量
    SetConsoleCursorInfo(hand, &info);				//设置光标属性
    //循环显示
    int t = 100;//程序将在10s后退出
    while (1) {
        SetConsoleCursorPosition(hand, coord);		//传入光标句柄和坐标设置光标位置
        GetCursorPos(&pt);							//获取鼠标点的坐标位置
        cout << "当前坐标:" << pt.x << ',' << pt.y << setw(10) << "\0" << endl;	//输出坐标

        cout << "程序将在" << t / 10 << "s后继续 " << endl;;//在这段时间内可以获取想要点击的目标的坐标
        Sleep(100);
        if (t == 0) {break; }
        t = t - 1;

    }
    //循环显示结束
    

}

int mouseclick(int x,int y)
{
    // 模拟鼠标左键单击
    INPUT input;                //创建一个INPUT类型结构体
    input.type = INPUT_MOUSE;   //指定输入事件类型为鼠标事件
    input.mi.dwFlags = MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP; // 模拟鼠标左键按下和抬起的动作
    //mi是结构体INPUT的一个成员属性,mi是MOUSEINPUT类型
    //MOUSEINPUT 结构体用于描述鼠标事件,例如鼠标左键单击、双击、右键单击、移动等操作。
    SetCursorPos(x, y);
    input.mi.dx = 0;            //设置鼠标事件发生的x坐标
    input.mi.dy = 0;            //设置鼠标事件发生的y坐标
    input.mi.mouseData = 0;     //设置鼠标滚轮的滚动距离
    input.mi.dwExtraInfo = 0;   //将 dwExtraInfo 字段设置为 0,表示不传递任何附加的输入数据。
    input.mi.time = 0;          //time字段是用来设置时间戳的,0表示使用系统的时间戳
    SendInput(1, &input, sizeof(INPUT));
    /*SendInput函数是 Win32 API 中用于模拟输入事件的函数,可以模拟鼠标事件、键盘事件、硬件事件
    等。
    其函数原型如下:
        UINT SendInput(UINT nInputs, LPINPUT pInputs, int cbSize);
    其中,nInputs 参数指定输入事件的数量,pInputs 参数指向输入事件数组的指针,cbSize 参数指定输
    入事件数组的大小(单位为字节)。*/
    return 0;
}



int main()
{
    //首先获取到需要点击的位置坐标序列,这个函数调试时使用,获取到坐标简后可以注释掉
    get_position();

    // 将鼠标移动到特定的位置并单击,打开之前最小化到任务栏的程序
    mouseclick(400, 1068);

    //让程序睡眠1s再运行
    cout << "sleep 0.01s" << endl;
    Sleep(10);

    // 将鼠标移动到特定的位置并单击,在特定程序中执行点击操作
    mouseclick(1055, 578);



    return 0;
}

到了这里,关于C++实现【获取鼠标位置】以及控制鼠标【打开窗口并点击】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 【AHK】鼠标调整窗口大小/移动窗口位置/窗口置顶/透明度

    通过AHK,设置窗体大小或位置,首先是两种鼠标调节窗体方案,后面是快捷键,注意修改快捷键的位置有两个,仿照Ubuntu调节窗体的快捷键 Alt+F7、Alt+F8,个人感觉比要按着ALT调节的小工具要好用一点。 如果换成单个F7、F8触发,只需要将多出的GetKeyState删除即可,具体函数意

    2024年02月12日
    浏览(57)
  • OpenGL-入门-BMP像素图glReadPixels(1)实现读取屏幕中间的颜色和获取屏幕上鼠标点击位置的颜色

    OpenGL-入门-BMP像素图glReadPixels(1)实现读取屏幕中间的颜色和获取屏幕上鼠标点击位置的颜色

    glReadPixels函数用于从帧缓冲区中读取像素数据。它可以用来获取屏幕上特定位置的像素颜色值或者获取一块区域内的像素数据。下面是该函数的基本语法: x 和 y:读取区域左下角的像素坐标。 width 和 height:读取区域的宽度和高度。 format:像素数据的格式,可以是 GL_RGBA、

    2024年02月10日
    浏览(13)
  • MFC获取客户区鼠标位置和屏幕区鼠标位置

    MFC获取客户区鼠标位置和屏幕区鼠标位置

    GetCursorPos获取屏幕区鼠标位置,参数是指向接收光标屏幕坐标的 POINT 结构的指针 MFC的窗体消息响应函数OnMouseMove,第二个CPoint参数代表当前鼠标点在客户区的位置 因此重载MFC的OnMouseMove函数就可以获取客户区鼠标位置 测试代码

    2024年02月08日
    浏览(9)
  • C# 获取鼠标在屏幕中的位置(获取鼠标坐标)

    近段时间需要一个鼠标点击器,目前能找到的都不太符合使用要求,所以就准备自己写一个 如果需要显示文本就把int转换成string. 如果需要显示到窗体上可以把int转换成string 如果需要实时获取位置信息可以把GetMousePose()方法放到Timer定时器或者Thread子线程 具体如何选择看自己的

    2024年02月08日
    浏览(11)
  • QT学习笔记(三)——vs2019+Qt实现打开影像并以鼠标为中心用滚轮控制图片缩放

    QT学习笔记(三)——vs2019+Qt实现打开影像并以鼠标为中心用滚轮控制图片缩放

    之前写了一个博客讲怎么显示一张影像,那个是基于Qpainter的 今天使用QLabel来显示影像,并且用鼠标滚轮控制缩放。 关于图像的打开和显示,主要参考这个博客 关于如何使图片自适应窗口与铺满窗口,可以参考这个博客。 这两个博客出自同一作者,都很详细。 其中按照第二

    2024年02月09日
    浏览(14)
  • Python模拟鼠标点击与实时获取鼠标位置

    鼠标点击会用到pymouse库。 在cmd中运行,使用镜像下载 编译器在运行时可能会报错,会出现No module named win32api问题,这是由于Python是没有自带访问windows系统API的库的,需要下载。 在cmd中运行,使用镜像下载pywin32。 time.sleep(num),num值可以自己进行设置,单位为秒。 程序运行

    2024年02月11日
    浏览(15)
  • unity,如何让当前物体获取鼠标位置,转向鼠标在屏幕中的位置?

    unity,如何让当前物体获取鼠标位置,转向鼠标在屏幕中的位置?

    unity,如何让当前物体获取鼠标位置,转向鼠标在屏幕中的位置?

    2024年02月12日
    浏览(16)
  • pyautogui获取鼠标位置及循环点击指定位置按钮

    pip install pyautogui可能会安装失败,需要先下载包再按照。 由于本机利用的是anconda里的python环境,所以下载后的安装步骤为: 下载包至本地:PyAutoGUI-0.9.53.tar.gz 下载地址 cd 至包下载目录下 执行命令 conda install --use-local PyAutoGUI-0.9.53.tar.gz -n base 对应含义: conda install --use-local 包文

    2024年02月11日
    浏览(12)
  • 【java】获取鼠标当前位置代码

    【java】获取鼠标当前位置代码

            最近在研究自动化软件来清体力,其中就遇到需要鼠标位置的一个问题,于是就运用java实现了这个功能。         代码非常简单,核心功能就是获取鼠标的X,Y坐标,然后保存到文件夹中(比较适合用来学习java练手)。 使用流程:文件就三个 ①Game.jar:java代码

    2024年02月15日
    浏览(14)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包