C# 如何在运行EXE文件C后插入参数
在使用代码而不是手动执行EXE文件后,如何将参数插入EXE文件 我尝试在Process.StartInfo.arguments的参数中插入,但没有成功。 试图在网站中查找,但没有找到有用的内容C# 如何在运行EXE文件C后插入参数,c#,exe,C#,Exe,在使用代码而不是手动执行EXE文件后,如何将参数插入EXE文件 我尝试在Process.StartInfo.arguments的参数中插入,但没有成功。 试图在网站中查找,但没有找到有用的内容 [P1.StartInfo.WorkingDirectory = @"D:\try"; P1.StartInfo.FileName = "CMD.exe"; P1.StartInfo.Arguments = "/k cmbs_tcx.exe -han";
[P1.StartInfo.WorkingDirectory = @"D:\try";
P1.StartInfo.FileName = "CMD.exe";
P1.StartInfo.Arguments = "/k cmbs_tcx.exe -han";
P1.StartInfo.UseShellExecute = true;
P1.StartInfo.CreateNoWindow = true;
P2.StartInfo.WorkingDirectory = P1.StartInfo.WorkingDirectory;
P2.StartInfo.FileName = P1.StartInfo.FileName;
P2.StartInfo.Arguments = "/k han_client.exe 127.0.0.1 & 1 6 0 2 1 3 0 0 0 1 1 32534 1 4 0 2 0 2";
P2.StartInfo.UseShellExecute = true;
P2.StartInfo.CreateNoWindow = true;
P1.Start();
P2.Start();][1]
我期待看到EXE在获得最新参数后运行。该链接包含一些图片,这些图片描述了打开文件后看到的内容,我想给出激活菜单的参数
为了将参数作为命令行参数传递,目标应用程序需要显式支持该参数并解析其命令行-我猜情况并非如此 如果幸运的话,应用程序正在使用标准输入读取值-如果是这样,您只需在启动前设置P2.StartInfo.RedirectStandardInput=true,然后使用P2.StandardInput.WriteLine将值写入程序 如果您运气不好,且应用程序使用其他方式读取键盘输入,则需要使用以下方式将窗口置于前台:
[DllImport("user32.dll")]
static extern bool SetForegroundWindow(IntPtr hWnd);
在应用程序启动后向其传递P2.Handle值,然后使用SendKeys.Send或SendKeys.SendWait向其发送击键。但是,我不建议在任何类型的生产代码中使用它。通过google drive共享图像不是一种可接受的共享图像的方式。请编辑以使用标准方法。P1是什么数据类型?如果你想看到exe,也许你应该设置CreateNoWindow=false。为什么要通过cmd运行这些可执行文件?如果它们是控制台应用程序,则可以直接运行它们。通常效果更好。请使用ProcessStartInfo.RedirectStandardInput。感谢所有帮助!这一行P2.StandardInput.WriteLine-它的工作非常出色!