的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
这应该适用于每台具有在可以使用 PATH 环境变量找到IExplore.exe的位置调用的可执行文件的计算机Process.Start。
通过指定文件名来启动进程类似于在 Windows 开始菜单的运行对话框中键入信息。因此,文件名不需要代表可执行文件。它可以是扩展名与系统上安装的应用程序关联的任何文件类型。例如,如果您将文本文件与编辑器(例如记事本)关联,则文件名可以具有 .txt 扩展名;如果您将 .doc 文件与文字处理工具(例如 Microsoft Word)关联,则文件名可以具有 .doc。同样,与“运行”对话框可以接受带或不带 .exe 扩展名的可执行文件名相同,.exe 扩展名在 fileName 参数中是可选的。例如,您可以将 fileName 参数设置为“Notepad.exe”或“Notepad”。
如果有人重命名或删除了IExplore.exe,或者它所在的位置不在 PATH 环境变量中,那么它将无法工作。
但是,如果您的目标是打开浏览器,那么我会按照其他人的建议传递 URL。