保存并使用应用程序控制台输出的句柄

保存并使用应用程序控制台输出的句柄

我有一个服务器(Bukkit 服务器,用 Java 编写),我在远程 Windows XP 机器上运行它。
我将使用它来启动服务器:

start start_bukkit.bat

这将使用关注服务器的批处理文件创建新的命令行实例。但是,我不想在命令行中看到服务器输出,我需要能够恢复当我再次连接远程命令行管理器时,可以访问实时输出流(以及访问输入,以便我可以运行命令)。
我该怎么做?是否有一些命令可以获取应用程序的 STD 句柄,或者类似的东西?

答案1

据我了解,你正在使用Telnet连接方式管理控制台

这有点类似于psexec \\REMOTE_PC cmd.exe。“Telnet 连接模式”只​​是将文本输入传输到远程计算机的命令提示符并传回其响应。

“Telnet 连接模式”会cmd.exe在远程创建一个(不可见的)。首先,无法重新连接到同一个cmd.exe。退出后,cmd.exe将关闭。

第二,它cmd.exe运行在与桌面用户不同的级别。所有程序都是从它启动的运行在那个级别。那些程序不要互动使用桌面,您将无法在“完全控制”(即桌面模式)中看到它们。(尝试启动notepad.exe,它会停留在进程中但不可见)重新连接到现有cmd.exe或程序(您启动时使用的程序start是不可能的。)

也许有可能使用重定向进行输出和输入。这取决于程序是否可行。例如,如果您可以将其更改为输入从一个文件取出,输出转到另一个文件,则可以通过读取和写入这些文件来控制它。

但现在,如果您想查看(并与之交互)“Bukkit 服务器”,则需要使用 Radmin 的“完全控制”来启动它(以查看远程计算机的完整桌面)。重新连接到桌面后,您的服务器仍会可见地运行。

相关内容