如何让 Windows 窗体将命令传递到控制台/命令行?

Posted

技术标签:

【中文标题】如何让 Windows 窗体将命令传递到控制台/命令行?【英文标题】:How can I make a Windows Form pass a command to the console/command line? 【发布时间】:2013-12-05 08:03:23 【问题描述】:

我创建了一个新的 Windows 窗体应用程序

看起来像图片(简化)

...

我还有一个命令行程序(python)

在路径中保存为“myApp”

要运行它,只需要在命令行输入“myApp”(并传递选项)

...

这很好,但我也希望有人不熟悉/不熟悉命令行

能够使用该程序。于是有了表格。

...

所以问题是,我该如何设置它,以便在单击按钮时,

表单相当于直接输入命令行??

...

我认为这是可能的,因为如果我启动一个新的控制台应用程序和代码

system("myApp");

正是这样做的

...

但是,当我在 Windows 窗体中使用“系统”代码时,我得到了一个

'system': identifier not found

错误

【问题讨论】:

【参考方案1】:

您可以使用System.Diagnostics.Process.Start 方法运行任何Windows cmd 命令,例如从命令行启动它。

示例代码:

System.Diagnostics.Process.Start("py script.py");

MSDN Official Documentation

【讨论】:

哇,非常感谢您的快速回复!当我使用它时,我得到一个 error C2882: 'System' : illegal use of namespace identifier in expression 可能是因为我使用的是 .h 文件而不是 .vb?? 您的代码中是否已经有一个名为System 的命名空间?编译错误 C2882 显示 msdn.microsoft.com/en-us/library/vstudio/96c84dtx.aspx 我明白了,我明白了,谢谢!稍后会回帖阅读所提供的链接【参考方案2】:

您应该使用具有适当设置的ProcessStartInfoProcess 类。 ProcessStartInfo有详细示例

【讨论】:

【参考方案3】:

如果是这种情况,我认为我们将不得不以艰难的方式去做。您可以在 Visual Studio 中编译一个单独的 dll 来完全按照您的控制台应用程序所做的事情,比如 系统(“文件名”)

然后将其设置为在运行时与您的表单应用程序动态链接,希望您能做对。

【讨论】:

你不觉得,这个想法有点过于复杂了吗? 这当然可能不是最简单的。但它是肯定的。

以上是关于如何让 Windows 窗体将命令传递到控制台/命令行?的主要内容,如果未能解决你的问题,请参考以下文章

将多个参数传递给从 Windows 窗体运行的控制台应用程序

将异步数据从网页传递到我的窗体 C# .NET 应用程序

C#如何让窗体中间一部分让鼠标透过

pywin32 怎么获取 windows 的窗体内文本框的内容

winform程序如何实现任务栏通知窗口

VC++Windows窗体应用程序 窗体间如何传递变量