2013-01-09 64 views
2

因爲我想運行cmd具有管理權限的過程中,但彈出打開甚至設置WindowStyle隱藏。彈出窗口觸發器,如果​​我運行與行政專用c進程#

ProcessInfo = new ProcessStartInfo("cmd.exe", "/c " + @"cscript.exe DTCSECURITY.vbs"); 
ProcessInfo.CreateNoWindow = true;. 
ProcessInfo.WindowStyle = ProcessWindowStyle.Hidden; 

// Here with i pass the privillage 
ProcessInfo.UserName = @"administrator"; 
ProcessInfo.Password = StringToSecureString("password12$");  

process = Process.Start(ProcessInfo); 
process.WaitForExit(); 

但如果我評論的privillage代碼沒有彈出閃爍。

回答

1

我想你應該設置WorkingDirectory屬性。來自MSDN;

如果提供的用戶名和密碼是 ,則必須設置WorkingDirectory屬性。如果該屬性未設置,則默認工作目錄爲 %SYSTEMROOT%\ system32。


如果UserName屬性不是null或空字符串, UseShellExecute屬性必須是假的,或者 InvalidOperationException異常將被拋出時, 的Process.Start(的ProcessStartInfo)方法被調用。

+0

我嘗試了你的建議,仍然嘗試相同的問題 – Smaug

1

嘗試設置ProcessStartInfo.UseShellExecutefalse(這是true默認情況下)。

ProcessStartInfo.CreateNoWindow Property說:

如果UseShellExecute屬性爲true或用戶名和密碼 屬性不爲空,則CreateNoWindow屬性值將被忽略 並創建一個新的窗口。

+0

感謝您的答覆。如果沒有設置權限,問題會隱藏起來。如果我通過,那麼即使添加了'ProcessInfo.UseShellExecute = false;',彈出窗口也會自動出現 – Smaug

+0

! –

相關問題