Visual StudioなどのC#プロジェクトでProcess.Startを実行した際に引数によって、Win32Exception エラーが表示される場合の対処法を備忘録的に投稿します。
Win32Exception エラー
次のコードを動作させます。
public void Execute(string name, string option)
{
ProcessStartInfo pi = new ProcessStartInfo();
pi.UseShellExecute = true;
pi.FileName = name;
pi.Arguments = option;
Process.Start(pi);
}
引数 “name” に “notepad”、 “option” に “” を引き渡して実行すると正常に動作します。
しかし引数 “name” に “http://www.google.com”などのURLを引き渡した場合ブラウザーが起動してURLを表示せず Win32Exception エラーが発生します。
ProcessStartInfoを作成してから実行
Win32Exception エラーを回避するには、Process.Start() メソッドに直接パラメータを引き渡さずに、ProcessStartInfoを作成してからメソッドに引き渡します。
具体的には次のコードに変更します。
public void Execute(string name, string option)
{
ProcessStartInfo pi = new ProcessStartInfo();
pi.UseShellExecute = true;
pi.FileName = name;
pi.Arguments = option;
Process.Start(pi);
}
引数 “name” に “http://www.google.com”を受け渡して実行しても既定のブラウザーが表示され引数で指定したURLが開きます。
まとめ
短い記事になりましたが、C#プロジェクトでProcess.Startを実行した際に引数によって、Win32Exception エラーが表示される場合の対処法について書きました。
Win32Exception エラーを回避するには、Process.Start() メソッドに直接パラメータを引き渡さずに、ProcessStartInfoを作成してからメソッドに引き渡します。
Process.Startを実行した際に引数によって、Win32Exception エラーで困っている人の参考になれば幸いです。
スポンサーリンク
最後までご覧いただき、ありがとうございます。