获得IE中的浏览地址
function GetIEAddress(IEHandle:THandle;var Address:string):Boolean;
Const WM_GETTEXT = $D;
      WM_GETTEXTLENGTH =$E;
      CtlNames:array[0..4] of string=(
        'WorkerA',        //获得IE窗口的工作区的句柄
        'ReBarWindow32',  //获得IE窗口的菜单栏的句柄
        'ComboBoxEx32',   //获得IE窗口的下拉菜单的句柄
        'ComboBox',       //获得IE窗口的下拉菜单当前项的句柄
        'Edit'            //获得这个下拉菜单的编辑框句柄
      );
var
  hwnd    :THandle;
  i,AddLen:integer;
  AddBuf  :Array[0..4095] of char;
  s       :string;
begin
  Result:=True;
  hwnd:=IEHandle;
  try
    for i:=0 to length(ctlnames)-1 do
      hwnd:=FindWindowEx(hwnd,0,PChar(CtlNames[i]),nil);
  except
    Result:=false;
  end;
  if (Result) then begin
    AddLen:=SendMessage(Hwnd,WM_GETTEXTLENGTH,0,0);
      //向系统发送获得IE窗口的地址栏中的字符串长度命令
    SendMessage(Hwnd,WM_GETTEXT,AddLen+1,DWord(@AddBuf));
      //向系统发送获得IE窗体地址栏中的字符串命令
    if length(AddBuf)>0 then
    begin
      Address:=AddBuf;
      GetWindowText(IEHandle,AddBuf,length(AddBuf)+1);
      s:=Addbuf;
      i:=pos(Uppercase(' - Microsoft Internet Explorer'),
        Uppercase(s));
      if i>0 then s:=Trim(copy(s,1,i-1));
      Address:=Address+' ['+s+']';
    end
    else Result:=false;
  end;
end;

function EnumIEProc(hwnd:THandle;Param:LPARAM):Boolean;stdcall;
const NAME_LEN=1024;
type
  PStrings=^TStrings;
var
  sClassName:Array[0..NAME_LEN] of char;
  IEAddress:string;
  AddLen:Integer;
begin
  AddLen:=GetClassName(hwnd,@sClassName,NAME_LEN);
  if (AddLen=7) and  (sClassName='IEFrame') then
    if GetIEAddress(hwnd,IEAddress) then
      PStrings(Param).Add(IEAddress);
  Result:=true;
end;

function GetAllIEAddress(var Addresses:TStrings):Integer;
var
  s:TStrings;
begin
  s:=TStringList.Create ;
  EnumWindows(@EnumIEProc,LPARAM(@s));
  Result:=s.Count ;
  if Result>0 then Addresses.Assign (s);
  s.free;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  s:TStrings;
begin
  s:=TStringList.Create ;
  GetAllIEAddress(s);
  if s.Count >0 then Memo1.Lines.Assign (s);
  s.free;
end;

[url]http://www.delphibbs.com/delphibbs/dispq.asp?lid=1392884[/url]

转载于:https://blog.51cto.com/sally/47706

获得所有已打开的IE浏览器窗口中的访问地址相关推荐

  1. 【Selenium】控制当前已经打开的 chrome浏览器窗口(高级版)

    前言 利用 Selenium 获取已经打开的浏览器窗口,全python操作 标题 链接 [Selenium]控制当前已经打开的 chrome浏览器窗口 https://blog.csdn.net/we ...

  2. selenium:使用已打开的chrome浏览器

    前言 环境参考 selenium:我的第一个程序 使用已打开的chrome浏览器有啥好处 不用验证登陆状态,可以先登陆,再爬虫 不用反复开浏览器 开启命令行启动 chrome.exe 找到 chrom ...

  3. 【Selenium】控制当前已经打开的 chrome浏览器窗口

    前言 有过几个小伙伴问过我如何利用 Selenium 获取已经打开的浏览器窗口,这里给安排了,还安排了两篇. 标题 链接 [Selenium]控制当前已经打开的 chrome浏览器窗口 https:/ ...

  4. 27、HTML框架(同一个浏览器窗口中显示不止一个页面)

    通过使用框架,你可以在同一个浏览器窗口中显示不止一个页面. <iframe src="https://www.17173.com/" width="500" ...

  5. python selenium+firefox 使用已打开的火狐浏览器进行操作(不需要每次都重新打开火狐)

    使用selenium操作时,每次使用webdriver.Firefox()都要重新弹出火狐窗口,效率非常低,所以我一直在查,selenium能不能在已打开的浏览器上操作,发现该模块没有这个功能,那说明 ...

  6. angular js 打开新的浏览器窗口

    1.带参数打开新窗口 const newPath = location.origin + '/list' + '?name=' + name + '&sex=' + sex ; const w ...

  7. ajax 在新选卡打开,JavaScript在新窗口中打开,而不是选项卡

    我有一个选择框,当选择一个项目时,它会调用window.open(url) . Firefox默认会在新标签页中打开页面. 但是,我希望页面在新窗口中打开,而不是在新标签页中打开. 我该怎么做? #1 ...

  8. selenium连接已打开的Firefox浏览器

    原理:将session_id和url进行记录,下次打开firefox浏览器进行复用 import os,pickle,json,win32api from selenium import webdri ...

  9. 解决python+selenium自动化,打开谷哥浏览器窗口么会自动关闭问题

    # 导包 from selenium import webdriver from selenium.webdriver.common.by import By # 实例化浏览器,且浏览器对象的初始化放 ...

最新文章

  1. 机器学习算法1_线性回归
  2. javascript下載csv檔案
  3. 一文读懂:从 Python 打包到 CLI 工具
  4. 江苏全国计算机考试考点,江苏省 全国计算机等级考试考点
  5. Pandas数据清洗工具箱
  6. [BZOJ1503][NOI2004]郁闷的出纳员 无旋Treap
  7. MySQL深度剖析之索引专题(2021)
  8. 1号店案例html源码_手把手教一起写jQuery版mini源码,分析jQuery的优势
  9. 学python后到底能干什么-普通小白学会Python到底具体能做什么呢?
  10. 导入和作用域 #596
  11. 苹果雪豹操作系统正式版_苹果放出iOS 13andiPadOS beta 2:加入SMB网络共享、APFS硬盘支持...
  12. 关于ubuntu上,usb设备编号
  13. PAT乙级练习题1030 完美数列
  14. 三维电子沙盘数字沙盘开发教程第3课
  15. Dijkstra算法正确性证明
  16. vue-cli快速构建vue项目和本地模拟请求数据
  17. 计算机主机通常包括( ) a运算器,通常我们把( )称为计算机主机. A. 运算器 B. 运算器.控制器和内存 C. 运算器和控制器 D. 运算器和内存...
  18. [Dubbo新闻]--Dubbo正式进入Apache孵化器,开启开源新时代
  19. 微信公众号根据openid获取unionid
  20. 大数据架构师进阶之路-技术学习路线

热门文章

  1. python自学到精通
  2. python5_python5
  3. python三大神器_Python之旅:Python上古三大神器之一PIP①
  4. mysql random_Mysql中随机函数笔记
  5. android 关闭jack_Android7.0 配置JACK支持多用户同时编译
  6. 三张图助您掌握OTN分层结构
  7. 简单介绍Python中异常处理用法
  8. C语言题解:用二分法思想求解10个元素中某个元素的下标(包含函数方法)
  9. 关于学习Python的一点学习总结(49->迭代协议及迭代器的创建)
  10. HDU1599(最小环)