1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. caipitrooper

Beiträge von caipitrooper

  • DllCall, Rückgabe der Werte in den Parametern

    • caipitrooper
    • 6. Juni 2016 um 21:57

    Hab jetzt die Lösung:

    AutoIt
    $myState=""
    $myID = DllCall("pacdrive32.dll", "int", "PacInitialize")
    If IsArray($myID) And $myID[0] <> 0 Then
    	$a_Result = DllCall("pacdrive32.dll", "BOOLEAN", "USBButtonGetState", "int", $myID, "BOOLEAN*", $myState)
    	MsgBox(0, "", $a_Result[2])
    EndIf

    $myID durfte keinen Index haben und als Parameter musste ich $myState anstatt 0 übergeben.
    Ich hab keine Ahnung, warum, aber Hauptsache, es funkt. ^^

    Vielen Dank für die Hilfe.

    Caipitrooper

  • DllCall, Rückgabe der Werte in den Parametern

    • caipitrooper
    • 6. Juni 2016 um 21:39

    Nein, geht leider nicht. Ich bekomme den Aufruf auch nicht mehr erfolgreich zurückgemeldet,
    ($a_Result[0] ist jetzt 0, war zumindest vorher mit meinem Script 1)
    $a_Result[2] ist 0, egal ob ich drücke oder nicht.

  • DllCall, Rückgabe der Werte in den Parametern

    • caipitrooper
    • 6. Juni 2016 um 20:20

    Hallo zusammen,
    ich habe ein Problem, den Status eines HID USB-Device zurückzulesen.
    Bei dem USB-Device handelt es sich um einen USB-Button der Fa. USBBUTTON(?).
    Es ist keine Dokumentation vorhanden, die Feinheiten habe ich mir aus deren SDK herausgelesen.
    Ich kann bereits das Device initialisieren und auch die LED-Farben ändern.
    Leider wird zur Abfrage des Tastenstatus (gedrückt, nicht gedrückt) der Status als Pointer in den Parametern übergeben.

    In der PacDrive.h steht:
    PACDRIVE_API BOOL __stdcall USBButtonGetState(INT id, PBOOL state);

    Daraus habe ich nach Recherche im Internet und hier im Forum folgendes gemacht:

    Code
    $result=""
    $struct=DllStructCreate("BOOLEAN")
    $myState=DllStructGetPtr($struct)
    
    
    $myID=DllCall("pacdrive32.dll","int","PacInitialize")
    If $myID[0]>0 Then
    	$result=DllCall("pacdrive32.dll","BOOLEAN","USBButtonGetState","int",$myID,"ptr",$myState)
    	MsgBox(0,"",$mystate&" "&DllStructGetData($struct,1))
    EndIf

    In der Messagebox bekomme ich die Adresse der Variablen $mystate angezeigt. Das Ziel, auf das $mystate zeigt,
    ist jedoch immer 0, egal, ob ich die Taste drücke oder nicht.
    Was mache ich falsch?

    Vielen Dank im Voraus, Caipitrooper
    :)

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™