在该窗口的keydown,keypress事件中设定组合键!
然后将窗口的Prew(记不清了)属性改为真即可!

解决方案 »

  1.   

    如果是在窗口以外需要热键,就比较麻烦!
    看看API函数把!
      

  2.   

    ---- 因为Windows系统只是把一个WM_HotKey的消息发送给应用程序,要完成具体的事情需要一个消息处理程序,也就是上面Private段里的procedure WMhotkeyhandle(var msg:Tmessage); message wm_hotkey; 过程, 它的代码如下(这里只是简单地把窗口最前面显示)   procedure TForm1.Wmhotkeyhandle
    (var msg:Tmessage);
         begin
           if (msg.LParamHi=$41) and 
    (msg.lparamLo=MOD_CONTROL or mod_Alt,$41) then 
           begin
             msg.Result:=1; //该消息已经处理
             form1.Show;
              //把窗口显示
           end;
         end;
     三、敏感键的释放 ---- 在应用程序退出来之前应当把你所设置的敏感键释放掉,以释放其所占有的系统资源,这里需要调用两个Windows API函数UNREGISTERHOTKEY,它的调用格式如下:    BOOL UNREGISTERHOTKEY(
          HWND HWND, //与敏感键关联的窗口句柄
          INT ID  //敏感键的标示符
        );
      也就是说只要在FormClose事件中加入如下代码
       …
       unregisterhotkey(handle,hotkeyid);
       DeleteAtom(HotKeyID);
      

  3.   

    BCB_FANS(四大名捕之追杀令)  
    说得对
      

  4.   

    RegisterHotKey,定义系统热键
    就可以系统wm_hotkey捕获了
      

  5.   

    1、定义捕获Windows消息WM_HOTKEY的钩子函数,即:procedure WMHotKey(var Msg : TWMHotKey); message WM_HOTKEY;   2、向Windows加入一个全局原子 Myhotkey: GlobalAddAtom(’MyHotkey’), 并保留其句柄。   3、向Windows登记热键:调用API函数RegisterHotKey实现。   三、源程序: unit Unit1; 
    interface 
    uses 
    Windows, Messages, Forms, Dialogs, Classes, Controls, StdCtrls; 
    type 
    TForm1 = class(TForm) 
    Button1: TButton; 
    Button2: TButton; 
    procedure FormCreate(Sender: TObject); 
    procedure Button1Click(Sender: TObject); 
    procedure Button2Click(Sender: TObject); 
    procedure FormClose(Sender: TObject; var Action: TCloseAction); 
    private 
    {热键标识ID} 
    id: Integer; 
    procedure WMHotKey(var Msg : TWMHotKey); message WM_HOTKEY; 
    { Privat-Declarations} 
    public 
    { Public-Declarations} 
    end; 
    var 
    Form1 : TForm1; 
    implementation 
    const RSP_SIMPLE_SERVICE=1; 
    function RegisterServiceProcess (dwProcessID, dwType: DWord) : DWord; stdcall; external ’KERNEL32.DLL’; 
    {$R *.DFM} {捕获热键消息} 
    procedure TForm1.WMHotKey (var Msg : TWMHotKey); 
    begin 
    if msg.HotKey = id then 
    ShowMessage(’Ctrl+Alt+R键被按下,再这里可以form1.show显示主窗体’); 
    form1.Visible :=true; 
    end; procedure TForm1.FormCreate(Sender: TObject); 
    Const 
    {ALT、CTRL和R键的虚拟键值} 
    MOD_ALT = 1; 
    MOD_CONTROL = 2; 
    VK_R = 82; 
    begin 
    {首先判断程序是否已经运行} 
    if GlobalFindAtom(’MyHotkey’) = 0 then 
    begin 
    {注册全局热键Ctrl + Alt + R} 
    id:=GlobalAddAtom(’MyHotkey’); 
    RegisterHotKey(handle,id,MOD_CONTROL+MOD_Alt,VK_R); 
    end 
    else 
    halt; 
    end; procedure TForm1.Button2Click(Sender: TObject); 
    begin 
    close; 
    end; 
    {退出时释放全局热键} 
    procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); 
    begin 
    UnRegisterHotKey(handle,id); 
    GlobalDeleteAtom(id); 
    end; 
    end.