程序实现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;

解决方案 »

  1.   

    注册时候用VK_SUBTRACT看看可以不?registerhotkey(handle,hotkeyid2,0,VK_SUBTRACT);
      

  2.   

    把小键盘灯灭掉,小键盘Del键就可以用了:)
      

  3.   

    把小键盘灯灭掉,小键盘Del键就可以用了:)--------------------------------------------up
      

  4.   


      
      小键盘灯灭了也不行。小键盘灯灭了 按小键盘上的 DEL 相当于按 DELETE 
       而我用是用以下语句注册的,注册的热键是 小键盘灯亮时按的DEL键。
      registerhotkey(handle,hotkeyid,MOD_SHIFT or MOD_CONTROL or MOD_ALT,$6E); 
      用上面的语句注册热键的话,就都不起作用了,吗??
        
       
      

  5.   

    小键盘灯灭时,DEL键和DELETE键 的虚拟键都相同 都是:$2E,
         而我注册的热键是小键盘灯亮时的DEL键其虚拟键值为:$6E 
         这样的话,就都不起作用了   另外我说明一下,ctrl+Alt+Shift+Delete  这快捷键 我是用TAction 实现的,把这控件的shortCut 属性设为 ctrl+Alt+Shift+Del  但这种方式小键盘的DEL键不起作用,
      我现在就用上面这种消息清册热键的主法来实现但,出现在上面这些问题,不能实现。  望大家多多帮忙啊!!!