1
當前我正在使用服務器管理器。該服務器是一個命令行應用程序。服務器在Process類中運行,窗口被隱藏。我一直在想辦法將注入命令(save-all),而不顯示服務器窗口。我曾嘗試使用StreamWriter和進程的標準輸入,但那不起作用。有誰知道如何讓這個工作?將命令注入基於命令行的進程
當前我正在使用服務器管理器。該服務器是一個命令行應用程序。服務器在Process類中運行,窗口被隱藏。我一直在想辦法將注入命令(save-all),而不顯示服務器窗口。我曾嘗試使用StreamWriter和進程的標準輸入,但那不起作用。有誰知道如何讓這個工作?將命令注入基於命令行的進程
爲了能夠重定向進程的任何標準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();
}
它是如何工作的?顯示爲迄今爲止嘗試啓動該過程並使用其「StandardInput」的相關代碼 –