程序实现Shift+Ctrl+Alt+Del的热键事件,
现在有这问题 Shift+Ctrl+Alt+ DELETE 可以运行,但Shift+Ctrl+Alt+Del(小键盘)这热键就没反应,请高手帮我看看问题出在哪了?
以下是我的程序:
private
...
hotkeyid:integer;
//响应敏感键按键消息
procedure WMhotkeyhandle(var msg:Tmessage); message wm_hotkey;
...procedure TfmMain.FormCreate(Sender: TObject);
begin
hotkeyid:=GlobalAddAtom(pchar('UserDefineHotKey'))-$C000;
registerhotkey(handle,hotkeyid,MOD_SHIFT or MOD_CONTROL or MOD_ALT,$2E);
//敏感键为ctrl+Alt+Shift+Delete 用这种方式能够激活热键事件
//把上面的 $2E 改为$6E 就是ctrl+Alt+Shift+Del(小键盘) 但为什么没响应
//我试过 Shift+Del(小键盘) registerhotkey(handle,hotkeyid,MOD_SHIFT,$6E);这也没响应
//但MOD_SHIFT 换成其它两个就可以
//现在的问题是为什么 SHIFT + Del(小键盘) 这热键无法激活
end ;procedure TfmMain.WMhotkeyhandle(var msg:Tmessage);
begin
showmessage('敏感键为ctrl+Alt+Shift+') ;
end;procedure TfmMain.FormClose(Sender: TObject; var Action: TCloseAction);
begin
unregisterhotkey(handle,hotkeyid); //敏感键的释放
DeleteAtom(HotKeyID);
end;
现在有这问题 Shift+Ctrl+Alt+ DELETE 可以运行,但Shift+Ctrl+Alt+Del(小键盘)这热键就没反应,请高手帮我看看问题出在哪了?
以下是我的程序:
private
...
hotkeyid:integer;
//响应敏感键按键消息
procedure WMhotkeyhandle(var msg:Tmessage); message wm_hotkey;
...procedure TfmMain.FormCreate(Sender: TObject);
begin
hotkeyid:=GlobalAddAtom(pchar('UserDefineHotKey'))-$C000;
registerhotkey(handle,hotkeyid,MOD_SHIFT or MOD_CONTROL or MOD_ALT,$2E);
//敏感键为ctrl+Alt+Shift+Delete 用这种方式能够激活热键事件
//把上面的 $2E 改为$6E 就是ctrl+Alt+Shift+Del(小键盘) 但为什么没响应
//我试过 Shift+Del(小键盘) registerhotkey(handle,hotkeyid,MOD_SHIFT,$6E);这也没响应
//但MOD_SHIFT 换成其它两个就可以
//现在的问题是为什么 SHIFT + Del(小键盘) 这热键无法激活
end ;procedure TfmMain.WMhotkeyhandle(var msg:Tmessage);
begin
showmessage('敏感键为ctrl+Alt+Shift+') ;
end;procedure TfmMain.FormClose(Sender: TObject; var Action: TCloseAction);
begin
unregisterhotkey(handle,hotkeyid); //敏感键的释放
DeleteAtom(HotKeyID);
end;
小键盘灯灭了也不行。小键盘灯灭了 按小键盘上的 DEL 相当于按 DELETE
而我用是用以下语句注册的,注册的热键是 小键盘灯亮时按的DEL键。
registerhotkey(handle,hotkeyid,MOD_SHIFT or MOD_CONTROL or MOD_ALT,$6E);
用上面的语句注册热键的话,就都不起作用了,吗??
而我注册的热键是小键盘灯亮时的DEL键其虚拟键值为:$6E
这样的话,就都不起作用了 另外我说明一下,ctrl+Alt+Shift+Delete 这快捷键 我是用TAction 实现的,把这控件的shortCut 属性设为 ctrl+Alt+Shift+Del 但这种方式小键盘的DEL键不起作用,
我现在就用上面这种消息清册热键的主法来实现但,出现在上面这些问题,不能实现。 望大家多多帮忙啊!!!