#include "widget.h"
#include "ui_widget.h"
#include "Windows.h"
#include <QDebug>
#include <QThread>
#include <QTimer>
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
myTimer = new QTimer(this);
//刷新按钮 信号槽
connect(ui->beginButton,&QPushButton::clicked,this,&Widget::beginRefresh);
//停止按钮 信号槽
connect(ui->stopButton,&QPushButton::clicked,this,&Widget::stopRefresh);
}
void Widget::beginRefresh(){
QString winTitle = ui->htmlWinTitle->text();
qDebug() << winTitle;
char* ch = winTitle.toUtf8().data();
//刷新网页窗口的标题:【无欲则刚】30岁回农村 - CSDN博客 - 2345加速浏览器 9.5
qDebug() << ch;
//这里必须转换!不转换会报错: cannot convert 'char*' to 'LPCWSTR {aka const wchar_t*}' for argument '2' to 'HWND__* FindWindowW(LPCWSTR, LPCWSTR)'
LPCWSTR str = (LPCWSTR)ch;
//需要Windows.h头文件
HWND win = ::FindWindow(NULL, str);
if(win != NULL){
qDebug() << "找到窗口:"+winTitle;
}else{
qDebug() << "没有找到窗口!!!";
return;
}
if(myTimer->timerId()!=-1){
//定时器在运行,先关掉
myTimer->stop();
}
refresh(win);
//设置定时器
connect(myTimer,&QTimer::timeout,[=](){
refresh(win);
});
//每3秒刷新一次网页
myTimer->start(3000);
}
void Widget::stopRefresh(){
myTimer->stop();
}
void Widget::refresh(HWND win){
//将指定的窗口设置到最前面并处于激活状态,不然当没有在最前面是不会刷新的。
SetForegroundWindow(win);
PostMessage(win, WM_KEYDOWN, VK_F5,1);
Sleep(50);
PostMessage(win, WM_KEYUP, VK_F5,1);
}
Widget::~Widget()
{
delete ui;
}
没有合适的资源?快使用搜索试试~ 我知道了~
使用Qt实现网页自动刷新工具 示例demo
共6个文件
cpp:2个
ui:1个
h:1个
需积分: 18 13 下载量 48 浏览量
2018-10-24
23:48:19
上传
评论 1
收藏 6KB ZIP 举报
温馨提示
使用Qt实现网页自动刷新工具 示例demo 代码 使用Qt调用windows api 实现网页窗口刷新 https://blog.csdn.net/qq_29542611/article/details/83352799
资源推荐
资源详情
资源评论
收起资源包目录
HtmlRefreshTool.zip (6个子文件)
HtmlRefreshTool
widget.ui 2KB
widget.cpp 2KB
main.cpp 175B
HtmlRefreshTool.pro 1KB
widget.h 402B
HtmlRefreshTool.pro.user 23KB
共 6 条
- 1
资源评论
重庆李四
- 粉丝: 1w+
- 资源: 32
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功