registerPointerInputTarget 函数 (winuser.h)

允许调用方注册目标窗口,指定类型的所有指针输入都重定向到该窗口。

语法

BOOL RegisterPointerInputTarget(
  [in] HWND               hwnd,
  [in] POINTER_INPUT_TYPE pointerType
);

参数

[in] hwnd

要注册为全局重定向目标的窗口。

重定向可能导致前台窗口失去激活 (焦点) 。 若要避免此问题,请确保窗口是仅消息窗口或设置了 WS_EX_NOACTIVATE 样式。

[in] pointerType

要重定向到指定窗口的指针输入的类型。 这是 POINTER_INPUT_TYPE 枚举中任何有效且受支持的值。 请注意,泛 型PT_POINTER 类型和 PT_MOUSE 类型在此参数中无效。

返回值

如果函数成功,则返回值为非零。

如果函数失败,则返回值为零。 要获得更多的错误信息,请调用 GetLastError。

注解

具有 UI 访问权限的应用程序可以使用此函数注册自己的窗口,以接收指定指针输入类型的所有输入。 在任何给定时间,每个桌面都只允许每个指针输入类型有一个这样的全局重定向目标窗口。 成功注册的第一个窗口一直有效,直到该窗口取消注册或销毁,此时该角色可供下一个限定的调用方使用。

注册生效时,指定指针类型的所有输入(无论是来自输入设备还是由应用程序注入)都会重定向到已注册的窗口。 但是,当拥有已注册窗口的进程注入指定指针类型的输入时,不会重定向此类注入,而是会正常处理。

希望将同一窗口注册为多个指针输入类型的全局重定向目标的应用程序必须多次调用 RegisterPointerInputTarget 函数(针对每个感兴趣的指针输入类型调用一次)。

如果调用线程不具有 UI 访问特权,此函数将失败,最后一个错误设置为 ERROR_ACCESS_DENIED

如果指定的指针输入类型无效,此函数将失败,最后一个错误设置为 ERROR_INVALID_PARAMETER

如果调用线程不拥有指定的窗口,此函数将失败,最后一个错误设置为 ERROR_ACCESS_DENIED

如果指定窗口的桌面已具有指定指针输入类型的已注册全局重定向目标,则此函数将失败,最后一个错误设置为 ERROR_ACCESS_DENIED

要求

要求
最低受支持的客户端 Windows 8 [仅限桌面应用]
最低受支持的服务器 Windows Server 2012 [仅限桌面应用]
目标平台 Windows
标头 winuser.h (包括 Windows.h)
Library User32.lib
DLL User32.dll