Externes Numpad mit Makro-Belegung für ~10 EUR

Tipps, Tricks und Anleitungen rund um Technik und Hardware
Antworten
Benutzeravatar
Markus (Razor2)
Administrator
Beiträge: 125
Registriert: Sa 6. Feb 2021, 15:49
Hat sich bedankt: 72 Mal
Danksagung erhalten: 67 Mal
Kontaktdaten:

Externes Numpad mit Makro-Belegung für ~10 EUR

I. Das Problem

Habt ihr bestimmt schon erlebt - bei Spielen wie Elite:Dangerous und anderen wird der Platz an zuweisbaren Shortcuts auf Joystick, Gamepad oder gar Tastatur mitunter recht knapp.

Hier zeige ich euch eine kostengünstige Möglichkeit, sich nochmals knapp 20 zusätzlichen Tasten für ein Spiel oder eine Anwendung zu sichern und zusätzlich mit Makros zu programmieren. Und das in Summe für um die 10 EUR ;)

Auf die Idee hat mich unser MajorK gebracht, der mir auch die grundlegenden Funktionen der Programme erläutert und mit Beispiel-Skripten ausgeholfen hat - vielen Dank nochmals an dieser Stelle!

II. Das Numpad

Benötigt wird zum einen ein Numpad. Entweder mit USB-Anschluss oder über Funk wie Bluetooth o.ä. Die gibt es bei den bekannten Händlern und Verkaufsportalen schon teilweise für unter 10 EUR.

Bild
[Numpad mit selbstgedruckten Tastenaufklebern]


III. HID macros - die Schnittstelle zwischen Tastatur und Makro

Zur Tasten-Zuweisung ist ein kostenloses Programm wie z.Bsp. HID macros notwendig. Es wird zwar nicht mehr weiterentwickelt, läuft aber in der letzten Version 2.3 sehr stabil und bietet alles, um schnell und einfach einer (oder mehreren) Tastaturen neue Funktionen zuzuweisen. Der Nachfolger nennt sich LuaMacros, damit habe ich mich aber nicht mehr beschäftigt, da mir HID macros vollkommen reicht. Achtung: Der <Download> Button auf der verlinkten Seite lädt die "Luamacros" herunter, ihr solltet weiter unten im "Download Archive" die Version 2.3 der HID macros laden.

So sieht aktuell meine Belegung von HID macros aus:

Bild
[HID macros]

Ich kann dabei (fast) jeder beliebigen Taste ein Makro im .EXE-Format zuweisen, welches ich zuvor im SciTE Script Editor geschrieben habe.

Die einzelnen Makros sind im Grunde nicht weiteres als stupide Abfolge von Tastatureingaben, um damit durch diverse Spiel-Menüs zu navigieren und Funktionen ein- oder auszuschalten, zu triggern oder auch nur einen Systemnamen per copy&paste in die Navigation einzutragen.


IV. AutoIt - Tastenabfolgen einfach gescriptet

Um diese Makros zu schreiben verwende ich das Programm SciTE Script Editor, welches im kostenlosen Programmpaket AutoIt enthalten ist.

Der SciTE Script Editor ist ein für mein Verständnis sehr mächtiges Werkzeug, um damit in einer Basic-ähnlichen Programmiersprache komplexe Skripte schreiben zu können. Ich "missbrauche" es jedoch nur dafür, eine Reihe einfacher Tastatureingaben zu simulieren und diese dann zusammenhängend als ausführbare EXE-Datei abzuspeichern.

Hier ein Programm ähm ... ok, eher nur ein Code, der in Elite:Dangerous meine Heimatstation als neues Ziel in den Navigationscomputer einträgt:

Code: Alles auswählen

#include "Sound.au3"
_SoundPlay ("\\...\NumpadMakros\sequenz_start.mp3", 1)
sleep(200)
send("{, down}")
sleep(100)
send("{, up}")
sleep(1000)
send("{e down}")
sleep(100)
send("{e up}")
sleep(1000)
send("{e down}")
sleep(100)
send("{e up}")
sleep(500)
send("{space down}")
sleep(100)
send("{space up}")
sleep(5000)
send("{space down}")
sleep(100)
send("{space up}")
sleep(500)
send("{, down}")
sleep(100)
send("{, up}")
sleep(200)
_SoundPlay ("\\...\NumpadMakros\way2home.mp3", 1)
sleep(200)
In den ersten zwei Zeilen wir nur ein kurzer Sound (sequenz_start.mp3) ausgegeben, damit ich weiß, dass das Makro gestartet ist.

Die folgenden Zeilen dienen dazu, jeweils einen Tastendruck [send("{e down}")] mit einer bestimmten Dauer [sleep(100)] und dem "loslassen" der Taste [send("{e up}")] zu generieren. Die Dauer ist jeweils in Millisekunden anzugeben. Zwischen den einzelnen Tastendrücken ist jeweils eine etwas längere Pause zwischen 200 und 1000 ms notwendig, um dem Spiel die Reaktion auf einen Tastendruck zu ermöglichen. Insbesondere wenn sich erst komplexe Grafiken nach einer Auswahl aufbauen müssen braucht es sogar ein paar Sekunden, um mit der Tastaturabfolge weiterzumachen. Das ist immer von der verwendeten Hard- und Software abhängig und sollte im Einzelfall ausgetestet werden.

Gerade bei längeren, aufwändigeren Makros wird es manchmal schwierig, die Übersicht zu behalten. Ich habe hierbei noch nicht mit Programmen wie dem Macro Recorder experimentiert, der automatisch Tastatureingaben aufzeichnet und als Textfile ausgeben kann. Damit ließe sich vermutlich etwas Zeit beim Schreiben der Makros gewinnen. Am besten testet man schon während dem Erstellen des Makros dieses immer mal wieder kurz aus.

Zum Schluss des Makros kommt noch ein kleines Audiofile, welche mir eine gute Reise wünscht :-). Dabei sind die "..." in dem Aufruf der Sounddatei (\\...\NumpadMakros\) mit der korrekten Pfadangabe zu ersetzen, in dem die Sounddatei gespeichert ist. Ebenso ist der richtige Name der Sounddatei einzusetzen.

Man braucht aber nicht unbedingt einen Sound und die Zeile mit dem <SoundPlay> kann ganz weggelassen werden. Wer aber gerne eine personalisierte Meldung beim Abspielen des Makros möchte kann sich bei einem der zahlreichen "text2speech" Dienste wie z.Bsp. bei wideo.co ein Soundfile generieren lassen und in das Makro einbetten.

Im SciTE Script Editor habe ich nun die Möglichkeit, dieses Makro als .EXE-Datei abzuspeichern. Ein Vorteil der .EXE-Datei ist, dass ich hierbei auch Zugangsdaten hinterlegen kann, die dann (zumindest einigermaßen) unlesbar in der .exe enthalten sind. Praktisch, um sich zum Beispiel unter Steam mit verschiedenen Zugängen aus- und wieder einzuloggen.

Um eine solche ausführbare .EXE Datei zu erzeugen, geht man in der Menü-Leiste auf <Tools> und dann <Build> (oder drückt gleich auf <F7>). Dadurch wird die .EXE-Datei erzeugt und abgespeichert.



V. Die Einstellungen in HID macros

Ist man mit der Erstellung der entsprechenden Makros als .EXE-Datei fertig kommt HID-macros ins Spiel.

Das Programm erkennt automatisch alle angeschlossenen Eingabegeräte wie Tastaturen und Mäuse. Gamecontroller werden meines Wissens nach nicht erkannt.


Bild

(1) Unter dem Reiter "Makros" kann man in dem Bereich "Testbereich - letztes Eingabeereignis" quasi in Echtzeit erkennen, von welchem Gerät welcher Tastendruck erzeugt wurde.

(2) Nachdem ein Name für das Makro eingegeben wurde auf "Scan" gehen und die Taste des Numpads drücken, die dem Makro zugeordnet werden soll. Die entsprechenden Werte werden automatisch eingetragen.

(3) Um jetzt noch das entsprechende Makro zuzuweisen muss nur noch die vorhin mit SciTE Script Editor erzeugte .EXE-Datei ausgewählt werden.

Das war es auch schon im Grunde. Man tut natürlich gut daran, die Konfiguration zu speichern ("Save configuration" oben im Menü) und das Programm HID macros irgendwo im Autostart-Ordner zu hinterlegen. Mit 2,2 MB und einer Prozessorauslastung von 0,1% sollte das zu verschmerzen sein. Unter "Einstellungen" lässt sich das Programm auch direkt minimiert starten, so dass es bis auf ein kleines Icon in der Taskleiste nicht weiter auffällt.

Man kann das oder die Makros jetzt direkt testen. Entweder im Spiel direkt, oder in einem Editor. Dazu am besten irgendeinen Editor öffnen (ich empfehle ja immer Notepad++), den Mauscursor darin platzieren und das Makro per Numpad-Taste starten. Dann sieht man direkt die entsprechende Zeichenfolge, die sich wie von Geisterhand in den Editor schreibt.


VI. Was es sonst noch zu wissen gibt

Wichtig zu wissen: Das Programm HID macros kann nicht unterscheiden, ob gerade das gewünschte Spiel im aktiven Fenster ist oder vielleicht ein Chat, in den man nebenbei mal schreibt. Löst man dann ein Makro aus, wird hemmungslos die Zeichenfolge in den Chat oder sonst wohin geschrieben, was schon mal zu leichtem Erstaunen des Gegenübers führen kann :lol:

Eine Möglichkeit dieses zu umgehen ist eine Abfrage in der Erstellung des Makros, die das aktive Fenster (Hier: Elite Dangerous) vor der Ausführung abfragt. Dieses Skript wurde mir freundlicherweise von MajorK zur Verfügung gestellt:

Code: Alles auswählen

#include "Sound.au3"
#include <Misc.au3>
Local $hDLL = DllOpen("user32.dll")
local $i = 1
local $elite_active=False

check_if_active()

Func check_if_active()
	ConsoleWrite("Starte Funktion check_if_active ..." & @CRLF)
	sleep(100)
	While $i <= 2
		If WinActive("Elite - Dangerous (CLIENT)") = True Then
			ConsoleWrite("Active ..." & @CRLF)
			sleep(100)
			$elite_active=True
		Else
			WinActivate ("Elite - Dangerous (CLIENT)")
			ConsoleWrite("Activate !!!" & @CRLF)
			sleep(100)
		EndIf
		$i = $i + 1
	WEnd

	if $elite_active = True then
		ConsoleWrite($elite_active & @CRLF)
		copy_to_map()
	Else
		MsgBox(0,"Elite Dangerous muss gestartet werden", "Sie haben eine Makrotaste gedrückt und "&@CRLF &"Elite Dangerous läuft nicht im Hintergrund", 100)
	endif
EndFunc


Func copy_to_map()
   _SoundPlay ("\\...\NumpadMakros\sequenz_start.mp3", 1)
   sleep(200)
   #Map öffnen
   send("{, down}")
   sleep(100)
   send("{, up}")
   sleep(1500)
   #nach rechts
   send("{e down}")
   sleep(100)
   send("{e up}")
   sleep(1000)
   #auswahl
   send("{SPACE down}")
   sleep(100)
   send("{SPACE up}")
   sleep(1000)
   #Copy
   Send("{CTRLDOWN}v{CTRLUP}")
   sleep(500)
   send("{Enter down}")
   sleep(100)
   send("{Enter up}")
   sleep(5000)
   #Waypoint
   send("{d down}")
   sleep(100)
   send("{d up}")
   sleep(500)
   #Waypoint anklicken
   send("{SPACE down}")
   sleep(1000)
   send("{SPACE up}")
   #Map verlassen
   send("{, down}")
   sleep(100)
   send("{, up}")
   sleep(500)
   _SoundPlay ("\\...\NumpadMakros\copy_to_map.mp3", 1)
EndFunc

VII. Das sieht aber alles sehr kompliziert aus

Mag sein, dass das alles auf den ersten Blick ziemlich kompliziert aussieht. Hat man aber mal ein, zwei Makros geschrieben versteht man das Prinzip recht gut und es macht Spaß, die Tasten des Numpads so langsam mit allen möglichen Makros zu füllen.

Ich hänge euch hier noch ein paar Beispielsdateien mit an, die ihr in den SciTE Script Editor laden könnt, abändern, kompilieren und natürlich auch verwenden dürft. Und bei Unklarheiten gerne hier im Thread fragen. MajorK und ich können bei Bedarf auch mal eine kleine online-Einweisung machen.

Viel Spaß beim Ausprobieren!

Einholen der Lande-Erlaubnis an einer Station:
Landing-Permission.au3
Sounddatei "Sequenz Start"
sequenz_start.mp3
Sounddatei "Landing permission"
landing_permission.mp3
Einen Systemnamen, den man aus einer Drittanwendung in die Zwischenablage kopiert hat, in die Routenplanung kopieren:
copy_to_map.au3
Soundfile
copy_to_map.mp3
Ins "Open", eine Private Gruppe" oder ins "Solo" einloggen (mit den zugehörigen Soundfiles)
logoff_login_open.au3
relogging2open.mp3
logoff_login_group.au3
relogging2group.mp3
logoff_login_solo.au3
relogging2solo.mp3
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Folgende Benutzer bedankten sich beim Autor Markus (Razor2) für den Beitrag (Insgesamt 6):
Mad Elk (Mo 1. Mär 2021, 23:08) • Skotty660815 (Di 2. Mär 2021, 12:33) • Drickes (Andre) (Di 2. Mär 2021, 15:47) • Andimax - Andreas (Do 1. Apr 2021, 20:24) • GordonShumway (Mi 7. Apr 2021, 10:38) • Grayson (Mi 7. Apr 2021, 23:52)
Viele Grüße,
Markus
Mad Elk
Beiträge: 14
Registriert: Fr 26. Feb 2021, 18:16
Hat sich bedankt: 6 Mal
Danksagung erhalten: 1 Mal

Re: Externes Numpad mit Makro-Belegung für ~10 EUR

Vielen Dank Razor2!
Mad Elk
Beiträge: 14
Registriert: Fr 26. Feb 2021, 18:16
Hat sich bedankt: 6 Mal
Danksagung erhalten: 1 Mal

Re: Externes Numpad mit Makro-Belegung für ~10 EUR

Bei mir funktioniert die Installation nach dem Entpacken nicht unter aktuellem Win 10 Pro. Kann das jemand bestätigen?
Benutzeravatar
Markus (Razor2)
Administrator
Beiträge: 125
Registriert: Sa 6. Feb 2021, 15:49
Hat sich bedankt: 72 Mal
Danksagung erhalten: 67 Mal
Kontaktdaten:

Re: Externes Numpad mit Makro-Belegung für ~10 EUR

Mad Elk hat geschrieben: Fr 5. Mär 2021, 19:15 Bei mir funktioniert die Installation nach dem Entpacken nicht unter aktuellem Win 10 Pro. Kann das jemand bestätigen?
Installation von was? AutoIt? Eventuell unter Admin-Rechten ausführen?
Viele Grüße,
Markus
Mad Elk
Beiträge: 14
Registriert: Fr 26. Feb 2021, 18:16
Hat sich bedankt: 6 Mal
Danksagung erhalten: 1 Mal

Re: Externes Numpad mit Makro-Belegung für ~10 EUR

Nach Reboot ging es.
Affenbrot
Beiträge: 2
Registriert: Fr 18. Mär 2022, 21:44
Hat sich bedankt: 0
Danksagung erhalten: 0

Re: Externes Numpad mit Makro-Belegung für ~10 EUR

Moin zusammen, O7

wird dieses "Projekt" noch weiterverfolgt?
Nutzt jemand ein NumPad zusammen mit einem Logitek X52pro?

Grüße and Fly save,

Affenbrot
Benutzeravatar
Markus (Razor2)
Administrator
Beiträge: 125
Registriert: Sa 6. Feb 2021, 15:49
Hat sich bedankt: 72 Mal
Danksagung erhalten: 67 Mal
Kontaktdaten:

Re: Externes Numpad mit Makro-Belegung für ~10 EUR

Um ehrlich zu sein, nutze ich mein Numpad schon seit längerem nicht mehr. Es war am Anfang natürlich schon klasse, alle möglichen Befehle als Makro absetzen zu können. Da ich aber ausschließlich mit Maus/Tastatur spiele, bin ich fast mit der Tastatur schneller, als auf ein externes Numpad zu wechseln.
Viele Grüße,
Markus
Affenbrot
Beiträge: 2
Registriert: Fr 18. Mär 2022, 21:44
Hat sich bedankt: 0
Danksagung erhalten: 0

Re: Externes Numpad mit Makro-Belegung für ~10 EUR

Moin Markus,
moin zusammen,

Respekt Markus und an alle die nur mit Tastatur/Maus spielen. 07
Ich persönlich breche mir da die Finger und genieße die Faulheit mit meinem HOTAS.
Allerdings sind auch hier die Tastenfolgen echt nervig, sodass ich die Idee mit dem Numpad echt cool finde.

Also ich habe mal versucht die Tastenfolge wie im Script beschrieben bei mir nachzubauen.
Leider ohne Erfolg.

Nutzt denn überhaupt jemand ein Numpad mit HOTAS?

Grüße and Fly save,

Affenbrot
Benutzeravatar
Markus (Razor2)
Administrator
Beiträge: 125
Registriert: Sa 6. Feb 2021, 15:49
Hat sich bedankt: 72 Mal
Danksagung erhalten: 67 Mal
Kontaktdaten:

Re: Externes Numpad mit Makro-Belegung für ~10 EUR

Du kannst mich oder MajorK gerne mal auf dem Discord anhauen, vielleicht lässt sich da helfen.

Affenbrot hat geschrieben: Fr 25. Mär 2022, 13:13 [...]

Also ich habe mal versucht die Tastenfolge wie im Script beschrieben bei mir nachzubauen.
Leider ohne Erfolg. [...] Affenbrot
Viele Grüße,
Markus
Antworten