Ich bin mit einer Batch-Datei timesync mit Server mit folgenden Code zu tun:Run .BAT C# -Code als verschiedene Benutzer-Datei durch alle paar Sekunden still
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();
Das Problem ist, es den Befehl Fenster auf dem Bildschirm blinkt was ich nicht will. Wie kann ich das verhindern?
Ein Verhalten, das ich gesehen habe, ist, wenn ich den gleichen Code mit UseShellExecute = true
laufen lasse und keinen Benutzernamen und kein Kennwort zur Verfügung stelle, dann blinkt das Befehlsfenster nicht.
Also im Grunde möchte ich .bat Datei mit C# -Code als anderen Benutzer im Hintergrund ausführen.
Warum nicht verwenden Sie die in ntp Einstellungen gebaut Zeit Synchronisationen zu tun? – NotMe
Das ist eine andere Geschichte. Ich kann das rechtfertigen, aber glauben Sie mir, dass ich das tun muss. Lassen Sie uns das Timesync-Stück herausnehmen und etwas anderes denken, wir wollen dieses Problem des Flatterns lösen. – user393014
Sie könnten 'info.WindowStyle = ProcessWindowStyle.Hidden' verwenden, aber ich bin nicht sicher, ob dies für Konsolenanwendungen gültig ist. –