我有一个小程序,设计为 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