2011-08-03 43 views
1

當前我正在使用服務器管理器。該服務器是一個命令行應用程序。服務器在Process類中運行,窗口被隱藏。我一直在想辦法將注入命令(save-all),而不顯示服務器窗口。我曾嘗試使用StreamWriter和進程的標準輸入,但那不起作用。有誰知道如何讓這個工作?將命令注入基於命令行的進程

+1

它是如何工作的?顯示爲迄今爲止嘗試啓動該過程並使用其「StandardInput」的相關代碼 –

回答

0

爲了能夠重定向進程的任何標準I/O流,您需要禁用shell執行。你可能沒有。你應該可以這樣做:

var process = new Process 
{ 
    StartInfo = new ProcessStartInfo 
    { 
     FileName = Environment.GetEnvironmentVariable("COMSPEC"), 
     RedirectStandardInput = true, 
     UseShellExecute = false, 
    }, 
}; 
if (process.Start()) 
{ 
    process.StandardInput.WriteLine("echo FOOBAR!"); 
    process.WaitForExit(3000); 
    process.StandardInput.WriteLine("exit"); 
    process.WaitForExit(); 
}