Moin zusammen, folgende Frage: Ich habe einen USB-Tastaturcontroller, den ich frei programmieren kann. Also die Tastenbelegungen der Tasten eigene Usage Id's zuweisen. Soweit kein Problem mit "normalen" Tasten wie ABCD.... Jetzt habe ich einen Buttonhandler der auf bestimmte Make/Break-Codes reagiert und dadurch bestimmte Programme aufruft. Das funktioniert alles soweit wenn ich ganz normale Tasten hernehme die auch wirklich auf einem Keyboard vorhanden sind. Dadurch, dass es eigene Programme sind soll natürlich auf herkömmliche Tasten nicht reagiert werden. Also brauch ich wohl Usage Id's, die noch nicht vergeben sind. Bei Microsoft hab ich ein Dokument gefunden (Teilausschnitt im Anhang) da stehen alle Usage Id's drauf. Dort findet man dann einige mit "Reserved". Habe die mal in meinen Controller gebrannt und mit einem Tool geschaut ob da Scancodes ankommen. Bei 3 Tasten funktionierts, beim Rest nicht. Also auch keine wirklich gute Möglichkeit. Jemand Ahnung wie das mit den Usage Id's abläuft? Ich muss sicher stellen, dass ein User nicht durch die normalen Tasten auf der Tastatur die Programme starten kann. Gibt es überhaupt "freie" Usage Id's? Danke
Hi! Eventuell kann dir die Raw Input API helfen. =>http://msdn.microsoft.com/en-us/library/ms645536(VS.85).aspx Lg
Das wird nichts. Entweder sind die UsageIDs in der HID Spec definiert und damit zum größeren Teils als Standardtasten verfügbar, oder Du musst den Controller dazu bringen Vendor Specific Usages zu senden. Das wird aber kein Standardcontroller erlauben, dazu müsste man u.a. den Report Descriptor ändern können.
Hi, @Mars: Softwareseitig sollen die Brake/Make-Codes nur empfangen werden. Damit hab ich weniger zutun. Ich muss nur meinen Controller dazu bringen die richtigen Codes zu senden. @Guido: Den Reportdescriptor kann ich auch verändern. Wie meinst du das genau? Was ist der Unterschied zu den normalen Usage Id's? Bei dem Chip handelt es sich übrigens um dem ALCOR AU9410. Gruß
Zieh Dir mal die HID Spezifikation. Es gibt die Möglichkeit Vendor specified IDs zu definieren. Die werden von MacOS und Windows ignoriert, Linux versucht die leider zu dekodieren, was Freude bereitet und einen Treiber erforderlich macht um an solche Daten ranzukommen. Zuverlässig klappen kann das aber nur wenn man eine eigene VendorID hat. Besser wäre es einen Chip zu nehmen, der sich garnicht erst als Tastatur anmeldet.
Hi, wenn Windows aber die Daten ignoriert, wie soll ich dann rankommen? Dann müsste ich ja auch einen Treiber haben der vorher die Daten abgreift. Gruß
RawInput über den Tastaturtreiber. Wie gesagt ist es aber sinnvoller einen Chip zu verwenden, der garnicht erst als Tastatur auftaucht wenn er auch nicht als Tastatur funktionieren soll.
Aha ok, hast du eine Empfehlung was man da verwenden könnte? Wie gesagt, softwaremäßig gibt es keinen Treiber oder was. Ich kann also nur das übernehmen was Windows mir liefert. Gruß
Joystickcontroller oder Generic HID, z.B. den IO-Warrior. Wie viele Tasten sollen es denn sein?
Hi, die Versionen hören sich schonmal nicht schlecht an! Jetzt muss ich aber doch nochmal eine Frage loswerden: Wenn ich einfach irgendeine nicht belegte Usage Id in mein Controller eintrage, und dann einfach mit der Software schaue ob da irgendwas ankommt. Könnte doch auch funktionieren? Oder schmeißt Windows mit Sicherheit die Id bzw. die Make/Brake Codes weg weil sie laut Liste nicht vergeben sind? Gruß
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.