4

exeファイルを使用してProcess.Start()いますが、「Win32Exceptionパラメータが正しくありません」をスローします。

Process p = new Process();
Process.Start("C:\Program Files\APS2PP\keyl2000.exe");

このファイルはコマンドプロンプトで正常に実行できます。

4

4 に答える 4

6
 Process.Start("C:\Program Files\APS2PP\keyl2000.exe")

誰かがあなたの質問を編集し、誤って間違いを修正しました。バックスラッシュを 2 つ使用するか、文字列の前に @ を付けます。

 Process.Start(@"C:\Program Files\APS2PP\keyl2000.exe");
于 2011-02-08T18:22:24.753 に答える
2

から: http://msdn.microsoft.com/en-us/library/53ezey2s.aspx

Win32Exception - 関連ファイルを開くときにエラーが発生しました。

1) 静的メソッドを使用する場合は、オブジェクトProcess.Start(String)を宣言する必要はありません。Process

//Use...
Process p = new Process();
p.StartInfo = new ProcessStartInfo(filename);
p.Start();

//Or...

Process.Start(filename);

2)例外は基本的に、何らかの理由でそのファイルを開くことができないと言っています。パスは正しいですか? そのファイルを手動で開いてみましたか?

3) ファイル パスをより整理された場所に定義してください。設定ファイルなど。これにより、文字をエスケープする必要がなくなります。ただし、その文字列をインラインのままにしておくことを主張する場合は、少なくともエスケープ文字の前に @ 記号 ( @"C:\Program Files\SomeFile.exe")を付けて不要にする必要があります。

于 2011-02-08T17:52:41.183 に答える
0

例外の詳細はありますか?

http://msdn.microsoft.com/en-us/library/system.componentmodel.win32exception.aspxによると、この例外には内部例外コードがあるため、グーグルで検索して何が起こったかを正確に確認できます。

于 2011-02-08T17:25:25.987 に答える