我運行一個批處理文件,每隔幾秒鐘做時間同步與服務器使用下面的代碼:運行.BAT通過C#代碼爲不同的用戶文件默默
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();
問題是,它在屏幕上閃動的命令窗口我不想要。我怎樣才能防止呢?
我看到的一種行爲是,如果我運行與UseShellExecute = true
相同的代碼,並且不提供用戶名和密碼,那麼命令窗口不會閃爍。
所以基本上我想用c#代碼作爲不同的用戶靜默運行.bat文件。
爲什麼不使用內置的ntp設置進行時間同步? – NotMe 2011-01-10 19:41:37
這是不同的故事。我可以證明這一點,但相信我必須這樣做。讓我們拿出時間片並思考其他事情,我們想要解決這個問題。 – user393014 2011-01-10 19:43:17
你可以使用`info.WindowStyle = ProcessWindowStyle.Hidden`,但我不確定這是否適用於控制檯應用程序。 – 2011-01-10 19:48:43