2009-01-21 80 views
4

我記得幾年前使用一個程序,它允許我用自定義伽馬斜坡和其他調整來微調我的顯示器的設置。它有能力爲不同的用途創建不同的屏幕設置配置文件,並設置全局熱鍵快捷鍵來激活它們,而無需切換出您所在的程序。如何在Windows中掛鉤全局快捷鍵?

我的問題是,你如何設置鉤子那?當我只想在一個屏幕上訪問桌面並且我想繼續在另一個屏幕上工作時,我厭倦了WINDOWS-D最小化的一切。 (我有2臺顯示器是有原因的!)所以我認爲它應該不會很難破解一個小的Delphi應用程序,它可以最大限度地減少一臺顯示器上的所有內容。唯一的問題是把它掛到熱鍵上。有誰知道這是什麼API?

回答

16

http://www.swissdelphicenter.ch/torry/showcode.php?id=147

基本上有三個步驟:

註冊

// Register Hotkey Win + A 
id1 := GlobalAddAtom('Hotkey1'); 
RegisterHotKey(Handle, id1, MOD_WIN, VK_A); 

手柄

procedure WMHotKey(var Msg: TWMHotKey); message WM_HOTKEY; 

{ .... } 

// Trap Hotkey Messages 
procedure TForm1.WMHotKey(var Msg: TWMHotKey); 
begin 
    if Msg.HotKey = id1 then 
    ShowMessage('Win + A pressed !'); 

Unregister

UnRegisterHotKey(Handle, id1); 
GlobalDeleteAtom(id1);