1

私はこの非常に単純なプログラムを持っています

Process process = new Process();
process.StartInfo.FileName = @"psexec";
process.Start();

しかし、実行すると、デバッグで「指定されたファイルが見つかりません」と表示されます

同じプログラムで「psexec」を「メモ帳」に変更すると、動作してメモ帳が開きます。

Process process = new Process();
process.StartInfo.FileName = @"notepad";
process.Start();

System32にpsexecがあり、Windows-Runを使用して「psexec」を実行すると機能するため、これは奇妙です。

よろしくお願いします。

更新:フルパスを指定しましたが、@="C:\Windows\System32\PSexec.exe"機能しません。しかし、例として Psexec を移動すると、@"D:\psexec.exe"動作します!! なぜこれが起こるのですか?

4

2 に答える 2

3

64 ビット オペレーティング システムでは、c:\windows\system32 からプログラムを実行するのは面倒です。回避策は、[プロジェクト] + [プロパティ] の [ビルド] タブで、プラットフォーム ターゲットを AnyCPU に変更します。または、ファイルを c:\windows\syswow64 にもコピーします。

または、Windows ディレクトリに配置しないようにするには、そこに属するオペレーティング システム固有のファイルではありません。適切な場所は、EXE と同じディレクトリです。

ファイル システム リダイレクターの詳細については、この MSDN 記事 を参照してください。

于 2012-11-30T18:00:24.853 に答える
0

「psexec」のフルパスを指定してみてください

役立つ可能性のあるプロパティ「WorkingDirectory」があります。

于 2012-11-30T00:13:22.833 に答える