版权声明

本文为原创作品,请尊重作者的劳动成果。转载必须保持文章完整性,并以超链接形式注明原始作者“ tingsking18 ”和 主站点 地址,方便其他朋友提问和指正。

论坛上有人问到要用Qt获取IE地址栏内容。个人觉得有两种方法,一种是通过Hook来获取,这种办法不是正路子,也比较难搞,IE的有接口可以获取当前页面的URL。

一下代码示例了如何用Qt来获取IE地址栏内容。

下面代码在VS下很容易编译通过。如果是用mingw,需要安装w32api,另外头文件的包含可能会出现问题。要仔细检查一下。

下面是代码,Qt获取IE地址栏内容:

#include <QAxWidget> #include <QApplication> #include <QtGui> #include <Mshtml.h> #include <ATLbase.h> #include <winuser.h> #include <comdef.h> #include <Exdisp.h> #import <mshtml.tlb> // Internet Explorer 5 #import <shdocvw.dll> #include <QAxObject> #import <msxml6.dll> #include <QDialog> #include <QVBoxLayout> #include <QPushButton> #include <QLineEdit> class MainWindow:public QDialog { Q_OBJECT public slots: void OnClicked(); public: MainWindow(QWidget *parent=0); QPushButton *btn; QLineEdit *edt; }; MainWindow::MainWindow(QWidget *parent) { btn = new QPushButton(); btn->setText("click"); edt = new QLineEdit(); QVBoxLayout *layout = new QVBoxLayout; layout->addWidget(btn); layout->addWidget(edt); this->setLayout(layout); connect(btn,SIGNAL(clicked()),this,SLOT(OnClicked())); } void MainWindow::OnClicked() { CoInitialize(0); SHDocVw::IShellWindowsPtr m_spSHWinds; m_spSHWinds = NULL; if (m_spSHWinds == NULL) { if (m_spSHWinds.CreateInstance(__uuidof(SHDocVw::ShellWindows)) != S_OK) { CoUninitialize(); } } int n = m_spSHWinds->GetCount(); for (int i = 0; i < n; i++) { _variant_t v = (long)i; IDispatchPtr spDisp = m_spSHWinds->Item(v); IWebBrowser2 *webBrowser = 0; spDisp.QueryInterface(IID_IWebBrowser2, &webBrowser); if (webBrowser) { IHTMLDocument2Ptr pDoc2=0; if (SUCCEEDED(webBrowser->get_Document( &spDisp))) pDoc2 = spDisp; //QAxWidget if(pDoc2!=NULL) { QString str; CComBSTR LocationURL; webBrowser->get_LocationURL(&LocationURL); char *buf = _com_util::ConvertBSTRToString(LocationURL.m_str); str = buf; edt->setText(str); } } } } #include "test.moc" int main(int argc, char *argv[]) { QApplication a(argc, argv); MainWindow mw; mw.setMinimumWidth(500); mw.show(); return a.exec(); }

Qt获取IE地址栏内容相关推荐

  1. linux下qt浏览word文件内容,Qt获取office文件内容

    Qt获取office文件内容 需要获取word文件的文件内容.网上找了好久,大部分都是excel的.而word的很少.所以在这里记录一下,方便大家查阅和自己使用. 使用的Qt版本是5.4.2 . 下面 ...

  2. Qt获取QTextEdit中的内容

    1.主要用到了QTextEdit中的成员函数:toPlainText(): 2.在编辑框中写上内容,点击获取按钮,通过控制台输出获取到的内容. 3.全部源码在附件中,这里之贴出主要实现部分. Text ...

  3. php全面获取url地址栏及各种参数

    php教程 全面获取url地址栏参数多种方法: $_SERVER["SERVER_PORT"] //获取端口 $_SERVER['HTTP_HOST'] //获取域名或主机地址 如 ...

  4. Qt获取鼠标位置(绝对位置、相对位置)

    在进行界面编程时,经常需要获取鼠标的位置,特别是需要知道鼠标在界面上某个控件的相对位置.在Qt其实获取这几种位置还是比较简单的.首先我们需要了解Qt的坐标系统,Qt的坐标系统是有QPainter类控制 ...

  5. linux qt写入excel文件内容,Qt 读取Excel表格数据 生成Excel表格并写入数据

    Qt 读取Excel表格数据 生成Excel表格并写入数据 Qt 读取Excel表格数据 生成Excel表格并写入数据 修改.pro文件,增加 axcontainer QT += axcontaine ...

  6. 使用 Qt 获取 UDP 数据并显示成图片

    一个项目,要接收 UDP 数据包,解析并获取其中的数据,主要根据解析出来的行号和序号将数据拼接起来,然后将拼接起来的数据(最重要的数据是 R.G.B 三个通道的像素值)显示在窗口中.考虑到每秒钟要接收 ...

  7. html js文本框文字列出,js实现文本框中输入文字页面中div层同步获取文本框内容的方法...

    这篇文章主要介绍了js实现文本框中输入文字页面中div层同步获取文本框内容的方法,实例分析了javascript操作dom元素的技巧,需要的朋友可以参考下 本文实例讲述了js实现文本框中输入文字页面中 ...

  8. html获取文本框的值,如何获取输入框的内容

    js如何获取input输入框中输入的值 直接使用.value属性即可获取输入框的内容. 详细的步骤如下: 首先获取输入框对应的DOM元素,如: var bt=document.getElementBy ...

  9. js获取url地址栏参数的方法,解决中文乱码问题,能支持中文参数

    js获取url地址栏参数的方法,解决中文乱码问题,能支持中文参数 参考文章: (1)js获取url地址栏参数的方法,解决中文乱码问题,能支持中文参数 (2)https://www.cnblogs.co ...

  10. selenium 获取请求返回内容的解决方案

    selenium 获取请求返回内容的解决方案 参考文章: (1)selenium 获取请求返回内容的解决方案 (2)https://www.cnblogs.com/zgq123456/articles ...

最新文章

  1. 批量更新日期字段中的年
  2. ASP.NET 学习笔记_13 文章发布管理小系统
  3. [文章备份]源代码制图工具Understand最新可用注册码
  4. 学习练习 java 二分查找法
  5. 第 1 章 第 6 题 带重复数排序问题( 扩展 ) 位向量实现
  6. 业务自助分析怎么推?中梁集团办的这场BI建模大赛值得借鉴
  7. 剪映专业版 1.0.3中文修复版(支持M1芯片、适配Big Sur)
  8. 正则表达式判断是否为数字
  9. ajax调用一般应用程序,【Web前端】---js调用本地应用程序
  10. MyEclipse10安装破解教程
  11. 成为数据分析师要具备什么能力——招式篇
  12. 使用MODBUS转PROFINET智能网关实现与多个温控器数据读写
  13. 我爱赚钱吧:建网站也是可以赚钱的③
  14. 模电笔记 差分放大器1
  15. Mac 搭建Appium自动化测试环境
  16. 最长公共子序列 LCS(模板) poj 1458
  17. SQL Server 2005 高速下载
  18. 中信易卡,你值得搬砖吗?
  19. unity设置分辨率android,Unity Screen Screen.SetResolution 设置分辨率
  20. SDL已死,应用安全路在何方?

热门文章

  1. fpga如何约束走线_FPGA入门之我见- 布局布线(place route,PAR)
  2. 威斯敏斯特教堂(西敏寺)墓碑上的话(WestMinster Abbey,When I was young and free...,修身齐家治国平天下)
  3. H5移动端页面设计的基础规范
  4. Trace使用(camera)
  5. 在VirtualBox上安装Linux的Guest Additions
  6. upc 9367 雷涛的小猫
  7. What is UTF-8?
  8. 那些好玩的生成器网站(二)
  9. Power BI分解销售目标
  10. MySQL INTERVAL 关键字指南