C# 将命令传递给正在运行的外部CMD
这是我的问题,我有一个当前正在运行的程序,它在后台运行,只能通过cmd窗口访问,您可以在其中传递命令来控制该程序。我试图做的是从我的c#winform向cmd发送一个命令,然后由cmd执行该命令。我基本上是在为这个程序编写gui 干杯。是的,它正在运行——你将无法向跑步应用程序发送命令,除非它设计为以某种方式接受命令。。它要么需要有一个开放的端口,要么需要某种方式向正在运行的应用程序“发送命令”C# 将命令传递给正在运行的外部CMD,c#,cmd,external,C#,Cmd,External,这是我的问题,我有一个当前正在运行的程序,它在后台运行,只能通过cmd窗口访问,您可以在其中传递命令来控制该程序。我试图做的是从我的c#winform向cmd发送一个命令,然后由cmd执行该命令。我基本上是在为这个程序编写gui 干杯。是的,它正在运行——你将无法向跑步应用程序发送命令,除非它设计为以某种方式接受命令。。它要么需要有一个开放的端口,要么需要某种方式向正在运行的应用程序“发送命令” 大多数“您无法修改”的应用程序只能在启动时使用特定参数进行调用,除非它们被设计为在运行时进行输入。好
大多数“您无法修改”的应用程序只能在启动时使用特定参数进行调用,除非它们被设计为在运行时进行输入。好吧,这有点复杂,但这可以通过使用Windows Api来完成。 这意味着,您需要通过P/Invoke导入一些本机库 首先,您需要获得控制台窗口的句柄。您可以通过()执行此操作
在发送一些按键的旁边有多个选项。我想最漂亮的方法是将()与and messages和key作为lParam参数一起使用。到底“可以通过cmd窗口控制”是什么意思?如何具体控制?这是否可能在很大程度上取决于这些信息。我可以在cmd中发出特定于程序的命令。假设“帮助”将为我提供一个可以输入cmd窗口的所有命令的列表。“不是你的程序”当前正在运行吗?或者你是在试图引用它?请你的问题在问题本身中提供信息,以便可以看到,而不是将其隐藏在评论中。正如我之前所说的,这个问题的答案高度依赖于这些信息,因此要使其可用且易于查看。我可以手动将命令输入cmd,然后像正常情况下一样使用enter执行命令,难道没有办法模仿我将字符串倾入cmd窗口吗?你的意思是“发送击键”是的,那是一个不同的故事。当进程运行时,可以使用Process对象将命令注入标准输入流。