获得所有已打开的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;
转载于:https://blog.51cto.com/sally/47706
获得所有已打开的IE浏览器窗口中的访问地址相关推荐
- 【Selenium】控制当前已经打开的 chrome浏览器窗口(高级版)
前言 利用 Selenium 获取已经打开的浏览器窗口,全python操作 标题 链接 [Selenium]控制当前已经打开的 chrome浏览器窗口 https://blog.csdn.net/we ...
- selenium:使用已打开的chrome浏览器
前言 环境参考 selenium:我的第一个程序 使用已打开的chrome浏览器有啥好处 不用验证登陆状态,可以先登陆,再爬虫 不用反复开浏览器 开启命令行启动 chrome.exe 找到 chrom ...
- 【Selenium】控制当前已经打开的 chrome浏览器窗口
前言 有过几个小伙伴问过我如何利用 Selenium 获取已经打开的浏览器窗口,这里给安排了,还安排了两篇. 标题 链接 [Selenium]控制当前已经打开的 chrome浏览器窗口 https:/ ...
- 27、HTML框架(同一个浏览器窗口中显示不止一个页面)
通过使用框架,你可以在同一个浏览器窗口中显示不止一个页面. <iframe src="https://www.17173.com/" width="500" ...
- python selenium+firefox 使用已打开的火狐浏览器进行操作(不需要每次都重新打开火狐)
使用selenium操作时,每次使用webdriver.Firefox()都要重新弹出火狐窗口,效率非常低,所以我一直在查,selenium能不能在已打开的浏览器上操作,发现该模块没有这个功能,那说明 ...
- angular js 打开新的浏览器窗口
1.带参数打开新窗口 const newPath = location.origin + '/list' + '?name=' + name + '&sex=' + sex ; const w ...
- ajax 在新选卡打开,JavaScript在新窗口中打开,而不是选项卡
我有一个选择框,当选择一个项目时,它会调用window.open(url) . Firefox默认会在新标签页中打开页面. 但是,我希望页面在新窗口中打开,而不是在新标签页中打开. 我该怎么做? #1 ...
- selenium连接已打开的Firefox浏览器
原理:将session_id和url进行记录,下次打开firefox浏览器进行复用 import os,pickle,json,win32api from selenium import webdri ...
- 解决python+selenium自动化,打开谷哥浏览器窗口么会自动关闭问题
# 导包 from selenium import webdriver from selenium.webdriver.common.by import By # 实例化浏览器,且浏览器对象的初始化放 ...
最新文章
- 机器学习算法1_线性回归
- javascript下載csv檔案
- 一文读懂:从 Python 打包到 CLI 工具
- 江苏全国计算机考试考点,江苏省 全国计算机等级考试考点
- Pandas数据清洗工具箱
- [BZOJ1503][NOI2004]郁闷的出纳员 无旋Treap
- MySQL深度剖析之索引专题(2021)
- 1号店案例html源码_手把手教一起写jQuery版mini源码,分析jQuery的优势
- 学python后到底能干什么-普通小白学会Python到底具体能做什么呢?
- 导入和作用域 #596
- 苹果雪豹操作系统正式版_苹果放出iOS 13andiPadOS beta 2:加入SMB网络共享、APFS硬盘支持...
- 关于ubuntu上,usb设备编号
- PAT乙级练习题1030 完美数列
- 三维电子沙盘数字沙盘开发教程第3课
- Dijkstra算法正确性证明
- vue-cli快速构建vue项目和本地模拟请求数据
- 计算机主机通常包括( ) a运算器,通常我们把( )称为计算机主机. A. 运算器 B. 运算器.控制器和内存 C. 运算器和控制器 D. 运算器和内存...
- [Dubbo新闻]--Dubbo正式进入Apache孵化器,开启开源新时代
- 微信公众号根据openid获取unionid
- 大数据架构师进阶之路-技术学习路线