Controller auslesen

  • Hallo,

    ich versuche meinen Controller auzulesen, dafür gibt es ja reichlich Beispiele. Hier nur ein paar:


    https://www.autoitscript.com/forum/topic/10953-joystick-udf/

    https://www.autoitscript.com/f…36-xbox-controller-input/


    Das Beispiel aus dem ersten Link (joystick-udf) läuft bei mir wunderbar (Post 4). Wenn ich mir den Code allerdings für meine Bedürfnisse umbaue geht nichts mehr. Ich benötige nämlich kein GUI. Wenn ich das aber weglasse funktioniert es nicht. Ist das nur bei mir so?

    Zum testen bitte mal Zeile 1 und 2 ein bzw auskommentieren und mich erleuchten ;)


    Danke




  • Teste mal dieses Script:

  • Da passiert jetzt mit und ohne GUI gar nichts


    Code
    ==========================================================
    [0]0
    [1]0
    [2]0
    [3]0
    [4]0
    [5]0
    [6]0
    [7]0
    ==========================================================
  • Da passiert jetzt mit und ohne GUI gar nichts

    Ich hatte noch ein paar Fehler in dem Script, die ich nun korrigiert habe... teste noch mal... passiert nichts... du bekommst nur das als Ausgabe, was du hier gepostet hast? :/


    PS: Sleep(3000) hast du gesehen?

  • Ich Idiot!!!


    $aJoy[0] = DllStructGetData($tempHandle, 1, 3) ; X Axis

    ...


    Das kann so nicht gehen... weil die Struct ist ja kein Array mehr, deshalb muss die 1 bei DllStructGetData weg!

    $aJoy[0] = DllStructGetData($tempHandle, 3) ; X Axis

    ...


    Habe die Stellen nun auch korrigiert, jetzt sollte es aber funktionieren!

  • Wir nähern uns der Sache :)

    Aber leider bleiben die Werte unverändert, egal was ich mit dem Gampad auch anstelle.


  • Klar, mit GUI verändert sich jeder Wert:

  • Hast du den letzten Test mit meinem Script ohne und mit GUI gemacht?

    Mit GUI läuft dein Script jetzt auch, hatte ich ganz vergessen zu testen...


    geht nichts mehr... was heißt das konkret?

    Naja, in der Ausgabevariablen stehen immer Nullen wenn ich keine GUI dabei habe (siehe Post 3). Sobald ich eine GUI verwende werden alle Controller Werte korrekt ausgeben (siehe Post 9).

    Und das in den Orginalscripts von 2005, in meinen Versuch die GUI loszuwerden (Post 1) und in deiner Variante.

    Funktioniert es den bei dir ohne GUI?

  • Funktioniert es den bei dir ohne GUI?

    Ich habe momentan kein GamePad angeschlossen und bekomme deshalb den Error $JOYERR_PARMS... werde morgen versuchen das von meiner PS4 anzuschließen... melde mich dann wieder.

    $JOYERR_PARMS = 165 ; Windows NT/2000/XP: The specified joystick identifier is invalid.

  • Habe das PS4-GamePad vorhin dann doch noch angeschlossen... und bei mir funktioniert es mit und ohne GUI!


    Hier noch mal zur Sicherheit, die Version ohne GUI, mit der ich erfolgreich getestet habe.

  • Sehr merkwürdig. Mein XBox Controller braucht weiterhin eine GUI um ausgelesen werden zu können. Trotzdem danke für deine Hilfe.

    Ich werde da wohl erstmal mit leben müssen.


    Edit: Oh wow, Xbox ist das Stichwort. Der 8Bitdo Controller funktioniert sofort^^

    Nicht das es die Sache mit der GUI erklärt, aber das ist ja jetzt mal ein ganz anderer Ansatz.


    Edit 2: Um die Sache rund zu machen: https://www.autoitscript.com/f…-for-xbox-360-controller/

    Funktioniert auch bei xbox Controllern völlig ohne GUI. Ich brech ab hier 8o

  • Ich werde da wohl erstmal mit leben müssen.

    Nun ja, das ist aber nicht wirklich ein Problem... wenn du die GUI nicht brauchst, dann minimiere sie doch einfach beim Start...


    Hier noch eine letzte Version mit minimierter GUI, in der ich auch alle nicht mehr benötigten Zeilen entfernt habe.


    Im Anhang noch XInput inkl. Demo aus deinem 2. Link, etwas aufgepeppt und von Fehlern bereinigt.