2014-04-16 58 views
0

我有下面的代码插入到一个控制台应用程序:隐藏窗口,用户名和密码

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(就像我一样在我的代码中)。 你能帮我吗?

+0

你有没有得到这个工作? –

回答

1

我认为这可以通过设置来解决的WindowStyleHidden

startInfo.WindoStyle = ProcessWindowStyle.Hidden; 
+0

不幸的是,不工作。 – maurice85

+0

说明:该代码是控制台应用程序的一部分,因此已经打开了一个窗口(并应保持打开直到结束),而由delete.Start启动的第二个窗口应保持隐藏状态。 – maurice85

+0

我会看看这个。 –