我有一个全局WH_CBT
32位钩子,用于确定何时使用HCBT_ACTIVATE
激活窗口。
如何确定何时要停用该窗口?
有CBTACTIVATESTRUCT
,其中有hWndActive
,但有时是0x0
,当切换到64位窗口时,它将无法工作。
没有HCBT_DEACTIVATE
。
答案 0 :(得分:4)
如@Remy Lebeau所述,您可以使用class State
def self.xyz
ap 'inside'
end
self.singleton_class.send(:alias_method, :abc, :xyz)
end
消息。激活或禁用窗口时均发送此消息。
设置一个>> State.xyz
>> State.abc
钩子以捕获已停用的消息,它将在系统将它们发送到目标窗口过程之前获取这些消息。
有关更多详细信息:
将DLL中的函数用于非本地挂钩:
WM_ACTIVATE
这是DLL的代码:
WH_CALLWNDPROC