이는 Win32 API를 이용하는 것으로 예제는 Visual C++에 맞추어 있지만 이를 C++ Builder에도 쉽게 응용할 수 있다.
적용 절차는 Visual C++과 크게 다를게 없으며 메세지 핸들링하는 부분만 VCL에 맞게 해주면 된다.
// Header (.h)
ATOM GolbalKeyID;
void __fastcall OnHotKey(TWMHotKey &hotkey);
BEGIN_MESSAGE_MAP
VCL_MESSAGE_HANDLER(WM_HOTKEY, TWMHotKey, OnHotKey);
END_MESSAGE_MAP(TForm)
// Source (.cpp)
void __fastcall TForm1::FormCreate(TObject *Sender)
{
GolbalKeyID = GlobalAddAtom("MyKey");
RegisterHotKey(this->Handle, GolbalKeyID, MOD_WIN, 65 );
}
//------------------------------------------------------------------------
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
UnregisterHotKey(this->Handle, GolbalKeyID);
GlobalDeleteAtom(GolbalKeyID);
}
//------------------------------------------------------------------------
void __fastcall TForm1::OnHotKey(TWMHotKey& hotkey)
{
if (WindowState == wsMinimized)
Application->Restore();
ShowMessage("Global Hotkey pressed");
}
//------------------------------------------------------------------------
Original Post : http://neodreamer-dev.tistory.com/90
No comments :
Post a Comment