怎样用不同的窗口打开多个超链接url(200分)

  • 主题发起人 主题发起人 heman
  • 开始时间 开始时间
H

heman

Unregistered / Unconfirmed
GUEST, unregistred user!
用ShellExecute函数只能用同一个窗口打开多个链接,我想用不同的窗口打开多个连接,应该怎样做呢?
 
直接运行 iexplore.exe http://...
 
ShellExecute(handle,'','http://1234.net',nil,nil,1);
ShellExecute(handle,'','http://www.microsoft.com',nil,nil,1);

不要用'open'.
 
问题已经自己解决,主要看了前面的贴子,感谢aimingoo
我试过o*o的方法不行。
程序如下:
TRegistry &regkey=*new TRegistry();
regkey.RootKey=HKEY_LOCAL_MACHINE;
regkey.OpenKey("Software//Microsoft//Windows//CurrentVersion//AppPaths//IEXPLORE.EX",false);

AnsiString IEPath=regkey.ReadString("");
delete &regkey;

WinExec( (IEPath+" "+Edit1->Text).c_str() , SW_SHOW);
 
虽然aimingoo的方法不错,但也只是对IE有效。
如果想对其他浏览器也有效呢??
试试这个:(可惜你已分了分数。。。。)
function findBrowser : string;
var
fileType : string;
browserPath : string;
i : integer;
const
extensionCount = 4;
htmlextensions : array[0..extensionCount-1] of string = ('.html','.htm','.shtml','.shtm');
begin

with TRegistry.Create do
try
RootKey := HKEY_CLASSES_ROOT;

browserPath:='';
i:=0;

while (length(browserPath) = 0) and (i <= extensionCount) do
begin

if OpenKey ('/' + htmlextensions, false) = true then
begin
fileType := ReadString('');

if length(fileType) <> 0 then
if OpenKey ('/' + fileType + '/shell/open/command', false) = true then
browserPath := ReadString('');
end;

inc(i);

end; //end while


CloseKey;
finally
Free;
end;

while pos(' -nohome', browserpath) <> 0 do browserpath := Stringreplace(browserpath, ' -nohome', '',[rfreplaceall]);
while pos('%1', browserpath) <> 0 do browserpath := Stringreplace(browserpath, '%1', '',[rfreplaceall]);
while pos('"', browserpath) <> 0 do browserpath := Stringreplace(browserpath, '"', '',[rfreplaceall]);

result := trim(browserpath);
end;
 
呵呵,还是wint的方法好,给分了
 
后退
顶部