2

重定向控制台程序的标准输入/输出是一件小事,但如果程序使用高级控制台功能呢?就像输出彩色文本、移动光标和直接操作控制台缓冲区一样?是否也可以捕获并重定向到我自己的程序进行处理?

注意:我说的是我的应用程序(不一定是控制台应用程序)运行控制台应用程序并将其输入/输出重定向到自身的场景。

注 2:最后我会想要 C# 代码,但现在让我们坚持使用裸 Win32 API 和 C 或 C++。无论如何,我认为没有 PInvoke 是不可能的,所以让我们首先了解基本原理(如果可能的话)。

4

1 回答 1

3

与 Linux 不同,通过简单的重定向不会捕获所有颜色的 IO,因此捕获它的唯一方法是挂钩 WinAPI 调用(即您将需要拦截系统调用),这需要管理权限,脆弱且可疑。

于 2010-10-11T09:40:26.853 回答