运行EXE文件C#后如何插入参数

时间:2019-05-19 13:19:26

标签: c# 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.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在获取最新参数后运行。该链接包含描述打开文件后看到的图片的图片,我想提供激活菜单的参数。

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:0)

为了将您的参数作为命令行参数传递,目标应用程序需要显式支持它并解析其命令行-我猜不是那样。

如果幸运的话,应用程序正在使用标准输入来读取值-如果是这样,则您需要做的全部工作是在启动前设置P2.StartInfo.RedirectStandardInput = true,然后使用P2.StandardInput.WriteLine将值写入程序

如果您不走运,并且应用程序使用其他方式读取键盘输入,则需要使用以下方法将窗口置于前台:

[DllImport("user32.dll")]
static extern bool SetForegroundWindow(IntPtr hWnd);

在应用程序启动后向其传递P2.Handle值,然后使用SendKeys.SendSendKeys.SendWait向其发送击键。但是,我不建议在任何生产代码中使用它。