Skróty klawiaturowe dla całego systemu

0

Siemka

Mam pytanko odnośnie skrótów klawiaturowych.
W FAQ jest jak zarejestrować skrót klawiaturowy dla całego systemu (http://4programmers.net/Delphi/FAQ/Jak_zarejestrować_skrót_klawiaturowy_dla_całego_systemu).

W taki jednak sposób to JA definiuje ten skrót, a chciałbym się dowiedzieć jak zrobić, żeby to UŻYTKOWNIK mógł sobie zdefiniować taki skrót (podczas działania programu) w taki sposób jak to jest w niektórych aplikacjach (np. za pomocą komponentu HotKey, gotowymi skrótami wybieranymi z ComboBox lub, też za pomocą ComboBox, ale z wpisanymi pojedyńczymi znakami, a obok CheckBoxy do zaznaczania klawisza Shift, Ctrl, Alt).

0

Jeżeli już o skrótach klawiaturowych mowa to jest taki pożyteczny skrót "F1". Gdybyś go użył zobaczyłbyś mniej więcej coś takiego:

BOOL RegisterHotKey(          HWND hWnd,
    int id,
    UINT fsModifiers,
    UINT vk
);

Z tego wynika, że "vk" (virtual key code) to zwykły integer... Wobec powyższego gdyby zmodyfikować kod z linka, który podałeś to mógłby on wyglądać tak:

  RegisterHotKey(Form1.Handle, $0001, MOD_CONTROL,  115);

i też reagowałby na Ctrl+F4. Wartość jaką mają poszczególne klawisze znajdziesz również w helpie, ew. google - szukaj "virtual key code" i wyskoczy Ci tabela. Wartości w tabeli zazwyczaj są podane w hexach dlatego trzeba zamienić na integer np. StrToInt('$73'). Resztę już chyba sobie sam wyśpiewasz?

1 użytkowników online, w tym zalogowanych: 0, gości: 1