使用代码而不是手动执行后,如何在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在获取最新参数后运行。该链接包含描述打开文件后看到的图片的图片,我想提供激活菜单的参数。
答案 0 :(得分:0)
为了将您的参数作为命令行参数传递,目标应用程序需要显式支持它并解析其命令行-我猜不是那样。
如果幸运的话,应用程序正在使用标准输入来读取值-如果是这样,则您需要做的全部工作是在启动前设置P2.StartInfo.RedirectStandardInput = true
,然后使用P2.StandardInput.WriteLine
将值写入程序
如果您不走运,并且应用程序使用其他方式读取键盘输入,则需要使用以下方法将窗口置于前台:
[DllImport("user32.dll")]
static extern bool SetForegroundWindow(IntPtr hWnd);
在应用程序启动后向其传递P2.Handle
值,然后使用SendKeys.Send
或SendKeys.SendWait
向其发送击键。但是,我不建议在任何生产代码中使用它。