舞
舞雪
Unregistered / Unconfirmed
GUEST, unregistred user!
我用的是delphi5,win98se.我想把系统的alt+f4屏蔽掉。也就是,只要我的程序在运行,用
户按下alt+f4之后,并不能关闭我的程序,当然也不能关闭其它的任何窗口。一直到我的程
序退出alt+f4才可以生效。可我向系统注册alt+f4键时,RegisterHotKey函数返回值为true,
但是按下alt+f4后,我的程序还是关闭了(更不用说关其它的程序了) []
程序是这样的,假设我要求当按alt+f4的时候出现一个消息对话框。
; private
; HotKeyId: Integer;
; procedure HotKeyDown(var Msg: Tmessage); message WM_HOTKEY;
...
procedure TForm1.HotKeyDown(var Msg: Tmessage);
begin
; if (Msg.LparamLo = Mod_Alt) And (Msg.LParamHi = VK_F4) then
; begin
; ; showmessage('OK');
; end;
end; ;
procedure TForm1.FormCreate(Sender: TObject);
begin
; HotKeyId := GlobalAddAtom('HotKey') - $C000;
; if RegisterHotKey(Handle, hotkeyid, Mod_Alt, VK_F4) then
; ; showmessage('reg suc'); ;
end;
运行时一开始会出现一个 'reg suc' 的消息框,但按下alt+f4的时候就不会出现
'ok'的消息框了!为什么会这样???????[?]
户按下alt+f4之后,并不能关闭我的程序,当然也不能关闭其它的任何窗口。一直到我的程
序退出alt+f4才可以生效。可我向系统注册alt+f4键时,RegisterHotKey函数返回值为true,
但是按下alt+f4后,我的程序还是关闭了(更不用说关其它的程序了) []
程序是这样的,假设我要求当按alt+f4的时候出现一个消息对话框。
; private
; HotKeyId: Integer;
; procedure HotKeyDown(var Msg: Tmessage); message WM_HOTKEY;
...
procedure TForm1.HotKeyDown(var Msg: Tmessage);
begin
; if (Msg.LparamLo = Mod_Alt) And (Msg.LParamHi = VK_F4) then
; begin
; ; showmessage('OK');
; end;
end; ;
procedure TForm1.FormCreate(Sender: TObject);
begin
; HotKeyId := GlobalAddAtom('HotKey') - $C000;
; if RegisterHotKey(Handle, hotkeyid, Mod_Alt, VK_F4) then
; ; showmessage('reg suc'); ;
end;
运行时一开始会出现一个 'reg suc' 的消息框,但按下alt+f4的时候就不会出现
'ok'的消息框了!为什么会这样???????[?]