2012-06-12 6 views
6

を使用してhtmlファイルを開き、デフォルトのWebブラウザ

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ブラウザではなく、FirefoxとIE(自分のPCにインストールされている2つのWebブラウザ)を呼び出しています。私はこれをどのように修正するのか分かりません。どんな助けもありがとうございます。前もって感謝します。私はダウンロードしてGoogle Chromeをインストールしている

EDIT

は、デフォルトのWebブラウザとして設定しますが、奇妙なことに上記のエラーがそれで発生しません。

答えて

24

あなたは自動的にあなたのデフォルトのブラウザを起動し、あるいはむしろ.htmまたは.htmlファイルのデフォルトのハンドラを検索し、それを使用します

System.Diagnostics.Process.Start(pathToHtmlFile); 

これで、すべてのそのコードを置き換えることができます。

Firefoxがデフォルトに設定されていると、時々不思議な例外が発生することがあります(Firefoxが初めて起動したと思います)。そのためにはtry/catchを処理したい場合があります。ブラウザにHTMLのデフォルトの関連付けを持っていない人のために

+2

私はそれを試しました。しかし、一部のPCでは.htm/.htmlはWebブラウザでは開かれません。 .htm/.html拡張子は、たとえばテキストエディタやIDEに関連付けることができます。 – Jack

+0

デフォルトのプログラムは変更できますが、実際には問題はありません。 'ShellExecute'を使用して既定のWebブラウザを起動する際のヒントや、いくつかのレジストリキーのパスについては、[this](http://support.microsoft.com/kb/224816)を参照してください。の)。最終的には、ユーザーはいくつかのデフォルトプログラムを変更することによって、おそらく介入することができます...しかし、あなたはこれについてあまり心配するべきではありません。 – Spooky

+1

Jackが言ったように、これはひどい考えです。私は個人的にはHTMLファイルを開くためのデフォルトアプリケーションとしてエディタを設定していますが、デフォルトのブラウザではなく、そのエディタでreadmeファイルを開くプログラムを見ないようにしてくれます。 Windowsでは「デフォルトブラウザ」と「HTMLを開くためのデフォルトアプリ」の違いがあります。 – Nyerguds

0

、私は最初のexeファイルのためのルックアップコードを、使用して

System.Diagnostics.Process.Start("Chrome", Uri.EscapeDataString(pathToHtmlFile))

+0

ユーザーにはクロムブラウザがインストールされていることを前提としています。 – Jack

+0

DefaultWebBrowserのコードはページ上部に表示されています –

+0

もっと一般的にしたい場合は、そのコードを使用することに戻ります(ごめんなさい。 –

0

イムを使用します。 たとえば、exeists chrome.exe(デフォルトパス)、if firefox.exeまたはlauncher.exe(オペラ用)などが存在する場合は、pathToHtmlFileパラメータでiexplore.exeを実行してみてください。これは私の解決策です。私は外部設定を使用しています。私のブラウザが設定されていて、OSにデフォルトが設定されているかどうかは関係ありません。

関連する問題