Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将命令传递给正在运行的外部CMD_C#_Cmd_External - Fatal编程技术网

C# 将命令传递给正在运行的外部CMD

C# 将命令传递给正在运行的外部CMD,c#,cmd,external,C#,Cmd,External,这是我的问题,我有一个当前正在运行的程序,它在后台运行,只能通过cmd窗口访问,您可以在其中传递命令来控制该程序。我试图做的是从我的c#winform向cmd发送一个命令,然后由cmd执行该命令。我基本上是在为这个程序编写gui 干杯。是的,它正在运行——你将无法向跑步应用程序发送命令,除非它设计为以某种方式接受命令。。它要么需要有一个开放的端口,要么需要某种方式向正在运行的应用程序“发送命令” 大多数“您无法修改”的应用程序只能在启动时使用特定参数进行调用,除非它们被设计为在运行时进行输入。好

这是我的问题,我有一个当前正在运行的程序,它在后台运行,只能通过cmd窗口访问,您可以在其中传递命令来控制该程序。我试图做的是从我的c#winform向cmd发送一个命令,然后由cmd执行该命令。我基本上是在为这个程序编写gui

干杯。

是的,它正在运行——你将无法向跑步应用程序发送命令,除非它设计为以某种方式接受命令。。它要么需要有一个开放的端口,要么需要某种方式向正在运行的应用程序“发送命令”


大多数“您无法修改”的应用程序只能在启动时使用特定参数进行调用,除非它们被设计为在运行时进行输入。

好吧,这有点复杂,但这可以通过使用Windows Api来完成。 这意味着,您需要通过P/Invoke导入一些本机库

首先,您需要获得控制台窗口的句柄。您可以通过()执行此操作


在发送一些按键的旁边有多个选项。我想最漂亮的方法是将()与and messages和key作为lParam参数一起使用。

到底“可以通过cmd窗口控制”是什么意思?如何具体控制?这是否可能在很大程度上取决于这些信息。我可以在cmd中发出特定于程序的命令。假设“帮助”将为我提供一个可以输入cmd窗口的所有命令的列表。“不是你的程序”当前正在运行吗?或者你是在试图引用它?请你的问题在问题本身中提供信息,以便可以看到,而不是将其隐藏在评论中。正如我之前所说的,这个问题的答案高度依赖于这些信息,因此要使其可用且易于查看。我可以手动将命令输入cmd,然后像正常情况下一样使用enter执行命令,难道没有办法模仿我将字符串倾入cmd窗口吗?你的意思是“发送击键”是的,那是一个不同的故事。当进程运行时,可以使用Process对象将命令注入标准输入流。