none
Odchytavanie funkcnych klaves+hlasitost+jas+atd

    Dotaz

  • Zdravim.
    Chcel by som sa vas spytat, ako je mozne odchytavat funkcne klavesy na NB, ako je FN+F2, FN+F3, atd. ? Chcel by som si urobit graficku utlitku, ktora by mi zobrazovala pridavanie hlasitosti, jasu, atd... ako zachytit tieto udalosti ?
    velmi pekne dakujem za odpovede
    29. prosince 2009 12:41

Odpovědi

  • Zajímavá otázka. Na svém notebooku jsem zkusil použít nástroj Spy++ (součástí MS Visual Studia) a v okně Notepadu zkusil postupně stisknout kombinace kláves Fn+F1, Fn+F2, Fn+F3 a zachytil zprávy WM_KEYUP, WM_KEYDOWN:

    <00001> 000202CC P WM_KEYDOWN nVirtKey:00FF cRepeat:1 ScanCode:25 fExtended:1 fAltDown:0 fRepeat:0 fUp:0
    <00002> 000202CC P WM_KEYUP nVirtKey:00FF cRepeat:1 ScanCode:25 fExtended:1 fAltDown:0 fRepeat:1 fUp:1

    <00003> 000202CC P WM_KEYDOWN nVirtKey:00FF cRepeat:1 ScanCode:26 fExtended:1 fAltDown:0 fRepeat:0 fUp:0
    <00004> 000202CC P WM_KEYUP nVirtKey:00FF cRepeat:1 ScanCode:26 fExtended:1 fAltDown:0 fRepeat:1 fUp:1

    <00005> 000202CC P WM_KEYDOWN nVirtKey:00FF cRepeat:1 ScanCode:27 fExtended:1 fAltDown:0 fRepeat:0 fUp:0
    <00006> 000202CC P WM_KEYUP nVirtKey:00FF cRepeat:1 ScanCode:27 fExtended:1 fAltDown:0 fRepeat:1 fUp:1

    Předpokládám, že na Vašem notebooku to bude podobně, nicméně doporučuji ověřit pomocí Spy++.

    Protože uživatelské prostředí operačního systému standardně směruje tyto zprávy pouze do okna, které má v danou chvíli vstupní ohnisko (focus), budete muset při realizaci zmíněné utility použít nějakou variantu závěsné funkce (hook), viz:

    http://msdn.microsoft.com/en-us/library/ms997537.aspx (problematika Win32 hooks obecně - článek je trochu starší, nutno validovat dle současné funkčnosti)
    http://msdn.microsoft.com/en-us/library/ms632589(VS.85).aspx (dokumentace Win32 Hooks)
    http://support.microsoft.com/kb/318804 (v prostředí C# .NET)

    Michal Jakubec
    4. března 2010 17:32

Všechny reakce

  • Zajímavá otázka. Na svém notebooku jsem zkusil použít nástroj Spy++ (součástí MS Visual Studia) a v okně Notepadu zkusil postupně stisknout kombinace kláves Fn+F1, Fn+F2, Fn+F3 a zachytil zprávy WM_KEYUP, WM_KEYDOWN:

    <00001> 000202CC P WM_KEYDOWN nVirtKey:00FF cRepeat:1 ScanCode:25 fExtended:1 fAltDown:0 fRepeat:0 fUp:0
    <00002> 000202CC P WM_KEYUP nVirtKey:00FF cRepeat:1 ScanCode:25 fExtended:1 fAltDown:0 fRepeat:1 fUp:1

    <00003> 000202CC P WM_KEYDOWN nVirtKey:00FF cRepeat:1 ScanCode:26 fExtended:1 fAltDown:0 fRepeat:0 fUp:0
    <00004> 000202CC P WM_KEYUP nVirtKey:00FF cRepeat:1 ScanCode:26 fExtended:1 fAltDown:0 fRepeat:1 fUp:1

    <00005> 000202CC P WM_KEYDOWN nVirtKey:00FF cRepeat:1 ScanCode:27 fExtended:1 fAltDown:0 fRepeat:0 fUp:0
    <00006> 000202CC P WM_KEYUP nVirtKey:00FF cRepeat:1 ScanCode:27 fExtended:1 fAltDown:0 fRepeat:1 fUp:1

    Předpokládám, že na Vašem notebooku to bude podobně, nicméně doporučuji ověřit pomocí Spy++.

    Protože uživatelské prostředí operačního systému standardně směruje tyto zprávy pouze do okna, které má v danou chvíli vstupní ohnisko (focus), budete muset při realizaci zmíněné utility použít nějakou variantu závěsné funkce (hook), viz:

    http://msdn.microsoft.com/en-us/library/ms997537.aspx (problematika Win32 hooks obecně - článek je trochu starší, nutno validovat dle současné funkčnosti)
    http://msdn.microsoft.com/en-us/library/ms632589(VS.85).aspx (dokumentace Win32 Hooks)
    http://support.microsoft.com/kb/318804 (v prostředí C# .NET)

    Michal Jakubec
    4. března 2010 17:32
  • Vdaka za odpoved. Pomohla mi velmi ! Este mam zopar otazok - ako zistim hlasitost v systeme(hlasitost "zariadenia") ? Cez winAPI kniznicu mi to stale nefunguje, asi niekde robim chybu. A este by ma zaujimalo, ako zistim uroven jasu v systeme ? Myslim si, ze cez winAPI by to mohlo fungovat, ale bohuzial neviem, ktoru kniznicu pouzit a ako presne.

    Plus, da sa nejak zistit, ze som prave pripojil nejake zariadenie + s tym, ze by som presne dostal odpoved, ktore ? Nejedna sa mi o usb disk a podobne, ale o vstavanu kameru, wifi a bluetooth. Dalo by sa ?

    Vdaka

    23. března 2010 7:08