保持程序在cmd中

保持程序在cmd中

我有一个小程序,设计为 Win32 GUI。默认情况下,它不会打开 cmd,但是它会将一些重要数据打印到 stdout。我想要获取这些数据,所以我尝试直接从 cmd 执行它。

当我从 cmd 运行该程序时,它会立即释放控制台,我可以再次输入一些内容。尽管我尝试这样做Program.exe | cat(我安装了 cygwin),但它运行得很好。

现在,唯一的问题是,程序无法更改光标位置、文本颜色等。我知道它们是这样改变的:

SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), fg + bg * 16);

有什么方法可以将命令行与此程序一起使用吗?正如我所说,管道输出不会让我满意,除非它允许修改。我不知道侧面程序、启动器,甚至 asm 补丁也很好。

提前致谢。

答案1

pause在脚本中使用该命令。

Program.exe
pause

或者尝试cmd使用以下/k参数运行:

cmd.exe /K

答案2

一旦想要将输出抓取到静态(文本)文件,就无法在该文件中“移动光标”,但您会看到 esc 序列或只是二进制数据。

正如猜测:尝试Program.exe > c:\mytest.txt

相关内容