关于WH_CBT钩子中HCBT_DESTROYWND的问题
钩子类型采用的是WH_CBT
当nCode等于HCBT_DESTROYWND时,
if sTitle='SMYNES v1.20' then//这是一个FC模拟器程序
begin
ShowMessage('你关不了我的');
Result:=1;
end;
是否能够阻止程序关闭,我这里测式出来的是有些能而有些不能(关闭记事本时却能够正常阻止,但关闭EXE程序窗口的时候会出错,出错的顺序为 窗口消失------>ShowMessage('你关不了我的')触发--------->系统报错。)。
难道说程序在关闭的时候,向系统发送的不仅仅是销毁窗口,还有其它的消息?
还有一个问题,请大家观察WH_CBT
WH_CBT Hook
在以下事件之前,系统都会调用WH_CBT Hook子过程,这些事件包括:
1. 激活,建立,销毁,最小化,最大化,移动,改变尺寸等窗口事件;
2. 完成系统指令;
3. 来自系统消息队列中的移动鼠标,键盘事件;
4. 设置输入焦点事件;
5. 同步系统消息队列事件。
再看看我写的出错顺序,为什么会在窗口消失之后再触发ShowMessage,而不是之前?