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

ShellExecute 无法打开网址后面跟参数的网页解决方法

2012-02-05 
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);
这样也可以直接调用默认浏览器打开

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

热点排行