是否可以将命令发送到我的程序正在运行的控制台窗口?

Posted

技术标签:

【中文标题】是否可以将命令发送到我的程序正在运行的控制台窗口?【英文标题】:Is it possible to send command to console window in which my program is running? 【发布时间】:2012-05-21 14:13:10 【问题描述】:

我知道system() 函数,但它创建了它自己的环境,因此此处设置的每个变量都不会转发到主控制台。我想知道是否可以发送用户编写的命令或 *.bat 文件执行的命令?

我需要这个的原因是我在寻找一种方法来设置父 CMD 进程的 env 变量。是的,我知道系统不希望我这样做,但也许有一些解决方法......

想法是创建一个应用程序,将通过输入管道发送给它的任何内容设置为变量,如下所示:

echo Bob| setvar name

那么:

echo %name%

会产生Bob

整个想法是更容易地从任何程序输出设置变量(我知道如何使用for 命令),同时考虑到特殊批处理字符(如^!%)的特性,因为文件名中允许使用这些字符.它会使许多 cmd 脚本变得更简单。

【问题讨论】:

【参考方案1】:

您当然可以在与您的程序相同的控制台窗口中运行程序。这是CreateProcess 的默认行为。 MSDN 有更多关于what happens between related processes sharing a console 的详细信息。您可能希望等待子进程终止,然后再继续运行您自己的程序。

但是,这无助于您实现真正的目标。程序运行的窗口与其任何祖先进程的环境变量完全无关。您必须look elsewhere 才能解决您的实际问题。

【讨论】:

以上是关于是否可以将命令发送到我的程序正在运行的控制台窗口?的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法用Python发送命令到终端应用程序

执行显示控制台窗口的命令,并获取进程的句柄

是否可以在 Xcode5 上使用无线将开发中的应用程序发送到我的 iPhone?

是否有任何方法可以在将图像上传到我的 tkinter fyi 窗口之前为用户提供调整图像大小的选项

如何将事件发送到我的(子)UIView?

发现 Android 活动是不是正在运行