请问如何能知道键盘按了ctrl+alt+a按键啊,有例子吗?有keybd_event、mouse_event这方面的参数说明吗??

解决方案 »

  1.   

    procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
      if (ssAlt in Shift) and (ssCtrl in Shift) and (Key = Ord('A')) then
        ShowMessage('OK');
    end;
      

  2.   

    procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
      if (ssAlt in Shift) and (ssCtrl in Shift) and (Key = Ord('A')) then
        ShowMessage('OK');
    end;
      

  3.   

    procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
      if (ssAlt in Shift) and (ssCtrl in Shift) and (Key = Ord('A')) then
        ShowMessage('OK');
    end;
    晚了
      

  4.   

    procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
      if (ssAlt in Shift) and (ssCtrl in Shift) and (Key = Ord('A')) then
        ShowMessage('OK');
    end;
      

  5.   

    是在屏幕上按ctrl+alt+a,不是指在窗口的edit上按,如何解决啊
      

  6.   

    procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
        if (ssAlt in Shift) and (ssCtrl in Shift) and (Key = 65) then
        ShowMessage('OK');
    end;
      

  7.   

    你是不是想实现像QQ截图一样的功能。可以注册系统热键,如下面的代码可以检测CTRL+ALT+B  FA:integer;
      procedure wmhotkeyhandle(var msg: tmessage); message wm_hotkey;procedure TForm1.Button1Click(Sender: TObject);
    begin
     FA := GlobalAddAtom(pchar('a')) - $C000;
     registerhotkey(handle, FA, mod_Alt or mod_control, 66);
    end;procedure TForm1.wmhotkeyhandle(var msg: tmessage);
    begin
     if (msg.LParamHi = 66) and (msg.LParamLo = mod_alt or  mod_control) then
      begin
        showmessage('你按下的是CTRL+ALT+B');
     end;
    end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
      unregisterhotkey(handle, FA);
      DeleteAtom(FA);
    end;
      

  8.   

    使用注册热键是个好方法,如果用hook如何解决??
      

  9.   

    ......
    private
      atom: word;//系统原子
      procedure WMHOTKEY(var msg: TWMHOTKEY); message WM_HOTKEY;
    end;procedure TForm1.FormCreate(Sender: TObject);
    begin
      atom:=GlobalAddAtom('MINIZHUXIANCHUN');
      RegisterHotKey(Self.Handle,atom,MOD_ALT+MOD_SHIFT,VkKeyScan('a'));
    end;procedure TForm1.FormDestroy(Sender: TObject);
    begin
     UnRegisterHotKey(Self.Handle,atom);
     DeleteAtom(atom);
    end;procedure TMainForm.WMHOTKEY(var msg: TWMHOTKEY);
    begin
      这里写你想要响应组合键处理的代码.
    end;