如何贴到地址栏?(100分)

  • 主题发起人 主题发起人 snows
  • 开始时间 开始时间
S

snows

Unregistered / Unconfirmed
GUEST, unregistred user!
我想做一个网址管理器,希望实现点一下网站名,
程序能自动将网站的地址粘贴到IE5的地址栏,
请问:如何实现?
如果还有其它什么好的建议,请告诉我。谢谢!
 
牛! 仅仅是贴到地址栏,不用重定向?
 
应该是可以吧:-)
找到ie的窗口, 找到address输入的edit句柄, 然后粘贴:-)
 
"点一下网站名,程序能自动将网站的地址粘贴到IE5的地址栏",不必了。
直接点,如:
ShellExecute(handle,nil,pchar('www.sohu.com'),nil,nil,sw_shownormal);
则默认的浏览器就会连接到www.sohu.com
 
liuge说得对
 
听清楚! 人家只想把地址贴上去,不想直接到该网页!!!
 
cytown: 我用FindWindow,FindwindowEX找到了IE的地址栏的句柄,
但是无法用GetWindowText得到他的内容,用spy++也得不到,
看来IE和一般的程序不太一样.
 
可能没办法吧?
要想让用户可以修改可用一EDIT或者别的,决定后再运行呀.
 
下面是用IE4实现的,我没有IE5,不过你只要用winsight看看IE5的几个类名就可以了.
var wnd:hwnd;
URL:string;
begin
wnd:=findwindow('CabinetWClass',nil);
wnd:=findwindowex(wnd,0,'Worker',nil);
wnd:=findwindowex(wnd,0,'ReBarWindow32',nil);
wnd:=findwindowex(wnd,0,'ComboBoxEx32',nil);
wnd:=findwindowex(wnd,0,'ComboBox',nil);
wnd:=findwindowex(wnd,0,'Edit',nil);

if wnd<>0 then
begin
URL:='http://www.gislab.ecnu.edu.cn/delphibbs';
sendmessage(wnd, WM_SETTEXT, length(URL), longint(pchar(URL)));
end;

BTW:奇怪的是,反过来却不行,无法用WM_GETTEXT得到地址栏的内容.
 
In IE5.0:

var wnd:hwnd;
URL:string;
begin
wnd:=findwindow('IEFrame',nil);
wnd:=findwindowex(wnd,0,'WorkerW',nil);
wnd:=findwindowex(wnd,0,'ReBarWindow32',nil);
wnd:=findwindowex(wnd,0,'ComboBoxEx32',nil);
wnd:=findwindowex(wnd,0,'ComboBox',nil);
wnd:=findwindowex(wnd,0,'Edit',nil);

if wnd<>0 then
begin
URL:='http://www.gislab.ecnu.edu.cn/delphibbs';
sendmessage(wnd, WM_SETTEXT, length(URL), longint(pchar(URL)));
end;

cAKK真是高!
 
DreamTiger:好象不行.
至于IE4没试.
 
用findwindow找能行吗?
 
呵呵,还是SHELL好,人家用NETSCAPE呢?像我就用OPERA
 
to menxin: 在IE4上已经成功,但是我没有IE5.

to CJ: 看清楚,人家只是想把地址贴上,不想立即到那个网站.
 
Charles:不会吧,我是试过才贴的,我用的是NT4.0SP5 + D5 + IE5,是不是
我们的操作系统不一样?
 
cakk:呵呵,贴到地址栏是为了什么?看吗?:)
 
呵呵, cj, opera我也是很喜欢, 就是老死机:-( 另外, 中文识别也是很大的毛病.
 
to DreamTiger:
我用Winsight查了一下IE5,发现第二句是WorkerA,如下:
wnd:=findwindowex(wnd,0,'WorkerA',nil);
为什么你的是WorkerE,它们有什么区别?
另外:
我在用TreeView做网址目录时,不知怎么设计数据库,请大家提点建议?
 
field1:yourid field2:parentid field3:displayname
 

Similar threads

后退
顶部