【问题标题】:How to access a different console, such as writing to its input buffer如何访问不同的控制台,例如写入其输入缓冲区
【发布时间】:2020-02-16 22:21:27
【问题描述】:

我想为连接到不同控制台的应用程序提供输入。比如下图中,如何从右侧的控制台写入左侧控制台的输入?

【问题讨论】:

  • 有很多方法可以做到这一点。当你有你想要工作的代码时,把它发布在 SO 上。请参阅stackoverflow.com/help 在 SO 上发布的指南
  • 这不能用 CMD shell 命令实现。您必须使用 C、Python 等编写一个小程序——只要该语言或可用库允许访问 Windows API。一种方法是调用AttachConsole(targetPid)GetStdHandle(STD_INPUT_HANDLE)。然后通过WriteConsoleInputW将按键事件写入输入句柄。
  • 您在此问题前七 (7) 小时提出了同样的问题。对吗?
  • 如果实用程序本身是一个控制台应用程序,您必须首先创建一个永远等待的子进程。这是为了保持对当前控制台的引用,以便重新附加到它。这可以是实用程序的一个实例,它带有一个使其等待的私有命令行选项。然后要访问另一个控制台,首先通过FreeConsole() 分离。最后,通过FreeConsole()AttachConsole(child_pid)重新连接到原来的控制台。

标签: windows command-line command-prompt windows-console


【解决方案1】:

听起来您想要 IPC(进程间通信)并且有很多方法可以做到这一点。您可以查看MSDN,了解有关您的选项的更详细说明。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-14
    • 1970-01-01
    • 2015-10-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-26
    • 1970-01-01
    相关资源
    最近更新 更多