0

アプリケーションから以下のコードを実行したい:

manage-bde -protectors -disable C:

コマンドプロンプトを開いてそこから実行すると(win8)、完全に機能しています。

しかし、アプリから実行しようとすると、次のようになります。'manage-bde' is not a recognized program.

私のコード:

process1.StartInfo.RedirectStandardOutput = true;
            process1.StartInfo.UseShellExecute = false;
            process1.StartInfo.CreateNoWindow = false;
            process1.StartInfo.FileName = @"cmd.exe";
            process1.StartInfo.Arguments = @"/C manage-bde -protectors -disable C:";
            process1.Start();

私は何が欠けていますか?

4

1 に答える 1

2

失敗の理由:

cmd.exe はファイルmanage-bdeを識別できず、続行できませんでした。

この問題は、ファイルに適切なパスを指定することで解決できますmanage-bde

解決策 1: C# からコンソール コマンドを実行すると、デフォルトで次のパスから実行されます。

プロジェクトをリリース モードで実行する場合 --><Solution FolderName>\<Project FolderName>\bin\Release

プロジェクトをデバッグモードで実行した場合 --><Solution FolderName>\<Project FolderName>\bin\Debug

そのため、C# コードからサードパーティの exe ファイルを実行する場合は、それら (exe ファイル) をそれぞれのフォルダーにコピーしてください。

解決策 2 :manage-bde環境変数でパスを設定できます

解決策 3:コード でフル パスを指定できmanage-bdeます。

サンプル コード : ここでは、実行したい exe/bat ファイルの完全なパスを提供しています。

Process process1 = new Process();
process1.StartInfo.RedirectStandardOutput = true;
process1.StartInfo.UseShellExecute = false;
process1.StartInfo.CreateNoWindow = false;
process1.StartInfo.FileName = @"cmd.exe";
process1.StartInfo.Arguments = @"/C C:\apache-jmeter-2.9\apache-jmeter-2.9\bin\jmeter.bat";
process1.Start();
于 2013-11-07T13:23:32.137 に答える