我已經閱讀了StackOverflow中有關重定向輸出/應用程序中的錯誤 的幾個問題,但它無法幫助我。控制檯應用程序輸出未顯示
我開發了一個C#代碼的可執行文件。它從系統註冊表 恢復軟件並調用web服務將其保存到我們的數據庫。
我們正在與
Console.WriteLine( 「從可執行消息」)打印消息的可執行內部;
在另一方面,我們有一個CRM應用程序,我已經寫了兩次奪冠形成 調用與所需的參數psexec.exe這.EXE是遠程 複製目標機器上啓動。
如果您使用的是CMD.EXE參數直接PSEXEC電話,我們可以看到PSEXEC 執行橫幅和我們的可執行輸出
喜歡的東西:
PSEXEC v1.98 - 執行過程遠程
版權(C)2001-2010
標記Russinovich的Sysinternals - www.sysinternals.com
企業軟件@ 2012
從應用
啓動機器 「XXXXXXX」 任務
從註冊表恢復軟件列表消息
的Program.exe退出機器,錯誤代碼0 。
當我mak e爲.NET的PSEXEC電話,我不能恢復我的應用程序的輸出,它 只是表明:
PSEXEC v1.98 - 執行過程遠程
版權所有(C)2001-2010
馬克Russinovich編寫的Sysinternals - www.sysinternals.com
的Program.exe機器退出,錯誤代碼0
我正在爲流程類分配正在從流程恢復異步 數據的代理,但此信息不在此處。
我粘貼一些代碼,看看如果你能找到我的C#控制檯應用程序 輸出沒有出現的原因:
我啓動的命令是:
Dim CmdExe As String = "\\#MAQUINA# -u #USUARIO# -p #CLAVE# -s -c -f """ + executionPath + """"
指標的影響-S(運行方式系統)C(複製本地文件到遠程系統)-f(強制覆蓋)
Private Sub LanzarProceso()
CheckForIllegalCrossThreadCalls = False
Dim Proceso As New Process
AddHandler Proceso.OutputDataReceived, AddressOf CallbackProcesoAsync
AddHandler Proceso.ErrorDataReceived, AddressOf ErrorDataReceivedAsync
Dim startInfo As New ProcessStartInfo
startInfo.FileName = execFile
startInfo.Arguments = CmdExe.Replace("#MAQUINA#", txtFiltroMaquina.Text).Replace _
("#USUARIO#", txtUsuario.Text.Trim).Replace _
("#CLAVE#", txtClave.Text.Trim)
Proceso.EnableRaisingEvents = True
startInfo.UseShellExecute = False
startInfo.RedirectStandardOutput = True
startInfo.RedirectStandardError = True
startInfo.CreateNoWindow = False
Proceso.StartInfo = startInfo
Proceso.Start()
Proceso.BeginOutputReadLine()
Proceso.BeginErrorReadLine()
Proceso.WaitForExit()
End Sub
代表處理數據:
Private Sub CallbackProcesoAsync(sender As Object, args As System.Diagnostics.DataReceivedEventArgs)
If Not args.Data Is Nothing AndAlso Not String.IsNullOrEmpty(args.Data) Then
If Not listtask.InvokeRequired Then
listtask.Items.Add(args.Data.ToString)
Else
Dim d As New TextToControl(AddressOf AddToControl)
listtask.Invoke(d, args.Data.ToString)
End If
End If
End Sub
Private Sub ErrorDataReceivedAsync(sender As Object, args As System.Diagnostics.DataReceivedEventArgs)
If Not args.Data Is Nothing AndAlso Not String.IsNullOrEmpty(args.Data) Then
If Not listtask.InvokeRequired Then
listtask.Items.Add(args.Data.ToString)
Else
Dim d As New TextToControl(AddressOf AddToControl)
listtask.Invoke(d, args.Data.ToString)
End If
End If
End Sub
我檢查程序是否正確完成。 C#的可執行具有
Enviroment.Exit(0);
在執行
我試圖調用「cmd.exe/c」c:\ myprogram「作爲cmd.exe那個給我輸出但是應用程序掛起的人,這是必須的,我不能使用其他的東西,ps exec:/ –
+50賞金給你,因爲你是唯一一個嘗試和回答的人 –