关闭/终止窗口在它未显示之前 (50分)

  • 主题发起人 主题发起人 Alphazw
  • 开始时间 开始时间
A

Alphazw

Unregistered / Unconfirmed
GUEST, unregistred user!
各位,请问谁知道如何在一个窗口还没有显示之前就把它给关闭了呢?就像“广告杀手”那样。
 
PostMessage(窗体句柄,wm_close,0,0);
 
procedure TForm1.FormCreate(Sender: TObject);
begin
PostMessage(Self.Handle,wm_close,0,0);
end;
 
我是想在其它程序的某个窗口还没有显示之前就把它关闭。而不是将自己的某个窗口在未显示之前关闭。
 
恐怕只有用hook了,拦截wm_show消息
 
请问如何拦截wm_show消息呢?
 
用setwindowhookex函数,SetWindowsHookEx
(WH_JOURNALRECORD,
(HOOKPROC)JournalLogProc,
HInstance,0),
然后自己再定义JournalLogProc函数HOOKPROC JournalLogProc(iCode:integer;
WPARAM,LPARAM:dword)
不过很可惜,虽然我们可以截获wm_showwindow消息,可是并不能提前知道要关闭终止窗口
的hwnd,除非你提前知道它的hwnd,否则我的意见也没什么用,不好意思^_^
 
用 WH_CBT 钩子
 
PostMessage(Self.Handle,wm_close,0,0);你也可以试看看阿

用Hook那还要写Dll,多麻烦,你先试试看用消息可不可以解决.
 
有例子吗,各位?
 
WH_CBT是管什么用的?
 
钩很多东西,其中有窗口的创建、显示……
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部