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 |
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈