Verwenden Sie die zweite Tastatur für Verknüpfungen

Wenn Sie unter Windows zwei USB-Tastaturen anschließen, verhalten sie sich wie eine. AFAIK (ich kann es im Moment nicht versuchen) es synchronisiert sogar CapsLockund NumLock.

Ich suche nach einer Möglichkeit, Tastenkombinationen der zweiten Tastatur zuzuordnen, z

  • Wenn Ctrl+ auf der "normalen" Tastatur kopierenC ist , möchte ich das nur auf der zweiten Tastatur zuweisen .C
  • Wenn AltGr+ auf der "normalen" Tastatur µM ergibt , möchte ich das nur auf der zweiten Tastatur zuweisenM
  • Ich möchte .auf der zweiten Tastatur tippen und bekomme Auslassungspunkte (...)

Die Software sollte

  • funktioniert unter Windows 7 und Windows 10, 64 Bit
  • sollte gratis sein
  • unterstützt viele Tastaturen
  • keine Probleme mit der Internationalisierung haben (z. B. Zuordnung chinesischer Schriftzeichen)
  • in der Lage sein, Tastaturen zu identifizieren (dh sich merken, welche welche ist)

Meine Idee ist, einige billige Tastaturen zu verwenden, die Tasten mit Symbolen oder ähnlichem neu zu beschriften und so in der Lage zu sein, fremdsprachige Zeichen einzugeben oder Tastaturkürzel für einige Spiele zu haben.

LuaMacros [Github] ( Release download ), der Nachfolger von HID Macros, macht fast das, was ich brauche, außer dass es sich nicht an die Tastaturen erinnern kann (oder ich nicht herausgefunden habe wie) und die Zuweisung der Verknüpfungen auf programmgesteuerte Weise erfolgt und Sie müssen wissen, wie man Lua-Skripte schreibt. Ich suche nach einer geführteren Methode zum Zuweisen der Tastenkombinationen.

Verwandt, gibt aber den Vorgänger von LuaMacros als Antwort: softwarerecs.stackexchange.com/questions/5730/…
Ich weiß, dass Taran von LTT diesen Kampf geführt hat, vielleicht möchten Sie sich sein Video ansehen: youtube.com/watch?v=Hn18vv--sFY

Antworten (1)

[Update] Lesen Sie unten den Kommentar von @huy. Es erfordert die Fähigkeit zu codieren, aber dieser Teil des Artikels zeigt, wie man feststellt, welche Tastatur einen Tastendruck gesendet hat (ich bin mir nicht sicher, ob es mit identischen Tastaturen funktionieren würde; dafür müssen Sie möglicherweise tiefer graben.

// Load the device name into the buffer
GetRawInputDeviceInfo (raw->header.hDevice, RIDI_DEVICENAME, stringBuffer, &bufferSize);

Ich würde diese Antwort löschen, die eigentlich ein Kommentar ist, aber das würde auch den Kommentar löschen. Es sei denn, Huy, wenn Sie eine neue Antwort posten, werde ich sie positiv bewerten und diese löschen. Willkommen an Bord und danke für den guten Beitrag.

Ich habe gerade bemerkt, dass Thomas das gefragt hat, und ich weiß, dass Sie codieren können, Thomas - oder dies vielleicht als Übung für einen Gelehrten geben :-)


Entschuldigung für die Antwort, aber das ist zu lang für einen Kommentar.

Tl'dr; Soweit ich weiß, ist dies nicht (einfach) möglich.

Jede Tastatur/Maus/Joystick ist nur ein dummer HID und Windows kombiniert ihre Eingaben in einer einzigen Warteschlange.

Jetzt können Sie (wenn Sie programmieren können) die Ereigniswarteschlange einhängen und Tastaturereignisse abfangen. Wenn Sie eine finden, die Sie interessiert, können Sie sie „verbrauchen“ und verhindern, dass sie weitergereicht wird.

Ein schnelles Google zeigt nicht jedem Ereignis eine Geräte-ID an, wodurch Sie dies einfach tun könnten.

Sie können jedoch das Tastaturlayout abrufen. Wenn Sie also bereits zwei nicht identische Tastaturen haben oder kaufen möchten, können Sie möglicherweise im Hook-Code unterscheiden und Ihr Problem lösen.

Was eine handelsübliche App betrifft, tut es mir leid, aber ich kann Ihnen nicht helfen.

(wenn Sie codieren können) ... dann hilft dies: codeproject.com/Articles/716591/…