Qt5 C++ 自动鼠标点击

2024-02-10

我正在尝试制作一个应用程序,其中鼠标移动到屏幕上的某些位置并自动单击左键。 问题是我无法在 Qt 应用程序外部单击,因此我做了一个解决方法,使应用程序对鼠标单击透明并使用以下代码使其全屏显示:

int x = 800;
int y = 500;

this->setWindowFlags(Qt::WindowStaysOnTopHint|Qt::FramelessWindowHint|Qt::ToolTip);
this->setAttribute(Qt::WA_TranslucentBackground);
this->setAttribute( Qt::WA_TransparentForMouseEvents);

QCursor::setPos(x,y);
qDebug()<<QCursor::pos();
QWidget *d = QApplication::desktop()->screen();
QMouseEvent MouseEvent(QEvent::MouseButtonPress, QCursor::pos(),Qt::LeftButton,Qt::LeftButton, Qt::NoModifier);
QApplication::sendEvent(d, &MouseEvent);
QApplication::sendEvent(d, &MouseEvent);

鼠标光标移动到所需位置,但单击不起作用。 我还尝试替换 Qt 类来处理鼠标事件并使用 Windows API,因为我实际上并不需要跨平台应用程序,但我陷入了同一点。


我知道这有点晚了,但是有办法做你想做的事。一般来说,创建或模拟用户界面事件仅用于自动化测试。

如果您想要某些计算或算法的结果,除了自动化其 UI 之外,几乎总是有更好的方法从软件中获得所需的结果。您可以查看它是否有记录的 API,您可以调用它所调用的相同 Web 服务,您可以链接到它所使用的相同库,或者您可以复制它使用的算法。

如果这些都不可接受,那么您可能应该看看QT5自动化测试教程 http://doc.qt.io/qt-5/qttestlib-tutorial3-example.html.

具体来说QTest命名空间 http://doc.qt.io/qt-5/qtest.html。单击鼠标的函数有两个重载,称为QTEST::鼠标点击 http://doc.qt.io/qt-5/qtest.html#mouseClick.

我认为这可能会达到你想要的效果:

#include <QTest>

// class and function declarations removed here

QTest::mouseClick(d, Qt::LeftButton, Qt::NoModifier, QPoint(x,y));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Qt5 C++ 自动鼠标点击 的相关文章

随机推荐

  • 如何告诉 DBD::mysql mysql.sock 在哪里?

    将 DBD mysql 与 DBI 一起使用 尝试连接到数据库时出现以下错误 DBI connect database mydb host localhost someuser failed Can t connect to local M
  • pyqtSlot 的功能[重复]

    这个问题在这里已经有答案了 我刚刚阅读了有关 pyqt5 按钮的教程here https pythonspot com en pyqt5 buttons 代码如下 有一个问题是关于button clicked connect self on
  • Grails - 跨控制器代码,在每个请求上执行

    有没有办法在调用任何控制器操作之前执行某些代码 我需要根据获取参数的值设置会话变量 而不考虑调用哪个控制器 当然 一旦完成此处理 请求需要按照其正常方式到达相应的控制器 操作 Thanks 听起来你想使用filter http grails
  • 树的等级是多少? (如树ADT)[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 据我所知 一个节点的度数是它拥有的子节点的数量 但是 我们如何定义树的度呢 基本上 树的度是它的子节点的总数 即源自它的节点的总数 树的叶
  • HTTP 响应何时完成?

    我正在 NET 中编写一个简单的 HTTP 客户端用于学习目的 我正在使用 NETSocket http msdn microsoft com en us library system net sockets socket aspx类 最终
  • 在工厂模式中使用反射[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 在工厂模式中使用反射是一个好的实践吗 public class MyObjectFactory private Party party publ
  • 获取iscsi设备的目标IP地址

    假设我有一个 iSCSI 设备 dev sdat 我如何知道其目标的IP地址 目标驱动程序是 SCST 启动程序是 iSCSI 我只知道一个名为 dev sdat仅此而已 那么如何获取目标的IP地址呢 嗯 我并不为此感到自豪 但它完成了工作
  • 如何利用模板复制&移动构造函数和赋值运算符?

    考虑以下 C 代码以及我试图避免的失败尝试非模板复制和移动构造函数和赋值运算符的偏好 https stackoverflow com a 32539424 1915854 template
  • 如何基于EXPLAIN计划优化MySQL查询

    查看查询的EXPLAIN计划中 如何确定哪些地方可以进行最佳优化 我很欣赏首先要检查的事情之一是是否使用了好的索引 但除此之外我有点困惑 通过过去的尝试和错误 我有时发现执行连接的顺序可以是一个很好的改进来源 但是如何通过查看执行计划来确定
  • 使我的下拉菜单仅在使用键盘时即可访问

    目前 我的下拉菜单仅在用户将鼠标滑过时才会出现 我希望如果您按 TAB 键 下拉菜单将以相同的方式显示 我的菜单基于以下教程 http net tutsplus com tutorials html css techniques how t
  • WASAPI 重采样/Windows Media Foundation

    我正在使用 WASAPI 编写一个专业音频应用程序 此应用程序以独占模式运行流 并在两个方向上将音频数据重新采样为恒定格式或从恒定格式重新采样 一个在捕获设备和应用程序之间重新采样 另一个在应用程序和输出设备之间重新采样 MSDN 上有一个
  • Symfony2:无法在功能测试中模拟HTTP身份验证

    我正在尝试使用 symfony com 上描述的以下技术 http symfony com doc current cookbook testing http authentication html http symfony com doc
  • 如果数组已由 Range 分配,LBound 和 Ubound 会发生冲突

    CODE height objExcel1 Application WorksheetFunction CountA ob3 Columns 1 MsgBox height ReDim dataArray height 2 0 1 for
  • 实际上,为什么不同的编译器会计算出不同的 int x = ++i + ++i; 值?

    考虑这段代码 int i 1 int x i i 假设它可以编译 我们对编译器可能会对该代码执行的操作有一些猜测 both i return 2 导致x 4 one i回报2和其他回报3 导致x 5 both i return 3 导致x
  • -Dorg.apache.el.parser.COERCE_TO_ZERO 用于 glassfish?

    我们也有类似 Dorg apache el parser COERCE TO ZERO 的 glassfish 吗 不会 Glassfish 使用不同的 EL 实现 其默认行为与您设置时的行为相同 Dorg apache el parser
  • 使用 Gson 反序列化有时是字符串,有时是对象

    我需要将这种类型的 JSON 数据解析为 java 对象 id 1 blob example text id 2 blob to 1234 from 4321 name My Name 我正在使用 Gson 并且不知道如何解决这个特定问题
  • 获取 Scala 中嵌套映射的值

    我有一张具有以下结构的地图 Map String Map String String 有没有一种优雅的方式来获取内部地图的值 只需按照正常方式进行 两次即可 val m Map a gt Map b gt c m a b c 第一次手术m
  • Ruby on Rails foreach 与 Bootstrap3 行类

    我想 foreach 循环数据并使用每行 3 列的引导网格系统显示此数据 但是我需要多行来获取数据量 如下所示 div class row div class col md 4 DATA HERE div div class col md
  • 在mvc 4中使用wkhtmltopdf将Html中的图像转换为PDF

    我正在使用 wkhtmltopdf 将 html 转换为 pdf 我正在使用 mvc 4 我能够将 html 转换为 pdf 我遇到的唯一问题是图像无法渲染 应该出现图像的地方有一个小矩形 我的图像在数据库中 因此当我在控制器中获取 htm
  • Qt5 C++ 自动鼠标点击

    我正在尝试制作一个应用程序 其中鼠标移动到屏幕上的某些位置并自动单击左键 问题是我无法在 Qt 应用程序外部单击 因此我做了一个解决方法 使应用程序对鼠标单击透明并使用以下代码使其全屏显示 int x 800 int y 500 this