2016-08-17 102 views
0

我需要一個控制檯應用程序來記錄來自其他外部應用程序的一些事件。 控制檯應用程序的目的是在屏幕上顯示每個步驟外部應用程序正在執行的操作。 此外部應用程序只能使用參數調用exe。C#控制檯來自多個批處理文件的相同輸出

目標是:

  • 外部做一些工作
  • 防爆調用控制檯與args設置爲顯示
  • 外部做一些其他的工作
  • 防爆調用控制檯與args設置爲顯示
  • ..

但是控制檯應用程序已關閉並重新打開每次通話。 我需要一個技巧來讓控制檯應用程序等待消息並在不關閉的情況下顯示消息,但我現在真的不知道從哪裏開始看。

它可能是非常輕量級的解決方案,無需任何安裝。

謝謝。

編輯

外部應用程序(靜默運行)只能做一個命令「運行程序...」在每一個步驟(a命令行與參數EXE)。

在每個步驟中,我都必須發送一些信息給我的控制檯應用程序,以便向用戶寫入輸出信息,並提供更多的東西。我想要一個獨特的輸出,而不是每個步驟的新控制檯應用程序...

主要想法是有一個後臺運行控制檯應用程序等待來自外部應用程序的消息發送信息。

它的參數類型lauch控制檯應用程序與參數,不停止它,並回憶與新的參數相同,但我不認爲這是可能的。

我不能在機器上安裝工具,becauses解決方案可以在許多設備在我公司進行部署,我不能在每個安裝服務或數據庫..

你會用什麼樣的解決方案呢?控制檯應用程序可以等待傳入的消息並捕獲它們嗎?

+3

我沒有看到任何問號。你的問題到底是什麼?你已經嘗試了什麼? –

+1

打開'cmd.exe',運行應用程序,寫入標準輸出,不要關閉'cmd.exe'? :) – bzlm

+0

myconsoleapp <要運行的東西>所以它需要參數,並運行它,並保存結果? – BugFinder

回答

0

有很多不同的方法,

  • 進程間通信 - 可能是矯枉過正這裏
  • 共享文件 - 簡單而容易出錯
  • 其他共享存儲(數據庫或信息服務) - 很可能是我推薦的方式

使用數據庫方法你的應用程序將每個作業的'日誌'插入到數據庫表中。控制檯應用程序然後可以使用簡單的While循環進行循環,讀取行並顯示它們。這可擴展性更強,因爲您可以使用日誌來重新啓動作業等。

+0

我更新了我的問題,因爲我看到一些信息丟失:) 共享文件:在我的情況下,外部程序的每一步可能需要一段時間,所以我不能讓時間和我可能會有一個無限循環! 相互過程:是否「資源友好」? 數據庫:我不能在每個設備上安裝數據庫。 我會看消息服務,我從來沒有實現這一點。 如果它符合我的要求,我將驗證您的答案,謝謝! – Manea

+0

使用數據庫 - 您將使用一箇中央數據庫,並且所有客戶端只需通過網絡與其進行通信,因此您不需要在每臺計算機上安裝數據庫......雖然使用共享文件的主體是相同的,但是您只需將要顯示的數據添加到數據庫或文件中,控制檯應用程序只需定期檢查數據庫或文件,並顯示自上次檢查後添加的所有新數據。 – Milney

+0

對不起,我錯過了其他信息,它必須在離線狀態下工作!否則,具有服務的集中式數據庫是一個好的解決方案 我只需要一個簡單的方法來在我的2個應用程序之間進行通信,而無需外部工具,並且有一個獨特的控制檯輸出,但實際上比開始時感謝的更加困難。 – Manea

相關問題