Erstellen Sie "gefälschte Schlüssel", die der Computer als echt interpretiert?

Erklärung

In Ordnung, das ist also ein Foto des allgemeinen Layouts einer Tastatur.

Ich frage mich: Ist es möglich, zusätzliche Tasten auf einer anderen Tastatur als den Standardtasten zu emulieren? Zum Beispiel könnte ich meinen Computer dazu bringen zu denken, dass meine Tastatur auch 3 zusätzliche Tasten mit der Bezeichnung FK1, FK2 und FK3 hat.

Diese zusätzlichen drei Schlüssel wären keine Buchstabentasten, wie Home, Insert, Page up, etc.
Grundsätzlich würden sie nichts tun, es sei denn, sie würden etwas tun. Wenn ich beispielsweise einen Hotkey in einem Programm auf FK1, wird er registriert.

Warum?

Ich bin froh, dass du gefragt hast. Ich spiele oft ein Spiel namens ArmA 3, und diejenigen von euch, die mit dem Spiel vertraut sind, wissen, dass es fast jede Taste auf der Tastatur verbraucht.
Um mit meinen Freunden in diesem Spiel zu kommunizieren, benutze ich TeamSpeak. Ich habe ein soundboard für Teamspeak, und ich möchte in der Lage sein, verschiedene Sounds mit Hotkeys anstelle von Alt-Tabbing und Klicken zu aktivieren, aber es gibt praktisch keine freien Tasten mehr in ArmA mit allen Mods, die ich verwende.

Selbst wenn Sie diese "falschen Tasten" erstellen könnten, wie würden Sie sie im Spiel verwenden, wenn sie sich nicht auf einer tatsächlichen Tastatur befinden?

Ausgezeichnete Frage.
Meine Tastatur ist ein Logitech G910 Orion Spark, der 27 Makros enthält. Ich gehe davon aus, dass ich jedes dieser Makros so einstellen kann, dass es aufgerufen wird die gefälschte tastatur tasten während des gebrauchs.

Dies ist wahrscheinlich äußerst verwirrend zu lesen, aber ich habe mein Bestes gegeben.

Windows 10 Pro (x64)

Author: Josh Silveous, 2017-03-06

2 answers

Wenn Sie eine Taste auf Ihrer Tastatur drücken, generiert die Hardware einen "Scancode", den die Software dann als bestimmten Tastendruck interpretiert.

Schlüsselzuweisung

Mit KeyTweak können Sie den von Windows interpretierten Tastendruck aus jedem Scancode neu zuweisen, indem Sie entsprechende Registrierungseinträge hinzufügen.

Leider können Sie keine zusätzlichen gefälschten Schlüssel hinzufügen. Das nächste, was es bekommt, ist die Neuzuweisung der Medien - /Websteuertasten, die einige tastaturen haben. Außerdem können Sie keine Tastencodes zuweisen, die Ihre Tastatur normalerweise nicht verwendet. Wenn Sie also eine US-Tastatur haben, können Sie weder Ó noch £zuweisen. Sie wären also immer noch auf die Verwendung der normalen Schlüsselbuchstaben beschränkt, von denen Sie sagen, dass Sie erschöpft sind.

Fälschung es

AutoHotkey ermöglicht die Generierung von Scancodes und ungewöhnlichen Symbolen durch Skripte.

Dieses Skript generiert £, wenn Win+p gedrückt wird (ich habe das Symbol aus dem Internet entfernt und eingefügt in den Texteditor, mit dem ich das Skript erstellt habe):

#p::
send, £

Abhängig von Ihrem Spiel können Sie möglicherweise ein solches Skript verwenden, um £ als Schlüssel in Ihrem Spiel zu erhalten. Wenn das Spiel jedoch darauf wartet, dass tatsächliche Tastatur-Scancodes generiert werden, funktioniert dies nicht. Es hängt davon ab, wie das Spiel mit Hardware interagiert.

Zum Glück kann AutoHotkey auch Tastatur-Scan-Codes generieren. Dieses Skript generiert ein Leerzeichen, wenn Win+p gedrückt wird, da Scancode 39 (hex) Leerzeichen ist (siehe Scan Codeliste).

#p::
send, {sc39}

AutoHotkey hat auch eine andere Methode zum Generieren virtueller Schlüssel. Ich habe den Unterschied nicht untersucht, aber dieses Skript generiert Speicherplatz mit einer virtuellen Taste, wenn Sie win+p drücken:

#p::
send, {vk20}

Diese Referenz listet alle virtuellen Schlüsselcodes auf, einschließlich vieler nicht standardmäßiger Schlüssel, die Sie noch nicht verwendet haben: https://autohotkey.com/board/topic/98757-how-to-create-a-new-virtual-keys/

Sie könnten versuchen, ein Skript zu erstellen, das a sendet nicht-Standard-virtueller Schlüssel zu Ihrem Spiel. Wenn das Spiel es registriert und Sie es auf seiner Tastatureinrichtungsseite speichern lässt, werden Sie dies wahrscheinlich zum Laufen bringen.

Das letzte Puzzleteil besteht darin, dass die Logitech-Makros das AutoHotkey-Skript aufrufen, das den virtuellen Schlüssel generiert. Sie würden ein AutoHotkey-Skript ohne Hotkey erstellen, sodass es sofort ausgelöst wird, wenn es ausgeführt wird - z. B.

send, {vk7B}

Oder

send, £

Associate *.ahk-Dateien mit dem Autohotkey-Programm, und dann die Logitech-Makro zum Öffnen des gespeicherten Skripts.

Hinweis: Ich habe dies in keinem Spiel getestet. Es wird wahrscheinlich unterschiedliche Ergebnisse in verschiedenen Spielen haben-je nachdem, was sie als gültige Einträge akzeptieren. Im obigen Link zu virtuellen Schlüsseln diskutieren die Leute darüber, fast genau das zu tun, was Sie tun möchten, und scheinen Erfolg mit der Verwendung von F13-F24-Schlüsseln gehabt zu haben.

vk7B    sc58    F12
vk7C    sc64    F13
vk7D    sc65    F14
vk7E    sc66    F15
vk7F    sc67    F16
vk80    sc68    F17
vk81    sc69    F18
vk82    sc6A    F19
vk83    sc6B    F20
vk84    sc6C    F21
vk85    sc6D    F22
vk86    sc6E    F23
vk87    sc76    F24

BEARBEITEN: Wie in Kommentaren angefordert; Ein einfaches Skript zum Erstellen von F13 könnte aussehen wie:

b::
send, {vk7C}

Jedes Mal, wenn Sie 'b' drücken, während dieses Skript aktiv ist (in Ihrem Fach in der Nähe der Uhr), wird F13 gesendet. Dieses Skript bleibt aktiv und wird jedes Mal ausgeführt, wenn Sie 'b' drücken, bis Sie es beenden. Sobald das Spiel F13 in key set up registriert hat, beenden Sie dieses Skript und erstellen Sie eines der folgenden, damit Logitech Folgendes aufrufen kann:

send, {vk7C}

Dieser wird nicht aktiv bleiben, er wird einmal ausgeführt und endet dann jedes Mal, wenn er aufgerufen wird.

 16
Author: Sir Adelaide,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2017-03-06 11:00:53

Entschuldigung für die verspätete Antwort. Ich musste über F12 auf die Funktionstasten zugreifen, was aktuelle Tastaturhersteller nicht zu berücksichtigen scheinen, aber mit AutoHotkey einfach genug. Ich habe dies verwendet, um diese Tastenanschläge als Makros zu meiner Maus hinzuzufügen, die ansonsten das Hinzufügen beliebiger Tasten nicht unterstützt.

z::
send, {F13}
return

x::
send, {F14}
return

c::
send, {F15}
return

v::
send, {F16}
return

b::
send, {F17}
return

n::
send, {F18}
return

m::
send, {F19}
return

l::
send, {F20}
return

k::
send, {F21}
return

j::
send, {F22}
return

h::
send, {F23}
return

g::
send, {F24}
return
 2
Author: suvonnie,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2018-03-16 17:06:20