single.php

C#のProcess.StartでWin32Exceptionエラーが発生する際の対処法

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 エラーで困っている人の参考になれば幸いです。

スポンサーリンク

最後までご覧いただき、ありがとうございます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です