これを使用して、デフォルトのWebブラウザーのパスと実行可能ファイルを取得しています。
public static string DefaultWebBrowser
{
get
{
string path = @"\http\shell\open\command";
using (RegistryKey reg = Registry.ClassesRoot.OpenSubKey(path))
{
if (reg != null)
{
string webBrowserPath = reg.GetValue(String.Empty) as string;
if (!String.IsNullOrEmpty(webBrowserPath))
{
if (webBrowserPath.First() == '"')
{
return webBrowserPath.Split('"')[1];
}
return webBrowserPath.Split(' ')[0];
}
}
return null;
}
}
}
と:
protected static bool Run(string FileName, string Args)
{
try
{
Process proc = new Process();
processInfo.FileName = FileName;
proc.StartInfo.WindowStyle = ProcessWindowStyle.Normal;
if(Args != null) proc.StartInfo.Arguments = Args;
proc.Start();
return true;
}
catch (Exception) { }
return false;
}
次に、Webブラウザを呼び出します。Run(DefaultWebBrowser, "foo.html")
問題は、上記の関数は、デフォルトのWebブラウザーであるInternet Explorerの代わりに、FirefoxとIE(私のPCにインストールされている2つのWebブラウザー)を呼び出すことです。これを修正する方法がわかりません。
編集
Google Chromeをダウンロードしてインストールし、デフォルトのWebブラウザーとして設定しましたが、奇妙なことに、上記のエラーは発生しません。