Process.Start(URL)でブラウザを開こうとするとWin32Exceptionが出る件

規定のブラウザでURLを開く方法とか検索すると大概、

System.Diagnostics.Process.Start(url);

というようなコードが出てくるんだけど、
たまにSystem.ComponentModel.Win32Exceptionが投げられることがあったので調べてみた。
これが1回出ると、以降Process.Start(url)を受け付けなくなっちゃうので質が悪い。

大分古いのだけど、こんなサイトがあった。同じ症状っぽい。
開発用メモ/Process.StartでURLを開くとエラー

んでページ内のopenUrl(string targetUrl)メソッドをコピペしてみたんだけど、
ブラウザは起動されるんだけど、デフォルトページが表示されてしまう。

思いつきでProcessStartInfoをちょっと手直ししたらうまくいったので、ソースを掲載。

ハイライト部分が修正した箇所。
ArgumentsにURLをそのまんまぶっこんで、UseShellExecuteをFalseにしたら
ちゃんと起動してくれるようになった。
もちろん正しいかどうかは知らない。
本当にWin32Exceptionが出なくなるかはもっと知らない。

コメントを残す

メールアドレスが公開されることはありません。