LoginSignup
13
5

More than 3 years have passed since last update.

C#でURLを既定のブラウザで開く

Posted at

ネットで検索すると出てくる動かない例

MainForm.cs
/// <summary>
/// 「Googleを開く」ボタン「Click」イベント
/// </summary>
/// <param name="sender">sender</param>
/// <param name="e">EventArgs</param>
private void btnOpenGoogle_Click(object sender, EventArgs e)
{
    string url = "https://www.google.co.jp";
    OpenUrl(url);
}

/// <summary>
/// URLを既定のブラウザで開く
/// </summary>
/// <param name="url">URL</param>
/// <returns>Process</returns>
private Process OpenUrl(string url)
{
    return Process.Start(url);
}

下記のエラーが発生します。

「System.ComponentModel.Win32Exception: '指定されたファイルが見つかりません。'」
キャプチャ.JPG

正しく動く例

MainForm.cs
/// <summary>
/// URLを既定のブラウザで開く
/// </summary>
/// <param name="url">URL</param>
/// <returns>Process</returns>
private Process OpenUrl(string url)
{
    ProcessStartInfo pi = new ProcessStartInfo()
    {
        FileName = url,
        UseShellExecute = true,
    };

    return Process.Start(pi);
}

ポイント

Process.Startメソッドの引数にURLを直接渡すのではなく、ProcessStartInfoのインスタンスを渡す。
その際、ProcessStartInfoのUseShellExecuteプロパティにtrueを設定する。

感想

ツールを作成していた際などに毎回はまるので記事にしました。

宣伝

メイドカフェマップ for Android
アイコン
元メイドさんと一緒に作った~メイドカフェマップ for Androidを公開しています。
インストールして頂いて評価やコメントを頂けると喜びます:relaxed:
メイドカフェマップ アプリ内からツイートできる機能がありますので、そちらをして頂くとさらに喜びます:heart_eyes:

その他にもWikipediaの寄付依頼をブロックするアドオンを公開しています。

13
5
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
5