如题,一个很奇怪的现象。我在调用 ShellExecute 的时候,如果给出的网址是一个不跟任何参数的网址,ok,是可以打开的。但如果后面跟的网址是带参数的,ok,打开的就是我的文档了。死活都是我的文档。真是百思不得其解。源代码如下。var
     s:string;
begin
     s:='http://auto.zj.com/autotuk.php';     
     ShellExecute(form1.Handle,'open','Explorer.exe',PChar(s),'about:blank',SW_SHOWNORMAL);
     ShowMessage('1');
     s:='http://auto.zj.com/autotuk.php?sid=34';   // 这个网址是可以直接在ie中被正确打开的
     ShellExecute(Handle,'open','Explorer.exe',PChar(s),'about:blank',SW_SHOWNORMAL);
end;代码清晰简单明了。第一次用 ShellExecute 打开的是一个没有跟形参的网址的,可以顺利打开。第二次打开的是一个网址后面跟参数的,于是打开的就是“我的文档”了。各位只要把上面的代码拷贝下来一运行就知道结果了。我现在的疑问就是为什么会这样子?还有我要如何可以顺利打开带参数的网址的网页呢?

解决方案 »

  1.   

    var
       s:string;
    begin
       s:='http://auto.zj.com/autotuk.php';
       ShellExecute(form1.Handle,'open','Explorer.exe',PChar(s),'about:blank',SW_SHOWNORMAL);
       ShowMessage('1');
       s:='"http://auto.zj.com/autotuk.php?sid=34"'; // 这个网址是可以直接在ie中被正确打开的
       ShellExecute(Handle,'open','Explorer.exe',PChar(s),'about:blank',SW_SHOWNORMAL);
    end;s:='"http://auto.zj.com/autotuk.php?sid=34"';加双引号
      

  2.   

       ShellExecute(Handle,'open',PChar(s),'','',SW_SHOWNORMAL);
    这样也可以直接调用默认浏览器打开
      

  3.   

    不过还是结了吧。我找到原因了。把资源管理器改成ie就ok了……真不好意思,是个很低级的错误……