Da Windows 10 nach einem Upgrade immer wieder meine Zuweisung (STRG+ALT+K) zum starten von Kodi über die info Taste der FB verworfen hat,
habe ich mal im Netz herumgesucht und aus diversen Schnipseln eine Autoit Anwendung erstellt.
Diese läuft nun dauerhaft und greift die Keystrokes wie ein Keylogger ab. Bei Übereinstimmung des Musters der Keysrokes wird Kodi gestartet, oder wenn es schon im Hintergrund läuft, in den Vordergrund geholt und per ALT+ENTER Maximiert.
Wenn man nicht mit der Tastatur hantiert, dann klappt das auch schön, aber es gibt ein Problem mit einigen Tasten die dann einfach irgendwas machen.
Mir ist das Egal, da ich eh wenig mit der Tastatur mache und wenn euch das auch Egal ist, dann könnt ihr gern mein zusammengeklautes Script haben.
#Region;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_UseUpx=n
#EndRegion;**** Directives created by AutoIt3Wrapper_GUI ****
#include <Array.au3>
#include <RawInput.au3>
#include <WinAPI.au3>
HotKeySet('{ESC}', '_EXIT')
Global $tRID_KD, $pRID_KD, $iRID_KD
Global $tRIH, $iRIH
Global $iNumDevices
Global $hGUI , $pData
Global $kodi=0
$hGUI = GUICreate('Test', 100, 100)
GUIRegisterMsg($WM_INPUT, 'OnInput')
$tRID_KD = DllStructCreate($tagRAWINPUTDEVICE)
$pRID_KD = DllStructGetPtr($tRID_KD)
$iRID_KD = DllStructGetSize($tRID_KD)
$tRIH = DllStructCreate($tagRAWINPUTHEADER)
$iRIH = DllStructGetSize($tRIH)
$iNumDevices = 1
DllStructSetData($tRID_KD, 'usUsagePage', 0x01)
DllStructSetData($tRID_KD, 'usUsage', 0x06)
DllStructSetData($tRID_KD, 'dwFlags', BitOR($RIDEV_NOLEGACY, $RIDEV_INPUTSINK))
DllStructSetData($tRID_KD, 'hwndTarget', $hGUI)
_RegisterRawInputDevices($pRID_KD, $iNumDevices, $iRID_KD)
While 1
Sleep(20)
WEnd
GUIDelete()
Func OnInput($hwnd, $iMsg, $iwParam, $ilParam)
Local $tRI_KD, $pRI_KD, $iRI_KB
Local $iSize
$tRI_KD = DllStructCreate($tagRAWINPUT_KEYBOARD)
$pRI_KD = DllStructGetPtr($tRI_KD)
$iRI_KB = DllStructGetSize($tRI_KD)
_GetRawInputData($ilParam, $RID_INPUT, $pRI_KD, $iRI_KB, $iRIH)
If Not @error Then
ConsoleWrite(DllStructGetData($tRI_KD, 'VKey') & @CR)
$a= DllStructGetData($tRI_KD, 'VKey')
;~ MsgBox(0, "VKey", DllStructGetData($tRI_KD, 'VKey') )
;~ MsgBox(0, "$a", $a)
EndIf
$tRI_KD = 0
$tRI_KD = DllStructCreate($tagRID_DEVICE_INFO_HID)
$pRI_KD = DllStructGetPtr($tRI_KD)
$iRI_KB = DllStructGetSize($tRI_KD)
_GetRawInputDeviceInfo($hwnd, $RIDI_DEVICEINFO, $pRI_KD, $iRI_KB)
If Not @error Then
$b=DllStructGetData($tRI_KD, 'dwVendorId')
;~ MsgBox(0, "$a und $b", $a&" "&$b)
$c=$a&$b
;~ MsgBox(0,"",$c)
EndIf
If $c=170 And Not ProcessExists("kodi.exe") Then
$c=0
Run("C:\Program Files (x86)\Kodi\kodi.exe")
WinActivate("Kodi")
WinWaitActive("Kodi")
Send("!{ENTER}")
EndIf
If $c=170 And ProcessExists("kodi.exe") Then
$c=0
ConsoleWrite("kodi laeuft "& @CRLF)
WinActivate("Kodi")
WinWaitActive("Kodi")
$state= WinGetState("Kodi")
;~ MsgBox(0,"",$state)
If $state<>47 Then Send("!{ENTER}")
ConsoleWrite("$state: " & WinGetState("Kodi")& @CRLF)
EndIf
$tRI_KD = 0
Return 'GUI_RUNDEFMSG'
EndFunc
Func _EXIT()
GUIDelete()
Exit
EndFunc
Alles anzeigen
Zu diesem Script gibt es Anpassungen.
1. Muss man herausfinden welche Keystrokes von der FB gesendet werden.
2. Der Pfad zu Kodi muss evtl. angepasst werden.
3. so nicht lauffähig, da AUTOIT und ein Include benötigt wird.
Anleitung:
1. Autoit Installieren
2.RawInput.zip laden und enpacken und ins Include Verzeichnis von Autoit kopieren.(C:\Program Files (x86)\AutoIt3\Include)
3. SciTE Script Editor starten und den code hier dort einfügen. Abspeichern!
3. In Zeile 64 ";~" entfernen um einen benötigten Wert als Textbox zu bekommen. WERT SPÄTER AUFSCHREIBEN!
4. In Zeile 69 den Pfad zur Kodi.exe anpassen.
5. Speichern
6. Tools -> Go drücken und nichts weiter.
7. auf der FB die gewünschte taste drücken
8. wert aus der zuerst angezeigten Textbox aufschreiben.
9. alle weiteren Boxen wegklicken und das script beenden. Kodi beenden.
10. in den zeilen 67 und 74 $c=170 gegen euren wert tauschen ($c= 123)
11 in zeile 64 ";~" wieder einsetzen oder ganze zeile löschen.
12. speichern und testlauf machen (Tools -> go)
13. wenn alles funktioniert auf Tools -> build klicken und die komplierte exe in den autostart oder wohin auch immer verfrachten.
P.S. Evtl. werde ich das script noch splitten und ohne bastelei eurerseits als programm anbieten.
Wer Rechtschreibfehler findet kann sie gern seinen Kindern als Mahnendes Beispiel zeigen.