Elgato Streamdeck und PB

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
Zerosurf
Beiträge: 131
Registriert: 11.10.2005 15:46

Re: Elgato Streamdeck und PB

Beitrag von Zerosurf »

RSBasic hat geschrieben: 23.11.2020 18:59 Man braucht ein KeyboardHook und ein WindowCallback.
Man muss zuerst RegisterRawInputDevices_() ausführen, dann kann man Rohdaten eines Gerätes im WindowsCallback über "#WM_INPUT" empfangen. Im Case "#WM_INPUT" kann man die Rohdaten mit GetRawInputData_() und GetRawInputDeviceInfo_() die Daten empfangen wie z.B. #RIDI_DEVICENAME, um den Geräteinstanzpfad (z.B. "\\?\HID#VID_046D&PID_C328&MI_00#9&337527d2&0&0000#{884b96c3-56ef-11d1-bc8c-00a0c91405dd}") einer Tastatur zu ermitteln. Mit diesem Gerätepfad kann man mehrere Tastaturen unterschieden. Man kann auch andere Tastatur-Informationen ermitteln.
Im KeyboardHook, den man mit SetWindowsHookEx_() und #WH_KEYBOARD erstellt, kann man die gedrückte Taste ermitteln und beispielsweise ein Programm starten, wenn z.B. der Geräteinstanzpfad der Tastatur übereinstimmt. Wenn der Geräteinstanzpfad nicht übersinstimmt, dann soll nichts gemacht werden, so dass man die andere Tastatur ganz normal benutzen kann, ohne dass Programme gestartet werden.
Ich habe für mich ein GUI-Programm entwickelt, in dem ich dort für jede Taste festlegen kann, was nach dem Drücken einer bestimmten Taste passieren soll, ob eine Anwendung gestartet werden soll oder eine Sounddatei abgespielt wird (Soundboard wie bei TV Total :D) oder eine Tastenkombination simuliert werden soll.
Mein Programm läuft versteckt im Hintergrund und funktioniert einwandfrei. Irgendwann kann ich diese Funktionalität in meine bereits bestehende Anwendung "Keyboard Editor" implementieren.

\\Edit:
Meine aktualisierte Macro-Tastatur:
Bild
Genau so ein Programm such ich gerade - wäre es möglich den Code dafür zu bekommen - bitte, bitte!!!

GLG
PureBasic 6.00 | Windows 10 pro (x64)
Antworten