2013-01-09 64 views
0

我在vbs腳本中使用了以下行,它們從C#中調用.vbs。當我通過c調用vbs時,需要禁用cmd彈出。#

objShell.Run("net stop msdtc"),1,True 
objShell.Run("net start msdtc"),1,True 

在c $中,以下代碼用於調用帶管理員專用的.vbs。即使我將WindowStyle設置爲隱藏,cmd彈出窗口會在運行時打開。我不想打開彈出窗口。請幫我

ProcessInfo = new ProcessStartInfo("cmd.exe", "/c " + @"cscript.exe DTCSECURITY.vbs"); 
ProcessInfo.WindowStyle = ProcessWindowStyle.Hidden;     
ProcessInfo.UserName = @"administrator"; 
ProcessInfo.Password = StringToSecureString("password12$"); 
ProcessInfo.WindowStyle = ProcessWindowStyle.Hidden; 

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

回答

1

您應該指定CreateNoWindow = true;(請參閱documentation here)。

ProcessWindowStyle規定了state of the window(以最大化,最小化,可見等方式),一旦它被創建。

+0

我試着用下面的代碼, ProcessInfo.CreateNoWindow = TRUE; ProcessInfo.WindowStyle = ProcessWindowStyle.Hidden; 但沒希望了,實際上它並沒有解決我的問題 – Smaug

+0

請參閱我對其他答案的評論 –

+0

然後我可以更改運行時的值以隱藏窗口?隱藏的cmd參數值是什麼? – Smaug

1
​​3210

CreateNoWindow:

允許您靜默運行一個命令行程序。它 不會刷新控制檯窗口。

+0

即使給定ProcessInfo.CreateNoWindow = true;我面臨同樣的問題..沒有解決 – Smaug

+0

請記住,'運行'調用可能會激活一個窗口。值得注意的是,'1'的意思是「激活並顯示窗口」。 –

+0

這兩行代碼是完整的.vbs腳本還是在腳本中運行更多代碼? – Moriya

相關問題