Kombinácia klávesových skratiek rubrika: Programování: C/C++

8 xxar3s
položil/-a 5.8. 22:14

Robím na jednej (Win10 64bit) appke ktorá beží stále na pozadí, keď stlačím kombináciu kláves, tak niečo vykoná, keď satlačím inú kombináciu kláves, tak znova niečo vykoná.

Windows API na tento účel používa funkciu https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-re...

Pre jednoduché kombinácie kláves trebárs [ALT] + [SHIFT] + [C]

RegisterHotKey(
    nullptr, // handle okna netreba
    nejakeVlastneId, // id - identifikátor ktorý sa mi hodí ak som zaregistroval viacero kláves, tak podľa ID viem ktorá to bola. GetMessage mi v msg.wParam vráti toto ID.
    MOD_ALT | MOD_SHIFT, // modifikator napr: MOD_ALT, MOD_CONTROL, MOD_SHIFT
    'C' // samotná klávesa napr: 'C', VK_F2, 0x80
)

Lenže čo ak by som chcel niečo zložitejšie napr.

[ALT] + [SHIFT] + [F1] => [ALT] + [SHIFT] + [C] - pričom [F1] a [C] nezadávam naraz, ale postupne a modifikátor [ALT] + [SHIFT] musí byť stlačený počas celého zadávania [F1] aj [C] (aby systém vedel že sa skratka reťazí)

Skúšal som toto:

RegisterHotKey(
    nullptr,
    nejakeVlastneId,
    MOD_ALT | MOD_SHIFT,
    VK_F1 | 'C'
)

Ale nejde to predpokladám, že bude treba inú funkciu. Neviete mi proadiť nejakú knižničku? Alebo poradiť nejaký jednoduchý spôsob ako na to? Vedel by som si metódou pokus omyl nakódiť niečo zložité. Ale hľadám čo najjednoduchšie riešenie.

Pro plný přístup na Devel.cz se prosím přihlaste:

Rychlé přihlášení přes sociální sítě:

Nebo se přihlaste jménem a heslem:

Zadejte prosím svou e-mailovou adresu.
Zadejte své heslo.