次のコードを使用して、サーバーとの timesync を行うために、数秒ごとに 1 つのバッチ ファイルを実行しています。
Process process = new Process();
process.StartInfo.WorkingDirectory = Environment.GetFolderPath(Environment.SpecialFolder.System);
process.StartInfo.FileName = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System), "cmd.exe");
process.StartInfo.Arguments = @"/C C:\TimeSync.bat";
process.StartInfo.CreateNoWindow = true;
process.StartInfo.UseShellExecute = false;
process.StartInfo.WindowStyle = ProcessWindowStyle.Minimized;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.UserName = "username";
SecureString pwd = new SecureString();
Char[] pwdCharacters = "password".ToCharArray();
foreach (char t in pwdCharacters)
{
pwd.AppendChar(t);
}
process.StartInfo.Password = pwd;
process.Start();
string output = process.StandardOutput.ReadToEnd();
問題は、私が望まない画面上のコマンド ウィンドウを点滅させることです。どうすればそれを防ぐことができますか?
私が見た動作の 1 つは、同じコードを実行し、UseShellExecute = true
ユーザー名とパスワードを指定しないと、コマンド ウィンドウが点滅しないことです。
したがって、基本的には、C#コードを別のユーザーとしてサイレントに使用して.batファイルを実行したいと考えています。