registerShellHookWindow 函数

[此函数不适用于常规用途。 它可以在后续版本的 Windows 中更改或不可用。

注册指定的 Shell 窗口,以接收对 Shell 应用程序有用的事件或通知的某些消息。

收到的事件消息只是那些发送到与指定窗口桌面关联的 Shell 窗口的事件消息。 许多消息与调用 SetWindowsHookEx 函数后可以接收的消息相同,并为挂钩类型指定 WH_SHELL 。 RegisterShellHookWindow 的区别在于,消息是通过指定窗口的 WindowProc 接收的,而不是通过回叫过程接收的。

语法

C++复制

BOOL RegisterShellHookWindow(
  [in] HWND hwnd
);

参数

[in] hwnd

类型:HWND

用于注册 Shell 挂钩消息的窗口句柄。

返回值

类型: BOOL

如果函数成功,则为 TRUE;否则为 FALSE

注解

与普通窗口消息一样,窗口过程的第二个参数将消息标识为 WM_SHELLHOOKMESSAGE。 但是,对于这些 Shell 挂钩消息,消息值不是预定义的常量,如其他消息 ID,如 WM_COMMAND。 必须使用对 RegisterWindowMessage 的调用动态获取该值,如下所示:

RegisterWindowMessage(TEXT("SHELLHOOK"));

这排除使用传统 switch 语句处理这些消息,该语句需要编译时已知的 ID 值。 对于处理 Shell 挂钩消息,通常的做法是在 switch 语句的默认部分中编写 If 语句,如果消息 ID 的值与 RegisterWindowMessage 调用中获取的值相同,则处理该消息。

下表描述了传递给 Shell 挂钩消息的窗口过程的 wParam 和 lParam 参数值。

wParamlParam
HSHELL_GETMINRECT指向 SHELLHOOKINFO 结构的指针。
HSHELL_WINDOWACTIVATED激活窗口的句柄。
HSHELL_RUDEAPPACTIVATED激活窗口的句柄。
HSHELL_WINDOWREPLACING替换顶级窗口的窗口的句柄。
HSHELL_WINDOWREPLACED要替换的窗口的句柄。
HSHELL_WINDOWCREATED正在创建的窗口的句柄。
HSHELL_WINDOWDESTROYED正在销毁的顶级窗口的句柄。
HSHELL_ACTIVATESHELLWINDOW未使用。
HSHELL_TASKMAN可以忽略。
HSHELL_REDRAW需要重绘的窗口的句柄。
HSHELL_FLASH需要闪烁的窗口的句柄。
HSHELL_ENDTASK应强制退出的窗口的句柄。
HSHELL_APPCOMMAND应用程序或其他挂钩未处理的 APPCOMMAND。 请参阅 WM_APPCOMMAND 并使用 GET_APPCOMMAND_LPARAM 宏检索此参数。
HSHELL_MONITORCHANGED移动到其他监视器的窗口的句柄。

 

在具有 Service Pack 1 (SP1) 和 Windows Server 2003 的 Windows XP 之前,SDK 标头和库中不包含此函数。 如果没有此函数的头文件和导入库,则可以使用 LoadLibrary 和 GetProcAddress 调用该函数。

要求

最低受支持的客户端Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器Windows 2000 Server [仅限桌面应用]
目标平台Windows
标头winuser.h (包括 Windows.h)
LibraryUser32.lib
DLLUser32.dll

请参阅

概念性

DeregisterShellHookWindow

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

衢州大白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值