SetStdHandle 函数
设置用于指定的标准设备的句柄(标准输入、标准输出或标准错误)。
语法
BOOL WINAPI SetStdHandle(
_In_ DWORD nStdHandle,
_In_ HANDLE hHandle
);
参数
nStdHandle [in]
要为其设置句柄的标准设备。 此参数的取值可为下列值之一。
值 | 含义 |
---|---|
STD_INPUT_HANDLE ((DWORD)-10) |
标准输入设备。 最初,这是输入缓冲区 CONIN$ 的控制台。 |
STD_OUTPUT_HANDLE ((DWORD)-11) |
标准输出设备。 最初,这是活动控制台屏幕缓冲区 CONOUT$ 。 |
STD_ERROR_HANDLE ((DWORD)-12) |
标准错误设备。 最初,这是活动控制台屏幕缓冲区 CONOUT$ 。 |
注意
这些常量的值都是无符号数,但是在头文件中被定义为从有符号数的强制转换,并利用 C 编译器将它们滚动到刚好低于最大 32 位值。 在以不分析标头并重新定义常量的语言与这些句柄交互时,请注意此约束。 例如,((DWORD)-10)
实际上是无符号数 4294967286
。
hHandle [in]
标准设备的句柄。
返回值
如果该函数成功,则返回值为非零值。
如果函数失败,则返回值为零。 要获得更多的错误信息,请调用 GetLastError。
注解
进程的标准句柄可通过调用 SetStdHandle 来重定向,在这种情况下 GetStdHandle 将返回重定向的句柄。 如果已重定向标准句柄,则可在对 CreateFile 函数的调用中指定 CONIN$ 值,以获取控制台输入缓冲区的句柄。 同样,你也可指定 CONOUT$ 值来获取控制台的活动屏幕缓冲区的句柄。
示例
有关示例,请参阅使用重定向输入和输出创建子进程。
要求
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
头文件 | ProcessEnv.h (via Winbase.h, include Windows.h) |
库 | Kernel32.lib |
DLL | Kernel32.dll |