1

通常の方法で実行可能ファイルを起動します。

Process p = new Process();
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.WorkingDirectory = @"C:\someDirectory\";
p.StartInfo.FileName = "ConsoleProgram.exe";
p.Start();

現在、実行可能ファイルはにありません。実行可能ファイルが見つからなかったC:\someDirectory\ため、上記を失敗させたいと思います。

代わりに、何らかの理由で、デスクトップ上で同じ名前の別の実行可能ファイルを検索します。(デスクトップで.exeの名前を変更すると、ソフトウェアが.exeが見つからなかったと文句を言うので、これを知っています。)この動作を防ぎ、特定のパスを強制し、他のパスを強制しないようにするにはどうすればよいですか?

4

3 に答える 3

2

UseShellExecuteがfalseの場合、WorkingDirectoryプロパティは実行可能ファイルの検索には使用されません。代わりに、開始されたプロセスによって使用され、新しいプロセスのコンテキスト内でのみ意味があります。

ここでUseShellExecuteをfalseに設定すると、WorkingDirectoryはまったく意味がないため、FileNameとして絶対パスを使用する必要があります。

于 2012-06-17T17:14:41.730 に答える
1

Filenameをファイルのパスに設定してみましたか?このような:

p.StartInfo.FileName = @"C:\someDirectory\ConsoleProgram.exe";
于 2012-06-17T17:00:55.510 に答える
1

完全なパス情報をFileNameに追加します。

于 2012-06-17T17:01:26.247 に答える