使用用户和密码隐藏process.start上的窗口

时间:2014-04-16 08:03:39

标签: c# process process.start schtasks

我在控制台应用程序中插入了以下代码:

Process delete = new Process();
startInfo.FileName = "schtasks.exe";
startInfo.WorkingDirectory = @"C:\Windows\System32\";
startInfo.UserName = @"AdminUser";
startInfo.Domain = @"mydomain";
startInfo.Password = encryptedPassword;
startInfo.CreateNoWindow = true;
startInfo.UseShellExecute = false;
startInfo.RedirectStandardOutput = true;
startInfo.Arguments = @" /delete /s 192.168.1.5 /tn Task1 /F";
delete.StartInfo = startInfo;
delete.Start();
delete.WaitForExit();
delete.Close();

此代码运行正常,但会启动一个新窗口。我知道它发生的原因是我使用明确的用户名和密码运行该过程,但我真的需要这个,我还需要隐藏窗口,是否有可能这样做? 作为替代方案,我需要执行" schtasks"作为远程机器的管理员而不使用schtasks的参数/ U和/ P,因为我需要对它们进行加密,所以afaik唯一的可能是使用Securestring(就像我在我的代码中那样)。 你能救我吗?

1 个答案:

答案 0 :(得分:1)

我认为这可以通过将WindowStyle设置为Hidden

来解决
startInfo.WindoStyle = ProcessWindowStyle.Hidden;