簡體   English   中英

來自命令行的C#程序參數?

[英]C# program parameters from the command line?

我正在嘗試啟動運行的C#程序,然后在cmd.exe開始運行后從cmd.exe發出命令。 例如,假設我從命令行啟動了我的.exe(C://FILEPATH/my_program.exe)。 然后我想讓該程序繼續運行,然后讓我能夠將命令傳遞給它能夠處理的命令。 在我的理想世界中,這將是“C://FILEPATH/my_program.exe run_my_command()”,它將執行run_my_command函數,或“C://FILEPATH/my_program.exe k”,這將做出回應我預先編程的字符。我知道,正如我輸入的那樣,會啟動my_program.exe的新副本。 當我傳遞類似的內容時,我只想讓一個人跑。

有誰知道如何做到這一點? 非常感謝示例代碼。 謝謝!!

最簡單的解決方案是讓你的第二個“my_program.exe”實例查找已經運行的現有實例,將消息“傳遞”到它然后立即退出。

實現它的常用方法是通過命名管道(.NET 3.5+中的System.IO.Pipes )。 程序啟動時,請偵聽具有給定名稱的命名管道。 如果還有其他內容正在偵聽該管道,請將消息發送給它並退出。

您正在描述典型的服務和命令工具。 服務(惡魔)在后台運行並執行命令。 命令工具獲取用戶命令並將它們傳遞給服務。 請參閱Windows服務應用程序 擁有服務而不是啟動多個進程會處理您的方法遇到的一些問題,例如進程之間的安全隔離(例如,一個用戶啟動命令,另一個用戶啟動另一個命令並在第一個用戶的上下文中執行)和進程生存期問題(用戶啟動命令然后關閉其會話)。

命令工具將通過經典IPC(本地RPC,管道,共享內存等)與進程通信。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM