私は次のように外部プロセスを呼び出すアプリに取り組んでいます:
ProcessStartInfo startInfo = new ProcessStartInfo(PathToExecutable, Arguments){
ErrorDialog = false,
RedirectStandardError = true,
RedirectStandardOutput = true,
UseShellExecute = false,
CreateNoWindow = true,
WorkingDirectory = WorkingDirectory
};
using (Process process = new Process()) {
process.StartInfo = startInfo;
process.Start();
process.BeginErrorReadLine();
process.BeginOutputReadLine();
process.WaitForExit();
return process.ExitCode;
}
私が呼び出しているプロセスの 1 つは、ユーザーが設定する必要のない環境変数に依存しています。外部プロセスに送信される環境変数を変更する方法はありますか? 理想的には、実行中のプロセスにのみ表示できるようにすることができますが、プログラムでシステム全体に設定する必要がある場合は、それで解決します (ただし、UAC は管理者として実行することを強制しますか? )
ProcessStartInfo.EnvironmentVariables は読み取り専用なので、多くの助けになります...