Witam,
tworzę program, który wymaga obsługi globalnych skrótów klawiaturowych.
Na 4programmers.net znalazłem taki oto kod:
{w OnLoad}
{ Ta funkcja rejestruje skrót: Ctrl + F4 dla naszej aplikacji }
RegisterHotKey(Form1.Handle, $0001, MOD_CONTROL, VK_F4);
{Teraz w procedurze "OnClose" musisz wpisać:}
{ zwolnienie skrotu w systemi }
UnregisterHotKey(Form1.Handle, $0001);
No i w końcu deklaracja samej obsługi skrótu. W sekcji "private" dopisz taką linie:
procedure wm_HOTKEY(var Msg:TMessage);message WM_HOTKEY;
{Jest to komunikat "przechwytujący" skróty klawiaturowe. Najedź na niego kursorem myszy i wciśnij: Ctrl + Shift + C. Wpisz taką deklarację procedury:}
if Msg.WParam = $0001 then
{ reakcja na skrót klawiszowy }
Application.Restore; // przywrócenie aplikacji
kłopot tylko w tym, że to Delphi, a ja robię w C++ początek udało mi się skonwertować
void __fastcall TfEkranik::FormCreate(TObject *Sender)
{
RegisterHotKey(fEkranik->Handle, 0001, MOD_CONTROL&&MOD_SHIFT, VK_F4);
}
//---------------------------------------------------------------------------
void __fastcall TfEkranik::FormClose(TObject *Sender, TCloseAction &Action)
{
UnregisterHotKey(fEkranik->Handle, 0001);
}
//---------------------------------------------------------------------------
Gorzej z końcówką…
Ma ktoś jakiś pomysł?