2012-12-03 39 views

回答

5

您可以注册一个热键(使用RegisterHotKeyUnregisterHotKey函数),并使用WM_HOTKEY消息在按下键时截获。

试试这个样本

type 
    TForm3 = class(TForm) 
    procedure FormCreate(Sender: TObject); 
    procedure FormDestroy(Sender: TObject); 
    private 
    { Private declarations } 
    public 
    procedure WMHotKey(var Message: TMessage); message WM_HOTKEY; 
    end; 

var 
    Form3: TForm3; 

implementation 


{$R *.dfm} 


{ TForm3 } 

const 
    SaveScreeenHK=666; 

procedure TForm3.FormCreate(Sender: TObject); 
begin 
RegisterHotKey(Handle, SaveScreeenHK , MOD_CONTROL, VK_F10); 
end; 

procedure TForm3.FormDestroy(Sender: TObject); 
begin 
    UnregisterHotKey(Handle, SaveScreeenHK); 
end; 

procedure TForm3.WMHotKey(var Message: TMessage); 
begin 
//call your method here 
end; 
+0

感谢您的回复,现在就试试吧,让我们知道它是否有效。 –

+0

这似乎是工作谢谢。 –