Qt:Qt使用鼠标模拟函数mouse_event和按键模拟函数keybd_even实现网页刷新功能
用Qt实现网页刷新功能
前言
在上一篇博客Qt:使用Qt实现网页自动刷新工具,使用了PostMassage函数 通过Windows的消息机制实现的网页刷新功能。因为消息种类太多,不方便使用和记忆,所以Windows下的大部分消息可以使用对应等价的API函数,不必直接通过消息进行沟通。这节我们使用mouse_event鼠标模拟函数和keybd_event键盘模拟函数继续来实现网页刷新功能。
界面
界面当然还是用Qt来写呀。
代码
qt 代码如下,完整工程请下载示例demo,或者github下载地址
#include "widget.h"
#include "ui_widget.h"
#include <QDebug>Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget)
{ui->setupUi(this);
}//找到窗口,并将目标窗口设置到最前面
void Widget::FindAndFocus(){//【无欲则刚】30岁回农村 - CSDN博客 - 2345加速浏览器 9.5QString title = ui->htmlWinTitle->text();if(title.isEmpty()){qDebug() <<"没有找到窗口";return;}qDebug() << "找到窗口";LPCWSTR str = (LPCWSTR)title.toUtf8().data();m_hWnd = FindWindow(NULL,str);SetForegroundWindow(m_hWnd);
}
Widget::~Widget()
{delete ui;
}
//模拟键盘
void Widget::on_btn1_clicked()
{FindAndFocus();//按键模拟函数,模拟F5keybd_event(VK_F5,0,0,0);
}
/** 模拟鼠标* 先找到窗口,移动鼠标到窗口内,模拟 右键按下,模拟 L键 进行刷新* 用的2345浏览器,不知道其他浏览器的按键是好多*/
void Widget::on_btn2_clicked()
{FindAndFocus();//得到窗口坐标POINT pt = {0};ClientToScreen(m_hWnd,&pt);//设置鼠标位置SetCursorPos(pt.x + 300,pt.y+400);mouse_event(MOUSEEVENTF_RIGHTDOWN,0,0,0,0);Sleep(100);mouse_event(MOUSEEVENTF_RIGHTUP,0,0,0,0);Sleep(1000);//弹出右键菜单,L快捷键刷新,L 的ASCII 76。keybd_event(76,0,0,0);
}
Qt:Qt使用鼠标模拟函数mouse_event和按键模拟函数keybd_even实现网页刷新功能相关推荐
- c语言按键事件判断函数kbhit和按键获取函数getch
kbhit() 是一个C和C++函数,用于非阻塞地响应键盘输入事件,为 "keyboard hit(键盘敲击)"的简写. kbhit 是 _kbhit() 的弃用别名,尽管它依然受 ...
- qt linux实现鼠标位置自动移动,【已解决】qt中鼠标能显示但是无法移动
[问题] 在完成了Linux kernel中的对应的一个模拟鼠标的输入设备(input device)easypoint驱动后,验证了该驱动可以正常工作了,输入 cat /dev/input/even ...
- qt,QGraphicsView实现鼠标中键拖动图片,鼠标滚轮缩放、两个窗口联动左键选点等功能(c++pyqt两个版本)
先看效果: (1)c++版本(一个动图): (2)pyqt版本(一个图):与c++版本一毛一样,用的同一个ui文件,此处动图略 实现关键点:1)拖动:重写QGraphicsView类,鼠标中键按下记录 ...
- 【QT】无需写connect代码关联信号和槽函数
对于一些简单的事件判别,如点击按钮. 无需写代码关联信号和槽函数. connect(ui->Btnshowhello,SIGNAL(clicked(bool)),this,SLOT(Btnsho ...
- QT/C++/Eigen 自己实现的MATLAB中的std()函数,矩阵按照列求标准差
QT / C++ / Eigen 自己实现的MATLAB中的std()函数,矩阵按照列求标准差 //定义一个按列求标准差的函数,其中A为被求列标准差的矩阵,OutputMatrix为求出的列标准差 v ...
- 在Qt中设置鼠标光标形状的方法介绍
本文主要介绍在 Qt 中设置鼠标光标形状的方法. 说明: 本文中的应用程序是面向 Windows 操作系统的: 本文中使用的 Qt Creator 版本号为:7.0.0: 本文中使用的 Qt 版本号为 ...
- Qt实现全局鼠标事件监听器-Linux
Qt实现全局鼠标事件监听器-Linux版
- Qt实现全局鼠标事件监听器-Windows
Qt实现全局鼠标事件监听器-Windows版
- C++模拟游戏中鼠标点击和键盘按键
游戏中模拟键盘输入,有时回被系统屏蔽,Java等语言都试过很多方法,好像都没用,所以下面给出一种C++实现方法 #include <iostream> #include <windo ...
最新文章
- 清华发布《中国AI发展报告2018》:中科院系统AI论文产出全球第一
- Quick-cocos2d-x3.3 Study (十五)--------- 为小鸟添加一个物理加速度
- .NET 11 个 Visual Studio 代码性能分析工具
- 捉虫记 单步跟踪 条件断点 变量查看实践
- poj1061-青蛙的约会
- PWN-PRACTICE-BUUCTF-26
- 一文搞懂*argv和**kwargs
- 小米12 Ultra或将在5月发布:依旧为骁龙8移动平台
- eclipse中svn插件的工程不能与svn资源库同步的解决方法
- linux umask命令
- 东大22春实用写作X《实用写作》在线平时作业1百分非答案
- 大学有必要考华为认证吗?
- 知识对话2021《Augmenting Knowledge-grounded Conversations with Sequential Knowledge Transition》论文解读
- sqldevelop 连接数据库,数据库直接写ip
- IAP 内购二次验证(出现的问题21002及解决方案)
- 中国白领最苦累的六大城市
- 地址转为经纬度通过DBSCAN进行关联识别
- matlab使用杂谈5-fftshift函数的使用
- 椭圆曲线加密与NSA后门考古
- 产品概念之1/4:前言 —— 有必要这么学术吗?
热门文章
- python根据文件名打标签_使用python将图片按标签分入不同文件夹的方法
- centos linux引导修复_【Linux 运维】 Centos7.x 系统修复模式
- win7磁盘清理_为什么要清理磁盘碎片,win7电脑怎么清理磁盘碎片
- Android逆向笔记-Proguard混淆Android代码以及去打印日志信息
- C++|Qt笔记-关于extern和namespace的区别与联系
- Qt工作笔记-html做界面时,QFileInfo小技巧,获取前端页面
- Qt学习笔记-仿大佬读取setting文件(简单工厂模式)
- 不混淆so文件_浅尝ollvm轻度混淆后的加密算法分析
- mysql 5.6 禁用 innodb_MYSQL 5.6中禁用INNODB引擎
- 汉字转html实体符号js_js转html实体