首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

ShellExecute 没法打开网址后面跟参数的网页

2013-01-08 
ShellExecute 无法打开网址后面跟参数的网页如题,一个很奇怪的现象。我在调用 ShellExecute 的时候,如果给

ShellExecute 无法打开网址后面跟参数的网页
如题,一个很奇怪的现象。我在调用 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 打开的是一个没有跟形参的网址的,可以顺利打开。第二次打开的是一个网址后面跟参数的,于是打开的就是“我的文档”了。各位只要把上面的代码拷贝下来一运行就知道结果了。

我现在的疑问就是为什么会这样子?还有我要如何可以顺利打开带参数的网址的网页呢?
[解决办法]
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"';

加双引号
[解决办法]
   ShellExecute(Handle,'open',PChar(s),'','',SW_SHOWNORMAL);
这样也可以直接调用默认浏览器打开

[解决办法]
调用默认的好 不要指定资源管理器

热点排行