Hook Hotkey 系統熱鍵

UnitFormMain.h

private:
    ATOM HotKeyStart, HotKeyEnd;
    void __fastcall WndProc(Messages::TMessage &Message);

UnitFormMain.cpp

void __fastcall TFormMain::FormCreate(TObject *Sender)
{
    HotKeyStart = GlobalAddAtom("HotKeyStart");
    HotKeyEnd = GlobalAddAtom("HotKeyEnd");
    // Register HotKey
    RegisterHotKey(Handle, HotKeyStart, MOD_CONTROL, VK_F2);
    RegisterHotKey(Handle, HotKeyEnd,   MOD_CONTROL, VK_F3);
}                                                                            
//---------------------------------------------------------------------------
void __fastcall TFormMain::WndProc(Messages::TMessage &Message)
{
    if (Message.Msg == WM_HOTKEY)
    {
        // LParamHi: VirtualKey
        // LParamLo: key-modifier
        if (Message.LParamHi == VK_F2)
            Start(); // 熱鍵 Start 處理
        else
        if (Message.LParamHi == VK_F3)
            End(); // 熱鍵 End 處理
    }
    TForm::WndProc(Message);
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::FormDestroy(TObject *Sender)
{
    // Unregister HotKey
    if(HotKeyStart) UnregisterHotKey(Handle, HotKeyStart); GlobalDeleteAtom(HotKeyStart);
    if(HotKeyEnd) UnregisterHotKey(Handle, HotKeyEnd); GlobalDeleteAtom(HotKeyEnd);
}

Reference:
Google Search
如何在CB中定義系統熱鍵 C++ Builder / Windows SDK/API – CSDN社區 community.csdn.net

本篇發表於 BCB 並標籤為 , , 。將永久鏈結加入書籤。

發表留言