G-Tasten abfragen



  • Hallo,
    ich habe eine Tastatur und die hat sogennante "G-Tasten". Also Tasten denen man Funktionen zuweisen kann. Nun würde ich diese Tasten gerne abfragen.
    Habe es schon mit

    while (!GetAsyncKeystate(VK_G2))
    	{
    		cout << "Kein G2" << endl;
    		Sleep(10);
    	}
    

    versucht, aber dann bekomme ich die Fehlermeldung das VK_G2 ein nicht deklarierter Bezeichner ist. Kann man G-Tasten überhaupt abfragen? Wenn ja,wie?
    MFG!



  • while(getch()!='G')
    {
    }
    

    natürlich nicht vergessen conio.h zu includen 🙂



  • Ich glaub er meint die tasten vom logitech keyboard... [url]http://ronnyeo.files.wordpress.com/2009/02/g152.jpg[/url (siehe links)



  • hi

    dafuer musst du das logitech SDK runterladen und benutzen.

    Meep Meep



  • ja ich meine die die tasten vom logitech keyboard ^^ Ich versuche ma das von Meep Meep ^^



  • hab ein bisschen gegooglet hab aber leider nihts gefunden. Hast du 'nen downloadlink für mich, Meep Meep? Hab die g110.
    mfg



  • hola

    wie es aussieht gibt es derzeit nur das LCD-sdk. hab zwar gedacht das es da auch noch ein anderes gab, aber wohl geirrt.
    am besten mal logitech forum durchstoebern.
    falls ich doch noch was finden sollte poste ich es hier

    Meep Meep



  • hm, dann werde ich es wohl mit postmessage machen müssen.. Nur damit kenn ich mich net gut aus.. Ich weis nur das die definition so aussieht:

    PostMessage(hwnd,msg,lparam,wparam);
    

    Was bei hwnd und msg rein muss weis ich, aber was muss bei lparam und wparam rein?

    MFG!



  • Schreib doch einfach nen Programm das auf Tastendruck reagiert und lass dir ausgeben was an Daten reinkommt wenn Du eine G-Taste drückst....



  • ! Achtung, Halbwissen !

    Ich vermute, dass die G-Tasten bereits auf Treiberebene durch ihre Programmierung ersetzt werden, sodass Windows selbst nichts davon mitbekommt und damit bestmögliche Kompatibilität erreicht. Jedenfalls würde ich das so lösen 😃
    Damit ist aber auch klar, dass man mit Windows Bordmitteln nicht feststellen kann, welche G-Taste gedrückt worden ist, sondern das müsste man über eine API des Herstellers, falls vorhanden, programmieren.

    PS:
    Guck dir mal SendInput an



  • Wenn ich das richtig verstehe, kommt eine solche Tastatur mit Lua-basierter Makrosoftware. Im Logitech-Forum findet sich ein Vorschlag, die G-Tasten damit auf F13-F24 zu mappen:

    function OnEvent(event, arg)
        if event == "G_PRESSED" then
            if     arg ==  1 then PressKey(0x64) --F13
            elseif arg ==  2 then PressKey(0x65) --F14
            elseif arg ==  3 then PressKey(0x66) --F15
            elseif arg ==  4 then PressKey(0x67) --F16
            elseif arg ==  5 then PressKey(0x68) --F17
            elseif arg ==  6 then PressKey(0x69) --F18
            elseif arg ==  7 then PressKey(0x6a) --F19
            elseif arg ==  8 then PressKey(0x6b) --F20
            elseif arg ==  9 then PressKey(0x6c) --F21
            elseif arg == 10 then PressKey(0x6d) --F22
            elseif arg == 11 then PressKey(0x6e) --F23
            elseif arg == 12 then PressKey(0x76) --F24
            end
        elseif event == "G_RELEASED" then
            if     arg ==  1 then ReleaseKey(0x64) --F13
            elseif arg ==  2 then ReleaseKey(0x65) --F14
            elseif arg ==  3 then ReleaseKey(0x66) --F15
            elseif arg ==  4 then ReleaseKey(0x67) --F16
            elseif arg ==  5 then ReleaseKey(0x68) --F17
            elseif arg ==  6 then ReleaseKey(0x69) --F18
            elseif arg ==  7 then ReleaseKey(0x6a) --F19
            elseif arg ==  8 then ReleaseKey(0x6b) --F20
            elseif arg ==  9 then ReleaseKey(0x6c) --F21
            elseif arg == 10 then ReleaseKey(0x6d) --F22
            elseif arg == 11 then ReleaseKey(0x6e) --F23
            elseif arg == 12 then ReleaseKey(0x76) --F24
            end
        end
    end
    

    ...und dann im Code die WinAPI-Makros VK_F13 bis VK_F24 zu benutzen.

    Ausprobieren kann ich das hier allerdings mangels Windows und mangels einer solchen Logitech-Tastatur nicht. Ich hoffe, es hilft dir weiter.


Anmelden zum Antworten