2013-05-02 109 views
0

我想在我的工作人員角色執行控制檯進程,但無論我設置爲它總是在後臺運行的過程中什麼配置:Worker角色隱藏控制檯進程

這是我的控制檯設置:

Process proc = new Process(); 

proc.StartInfo.FileName = "D:\\ZProcessing.exe" ; //console process 

proc.StartInfo.UseShellExecute = false; 
proc.StartInfo.RedirectStandardOutput = true; 
proc.StartInfo.RedirectStandardError = true; 
proc.StartInfo.CreateNoWindow = false; 
proc.StartInfo.WindowStyle = ProcessWindowStyle.Maximized; 

proc.Start(); 
+0

運行後臺或以其他用戶身份運行? – Marco 2013-05-02 08:19:34

回答

0

一種方式來做到這一點是:

[DllImport("User32.dll")] 
private static extern bool SetForegroundWindow(IntPtr hWnd); 
private IntPtr handle; 
private Process proc; 

private void MyMethod() 
{ 
    proc = new Process(); 
    proc.StartInfo.FileName = "D:\\ZProcessing.exe" ; //console process 

    proc.StartInfo.UseShellExecute = false; 
    proc.StartInfo.RedirectStandardOutput = true; 
    proc.StartInfo.RedirectStandardError = true; 
    proc.StartInfo.CreateNoWindow = false; 
    proc.StartInfo.WindowStyle = ProcessWindowStyle.Maximized; 

    proc.Start(); 

    // Find new window handle 
    handle = proc.MainWindowHandle; 

    // Set it to foreground 
    SetForegroundWindow(handle); 
} 

不幸的是使用純.NET,爲據我知道這是不可能的。以上是假設您正在使用與當前登錄用戶相同的用戶運行進程的解決方案。