使用Windows窗体启动外部浏览器

时间:2013-02-05 16:37:11

标签: c# winforms

我已经编写了一个程序,用于处理将html文件放入并通过cms进行说明。在这个程序中,我有一些代码,以便您可以在不同的浏览器上预览。但是,当我运行它时,我得到一个未处理的异常,指出“无法启动进程,因为尚未提供文件名”。

  • 这只在尝试启动chrome或firefox时发生,IE工作正常。
  • 只有当我通过Advanced Installer运行我的程序并将其安装到我的机器上时才会发生这种情况,当它在发布模式下直接从VS2012构建时,它就会起作用。

我的代码如下:

if (chk_ExternalBrowser.Checked)
{
    string ffTempFilePath = "\"" + tempFilePath + "\"";//tempFilePath is an absolute path to the html file

    Process.Start(browserPaths[1], ffTempFilePath);//launch FF, browserPaths[1] contains an absolute path to firefox.exe
}

提前感谢您提供的任何见解。

更新 这个错误是因为我没有用引号括起browserPaths [1]的内容。现在我没有错误,但是打开了Windows资源管理器窗口而不是firefox浏览器。我推荐的代码如下:

if (chk_ExternalBrowser.Checked)
{
    string ffTempFilePath = "\"" + tempFilePath + "\"";//after this line ffTempFilePath == \"C:\\Users\\<username ommitted>\\Documents\\Visual Studio 2012\\Projects\\Local_IMP\\Local_IMP\\bin\\Release\\TEMP.html\"

    string tempTest = "\"" + browserPaths[1] + "\"";//after this line tempTest == \"C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe\"
    Process.Start(tempTest, ffTempFilePath);//launch FF
}

1 个答案:

答案 0 :(得分:0)

事实证明我只放了\ n来结束我文件中的一行而不是\ r \ n所以我只是在第1行读取IE而不是在后续行中读取其他行