启动默认浏览器时:
Dim trgt1 As String = "http://www.vbforums.com/showthread.php?t=612471"
pi.FileName = trgt1
System.Diagnostics.Process.Start(pi)
打开页面大约需要40秒。
如果我这样做,虽然这不是默认浏览器
Dim trgt1 As String = "http://www.vbforums.com/showthread.php?t=612471"
pi.Arguments = trgt1
pi.FileName = "iexplore.exe" 'or firefox.exe
System.Diagnostics.Process.Start(pi)
立即打开。这是一个错误还是一个功能?我试过这个,IE和FireFox都设置为默认浏览器。
答案 0 :(得分:3)
Windows正在通过注册表运行,寻找适当的应用程序来打开文档(通过explorer.exe)。
您明确告诉Windows使用xxx.exe打开文档。
移动目标的更新:; - )
它之所以如此慢的原因是你指定的Url看起来不像它知道如何用浏览器或其他方式打开它,并且必须使用蛮力来确定它。
<击>
如果您想加速使用默认浏览器启动,请从HKEY_CURRENT_USER\Software\Classes\http\shell\open\command
获取并使用#2。 击>
使用此功能检索默认浏览器的路径
/// <summary>
/// Reads path of default browser from registry
/// </summary>
/// <returns></returns>
private static string GetDefaultBrowserPath()
{
string key = @"htmlfile\shell\open\command";
RegistryKey registryKey =
Registry.ClassesRoot.OpenSubKey(key, false);
// get default browser path
return ((string) registryKey.GetValue(null, null)).Split('"')[1];
}
在C#程序中打开默认浏览器中的URL。
string defaultBrowserPath = GetDefaultBrowserPath();
try
{
// launch default browser
Process.Start(defaultBrowserPath, "http://www.yahoo.com");
}
catch (Exception exp)
{
MessageBox.Show(exp.Message);
}
在C#程序中的默认浏览器的单独实例中打开URL。
// open URL in separate instance of default browser
Process p = new Process();
p.StartInfo.FileName = GetDefaultBrowserPath();
p.StartInfo.Arguments = "http://www.yahoo.com";
p.Start();
答案 1 :(得分:0)
我恭敬地与天空不同。我现在在很多机器上尝试了这个和值
string key = @"htmlfile\shell\open\command";
似乎也始终默认为IE。现在,老实说我没有在firefox设置为默认浏览器的Chrome机器上试过这个,所以它可以做更多的测试,但值似乎只是从我的测试中存储IE。
希望这可以帮助那些使用其他浏览器的人。
我将坚持使用process.start(url)
,因为这几乎可以保证每次都能获得用户默认浏览器。让框架处理它!这就是为什么MS建造它......