我在试图建立一个C#形式的应用程序,这将允许我使用所有我以前的C++程序从一个中央节目。

我能够打开与前男友 Process.Start(), 然而它没有编码正确。

例编码:

Process.Start("C:\\\Documents and Settings\\\dan\\\Desktop\\\test.exe");

这将带来控制台和法喜欢它的运行,但它并不像的时候我通常会编制的C++编辑器。是有一个 startinfo 变,我需要设置来表示,这是一个C++程序或东西沿着这条线?

此外,是否有任何方法来执行一个程序使用C++ process.start 这将允许我通过它的变数通过的命令行通过 argcargv?

感谢

有帮助吗?

解决方案

当您使用 Process.Start 的方式与使用 Process.Start 的方式相比时,只有几个区别。当你直接执行程序时。两者都可以通过使用来解决 进程启动信息.

  1. 工作目录 不会一样。将其设置为包含可执行文件的路径以获得相同的行为。
  2. 使用Shell执行 设置为 true,因此使用 windows shell 来执行该进程。

至于添加命令行参数:你可以通过以下方式做到这一点 ProcessStartInfo.Arguments. 。然而,由于它是一个 C++ 应用程序,因此不需要它。

其他提示

到目前为止,只有足够的信息来回答你的最后一个问题。是的,你可以包括命令行参数这里所示。看标题为 “===程序运行EXE(C#)===”

要添加命令行参数:

Process process = new Process();
process.StartInfo.FileName = "C:\\Documents and Settings\\dan\\Desktop\\test.exe";
process.StartInfo.Arguments = ""; // Put your arguments here
process.Start();

之后,该方案已经汇编成一个可执行软件,这一问题并不应该用什么语言,它是书面的。

至于程序的争论,你需要看看ProcessStartInfo类和复盖的进程。开始()使用: 过程。开始(ProcessStartInfo)

我面临在python类似的问题,你期待详细输出?

在我的情况下,输出缓冲器满了,并因此执行停滞不前。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top