當前位置:編程學習大全網 - 源碼下載 - 請問如何用delphi實現獲取瀏覽器url

請問如何用delphi實現獲取瀏覽器url

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;

  • 上一篇:看小說的時候老是彈出廣告,很煩。怎樣才能阻止那些淫穢廣告的出現?
  • 下一篇:世界上第壹個計算機程序是怎樣開發出來的?
  • copyright 2024編程學習大全網