Autoit Objekte

  • Hi,
    ich arbeite häufiger mit Objekten und dabei ist mir immer das selbe Problem aufgefallen: Welche Methoden gibt es? Beispielsweise bei der System.Collections.ArrayList... Ist ja nichts neues, dass nur ein Bruchteil der Methoden funktionieren/implementiert wurden, wieso auch immer. Wenn man sich die offizielle msdn doku dazu anschaut wird schnell kla, das viele nützliche Methoden fehlen. Kann man eine Liste der verfügbaren Methoden ausgeben?

    Wäre schön, wenn sowas mal funktionieren würde:

  • Für deinen speziellen Fall kann es sein, dass du hier die Antwort findest: Klick Mich.

    Allgemein sollten auch in AutoIt keine Methoden explizit implementiert werden müssen. Das Objekt liefert eigentlich alles, was es zum funktionieren braucht. Warum es dennoch nicht immer funktioniert weiß ich leider nicht, da muss ein Objektguru ran.

    Edit: Für dein spezielles Beispiel hab ich den Fehler gefunden: Die Methode IndexOf kann mit einem Parameter IndexOf(Objekt, Startposition) verwendet werden. Scheinbar wird die Startposition nicht per Default auf 0 gesetzt, sodass man das manuell machen muss:

    AutoIt
    $AList = ObjCreate("System.Collections.ArrayList")
    ;////Einträge hinzufügen///////////
    $AList.add ("Test1") ; Position 0
    $AList.add ("Test6") ; Position 1
    $AList.add ("Test4") ; Position 2
    $AList.add ("Test2") ; Position 3
    $AList.add ("Test3") ; Position 4
    $AList.add ("Test5") ; Position 5
    ConsoleWrite("indexof: " & $AList.IndexOf("Test4", 0) & @CRLF)

    lg
    M

  • @AutoITBengel

    Grundsätzlich kannst Du davon ausgehen, dass die statischen Methoden von COM nicht unterstützt werden. (In der MSDN werden diese Methoden mit einem gelben S markiert)

    Gerne bemühe ich kurz die PowerShell, um schnell zu schauen, was mit dem COM-Objekt möglich ist.

    Code
    New-Object -ComObject System.Collections.ArrayList | Get-Member

    Hier siehst Du, was der Aufruf ausgibt.

    Spoiler anzeigen