的Process.Start( "IEXPLORE.EXE"); < - 这可靠吗?

Run*_*CMD 6 .net c# winapi

的Process.Start( "IEXPLORE.EXE");

这在每台机器上都能正常工作吗?如果没有,怎么做得好?

...编辑:.................................

Process.Start(" http://www.example.com/ ")的问题; 是我们必须定位一个本地html文件,其中一些查询字符串指定要在html框架集中加载哪个页面.所以我们的URL如下所示:

G:\PathToHelpFolder\index.html#search?page=1.html
Run Code Online (Sandbox Code Playgroud)

如果将此路径传递给Process.Start,则会生成错误:"找不到该文件".这是由最后的查询字符串引起的.(#搜寻?页= 1.HTML)

因此,我们必须使用filepath作为命令行参数来启动资源管理器(或默认浏览器会更好).我们在MSDN文档中找到了上述方法.(Process.Start("IExplore.exe");)我们唯一的问题是这个方法是否足够可靠,可以部署到商业应用程序.单声道不是问题,只有Windows系统是目标.

...编辑:我们的解决方案......

我们的解决方案是从注册表中获取默认浏览器,并以文件名作为参数启动它.(如:在文件中用html启动默认浏览器,然后跳转到特定锚点)

Tho*_*mas 22

如果您的目标是打开浏览器转到特定页面,最好只使用页面URL:

Process.Start("http://www.example.com/");
Run Code Online (Sandbox Code Playgroud)

这样,将使用用户的默认浏览器.(对于其中一个,我会因为被迫使用IE而烦恼.)


小智 5

我曾经为我构建的一个愚蠢的应用程序需要默认浏览器的名称(没有打开),我在这里找到了一个很棒的教程:http: //ryanfarley.com/blog/archive/2004/05/16/649.aspx


Chr*_*isF 3

这应该适用于每台具有在可以使用 PATH 环境变量找到IExplore.exe的位置调用的可执行文件的计算机Process.Start

Process.Start文档

通过指定文件名来启动进程类似于在 Windows 开始菜单的运行对话框中键入信息。因此,文件名不需要代表可执行文件。它可以是扩展名与系统上安装的应用程序关联的任何文件类型。例如,如果您将文本文件与编辑器(例如记事本)关联,则文件名可以具有 .txt 扩展名;如果您将 .doc 文件与文字处理工具(例如 Microsoft Word)关联,则文件名可以具有 .doc。同样,与“运行”对话框可以接受带或不带 .exe 扩展名的可执行文件名相同,.exe 扩展名在 fileName 参数中是可选的。例如,您可以将 fileName 参数设置为“Notepad.exe”或“Notepad”。

如果有人重命名或删除了IExplore.exe,或者它所在的位置不在 PATH 环境变量中,那么它将无法工作。

但是,如果您的目标是打开浏览器,那么我会按照其他人的建议传递 URL。