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 [仅限桌面应用]
Header ProcessEnv.h (via Winbase.h, include Windows.h)
Kernel32.lib
DLL Kernel32.dll

另请参阅

控制台函数

控制台句柄

CreateFile

GetStdHandle