目前测试Firefox和Chrome都是可以的
以下是例子

头文件mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>
#include <QProcess>
#include <QWindow>
#include <QDebug>
#include <QStringList>
#include <Windows.h>
#include <windows.h>
#include <WinUser.h>
#include <QLibrary>namespace Ui {class MainWindow;
}class MainWindow : public QMainWindow
{Q_OBJECTpublic:explicit MainWindow(QWidget *parent = 0);~MainWindow();QProcess process;QString addrname;QString proname;QStringList argu;QString sortname;QString windname;bool whetherrun();void killprog();void programrun();void windshow();void windhide();bool frun;QLibrary *libdll;private slots:void on_pushButton_clicked();void on_pushButton_2_clicked();void on_pushButton_3_clicked();private:Ui::MainWindow *ui;
};#endif // MAINWINDOW_H

cpp文件,MainWindow

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QLibrary>
#include <QMessageBox>MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow)
{ui->setupUi(this);
//     QProcess *p = new QProcess();//    addrname ="D:\\hello\\quicknanobrowser\\debug\\quicknanobrowser.exe";
//    proname ="quicknanobrowser.exe";
//    argu << "http://www.baidu.com";
//    sortname = "Qt5QWindowOwnDCIcon";
//    windname = "quicknanobrowser";
//    addrname ="D:\\hello\\build-qwer-Desktop_Qt_5_9_6_MinGW_32bit-Debug\\debug\\qwer.exe";
//    proname ="qwer.exe";
//    argu << "http://www.baidu.com";
//    sortname = "Qt5QWindowIcon";
//    windname = "MainWindow";//    libdll = new QLibrary("NDde.dll");   //声明所用到的dll文件
//     if (libdll->load())              //判断是否正确加载
//     {//         QMessageBox::information(NULL,"OK","DLL load is OK!");//     }//     addrname ="C:\\Program Files\\Mozilla Firefox\\firefox.exe";
//     proname ="firefox.exe";
//     argu << "http://www.baidu.com";
//     sortname = "MozillaWindowClass";
//     windname = "百度一下,你就知道 — Mozilla Firefox";addrname ="C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe";proname ="chrome.exe";argu << "http://www.baidu.com";sortname = "Chrome_WidgetWin_1";//这是在spy++里面看到的类名windname = "百度一下,你就知道 - Google Chrome";//窗口标题//     DdeClient dde = new DdeClient("Firefox", "WWW_GetWindowInfo");
//     dde.Connect();
//     QString url = dde.Request("URL", int.MaxValue);
//     dde.Disconnect();
//     MessageBox.Show(url);
}MainWindow::~MainWindow()
{delete ui;
}void MainWindow::on_pushButton_clicked()
{//    p->start(addrname,argu);
//    qDebug()<<"创建cs"<<proname;programrun();
}void MainWindow::on_pushButton_2_clicked()
{//    QProcess proc;
//    QString strs = "tasklist";
//    proc.start(strs);
//    proc.waitForFinished();
//    QString st = proc.readAllStandardOutput();
//    if(st.contains(proname))
//    {//        p->close();
//        qDebug()<<"关闭";
//    }
//    else
//    {//        if(p->state() ==2)
//        {//            p->close();
//            qDebug()<<"all";
//        }
//    }windhide();}bool MainWindow::whetherrun()
{QProcess proc;QString strs = "tasklist";proc.start(strs);proc.waitForFinished();QString st = proc.readAllStandardOutput();if(st.contains(proname)){frun = true;return true;}else{if(process.state() ==2){process.close();}return false;}
}
void MainWindow::killprog()
{QProcess pkill;QString commd = "taskkill /f /im "+proname;if(frun){pkill.execute(commd);pkill.close();qDebug()<<"sha si";}
}
void MainWindow::programrun()
{if(whetherrun() && (process.state()==2)){qDebug()<<proname<<"已经运行";windshow();//打开的窗口再次在上面}else{//trr->start();//定时器开始工作process.start(addrname,argu);qDebug()<<"创建ca"<<proname;}
}
void MainWindow::windshow()
{WId wid;if(windname == ""){wid = (WId)FindWindow((LPCWSTR)sortname.toStdWString().c_str(),nullptr);}elsewid = (WId)FindWindow((LPCWSTR)sortname.toStdWString().c_str(),(LPCWSTR)windname.toStdWString().c_str());QWindow *qwind = QWindow::fromWinId(wid);qDebug()<<"creation windshow pos:"<<qwind->position().y();if(qwind== NULL)return;ShowWindow((HWND)qwind->winId(),SW_MAXIMIZE);SetWindowPos((HWND)qwind->winId(),HWND_TOP,0,0,0,0,SWP_NOMOVE | SWP_NOSIZE | SWP_SHOWWINDOW);//让已经打开的界面再显示//bool rty = SetWindowPos((HWND)qwind->winId(),HWND_TOP,0,theheight,taskwidth,subheight,SWP_FRAMECHANGED);//qDebug()<<rty;delete qwind;
}void MainWindow::windhide()
{WId wid;if(windname == ""){wid = (WId)FindWindow((LPCWSTR)sortname.toStdWString().c_str(),nullptr);}elsewid = (WId)FindWindow((LPCWSTR)sortname.toStdWString().c_str(),(LPCWSTR)windname.toStdWString().c_str());QWindow *qwind = QWindow::fromWinId(wid);if(qwind== NULL)return;ShowWindow((HWND)qwind->winId(),SW_HIDE);delete qwind;
}void MainWindow::on_pushButton_3_clicked()
{windshow();
}

还有一个问题是如何实时获取****浏览器当前打开的页面的标题,这个问题解决了就可以更好的控制浏览器页面隐藏和显示了。
这个问题解决了,参考https://xiuye.blog.csdn.net/article/details/117553029
功能已经实现,对浏览器的隐藏显示

spy++是可以获取浏览器当前页面的标题的,并且可以根据“窗口标题”和“类名”实现对浏览器的显示和隐藏,相关推荐

  1. [js] 获取浏览器当前页面的滚动条高度的兼容写法

    [js] 获取浏览器当前页面的滚动条高度的兼容写法 document.documentElement.scrollTop || document.body.scrollTop; 个人简介 我是歌谣,欢 ...

  2. android url webview,android - webview获取到当前页面的url

    android - webview获取到当前页面的url 2017-10-23 08:54 访问量: 2958 分类: 技术 使用 webview.getUrl() 即可. 可以完美返回  a.com ...

  3. 如果去掉若依分离版本浏览器上面的标题和首页的若依管理系统字眼(去若依化四)

    如果去掉若依分离版本浏览器上面的标题和首页的若依管理系统字眼 步骤1: Dev环境时,修改env.evelopment文件中页面标题 步骤2:首先是下面的Logo的修改,组件的位置ruoyi-ui/s ...

  4. js基础--获取浏览器当前页面的滚动条高度的兼容写法

    前言 在开发中,兼容性问题是最常见的,今天就来介绍一下关于获取滚动条高度的兼容性写法,宽度同理,我在这里就不一一解释了 各浏览器的写法 IE6/7/8 document.documentElement ...

  5. Python+selenium 自动化-获取当前页面的url地址,打开指定的url地址

    非常简单,driver.current_url 就能获取当前页面的 url 地址. # 调用chrome浏览器 driver = webdriver.Chrome() # 打开指定的url地址 dri ...

  6. PHP获取当前页面的URL

    2019独角兽企业重金招聘Python工程师标准>>> 使用PHP编写程序的时候,我们常常想要获取当前页面的URL.下面提供一个用于获取当前页面URL的函数以及使用方法: 示例一: ...

  7. 怎样获取当前页面值php,想要得到当前页面的所有url参数信息怎么用PHP来实现?...

    本篇文章主要给大家介绍怎么使用php获取完整url.首先给新手小白们简单介绍下什么是url.百度百科上是这么解说的,统一资源定位符是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网 ...

  8. js获取当前页面的url网址信息

    WEB开发中,时常会用到javascript来获取当前页面的url网址信息 下面我们举例一个URL,然后获得它的各个组成部分:http://i.jb51.net/EditPosts.aspx?opt= ...

  9. php当前页面的链接地址,PHP 技巧:如何获取当前页面的链接地址

    其实不用找 WordPress 函数,PHP 本身就提供了一些系统变量,通过整合下就能获取当前页面的 URL.function wpjam_get_current_page_url(){ $ssl   ...

最新文章

  1. c语言作业扩展名通常为什么,C语言的源程序通常的扩展名是( )
  2. html5 子元素选择器,CSS子元素选择器 - HTML电子邮件
  3. Scrapy框架的学习(7. 了解Scrapy中的debug信息以及Scrapy shell的使用)
  4. yum mysql5.7位置_CentOS yum 安装 Mysql5.7
  5. 查询mysql各个库和表的大小并按大小输出
  6. 往事历历在目--我的2009年工作总结
  7. 随想录(ccpp之间的相互调用)
  8. 2020 年,哪些行业将会遭到 5G 洗礼?
  9. c语言static知识点,C语言知识点集锦
  10. 说说年度补税退税的问题
  11. 提升精度或者训练损失不继续下降办法汇总,(进一步提升效果)
  12. np.roll()的理解和用法
  13. 数据库之SQL行列转换
  14. SpringCloud版本选择
  15. OneTab下载,chrome插件,crx下载
  16. java计算时间差_Java中计算两个日期的时间差
  17. Windows命令行学习笔记
  18. typename和class
  19. Galera Cluster For MySQL
  20. 计算机考研高数试卷答案,考研数学试卷大全(全国各高校历年试卷)

热门文章

  1. BUUCTF Misc 隐藏的钥匙
  2. 四VCO单声道/多声道合成器:KORG Polysix for mac
  3. AIGC基础:从VAE到DDPM原理、代码详解
  4. 2019年小程序发展优势
  5. Android APP native 崩溃分析之 linker SIGBUS 崩溃
  6. JavaScript 详细笔记(狂神说学习笔记)
  7. 工程流体力学笔记暂记43 (收缩喷管中的流动)
  8. 谷粒学院(十九)统计分析模块 | 定时任务 | echarts
  9. Linux网络编程(三)
  10. 谁能走得更远?百度、阿里、腾讯的区块链技术与布局对垒