帖出代码:为何这段代码得不到IE地址栏的内容?显示出来只有一个“?”。(20分)

  • 主题发起人 主题发起人 Boblee
  • 开始时间 开始时间
B

Boblee

Unregistered / Unconfirmed
GUEST, unregistred user!
function GetIEAddress(IEHandle:THandle;var Address:string):Boolean;
Const
CtlNames:array[0..4] of Pchar=(
'WorkerA', //获得IE窗口的工作区的句柄
'ReBarWindow32', //获得IE窗口的菜单栏的句柄
'ComboBoxEx32', //获得IE窗口的下拉菜单的句柄
'ComboBox', //获得IE窗口的下拉菜单当前项的句柄
'Edit' //获得这个下拉菜单的编辑框句柄
);
var
hwnd :Thandle;
i:integer;
AddBuf :array[0..1023] of char;
begin
Result:=True;
hwnd:=IEHandle;
try
for i:=0 to 4 do
showmessage(CtlNames);
hwnd:=FindWindowEx(hwnd,0,CtlNames,nil);
except
Result:=false;
end;
if (Result) then begin
//showmessage('hwnd: ' + inttostr(hwnd));
SendMessage(Hwnd,WM_GETTEXT,1024,Integer(@AddBuf));
ShowMessage('addres:' + AddBuf);
end;
end;

function GetWebSiteInfo():String;
var
pHandle:THandle;
clsName:array[0..224]of char;
ThisUrl: string;
begin
phandle := GetForegroundWindow();
GetClassName(pHandle,clsName,225);//得到当前窗口的类名
showmessage(clsName);
if UpperCase(trim(clsName))='IEFRAME' then//如果是IE的类
begin
GetIEAddress(pHandle,thisurl);
end;
showmessage(thisurl);
end;
 
不知道错那,给你个相关的


----------------------------------------------------
从当前的浏览器取得当前URL yousoft(原作)

关键字 url 游览器 截取

出处 http://yousoft.home.chinaren.com




确定在uses子句中增加DDEMan。


uses windows, ddeman, ......


function Get_URL(Servicio: string): String;
var
Cliente_DDE: TDDEClientConv;
temp:PChar; file://<<----------------这是新的
begin
Result := '';
Cliente_DDE:= TDDEClientConv.Create( nil );
with Cliente_DDE do
begin
SetLink( Servicio,'WWW_GetWindowInfo');
temp := RequestData('0xFFFFFFFF');
Result := StrPas(temp);
StrDispose(temp); file://避免内存漏洞
CloseLink;
end;
Cliente_DDE.Free;
end;

procedure TForm1.Button1Click(Sender);
begin
showmessage(Get_URL('Netscape'));
or
showmessage(Get_URL('IExplore'));
end;



 
Tianbin2008:
谢谢,可用。给分了。
 
后退
顶部