繁体   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