VBS-Skript mit Objektaufruf in autoit umsetzen

  • Ich bin grad dabei, meine vbs auf autoit umzustellen, folgendes Konstrukt kriege ich aber einfach nicht aufglöst:

    for each Obj in GetObject("winmgmts:{impersonationLevel=impersonate}").InstancesOf ("Objectname")
    Obj.Method (params)
    Next

    Einmal editiert, zuletzt von LilProgger208 (30. Juni 2008 um 23:05)

  • also ich habe jetzt mal die variablen angepasst ($ davor) und das each wggelassen - nur kann er mit get object nichts anfangen

    mit objget scheiterter bei obj.methodname:


    Neu AutoIt v3 Script.au3 (4) : ==> The requested action with this object has failed.:

    edit: ok ich glaub ich weiß woran es liegt: wenn der methodenaufruf einen errorlevel setzt, wird der nicht in @error übernommen sondern bringt das ganze script zum absturz, kann das sein?

    2 Mal editiert, zuletzt von LilProgger208 (28. Juni 2008 um 17:44)

  • Richtig :)
    Du musst das Error-Objekt selbst erstellen: ( Aus Hilfe unter COM-Reference)

    Spoiler anzeigen
    [autoit]


    $oMyError = ObjEvent("AutoIt.Error","MyErrFunc") ; Install a custom error handler

    [/autoit] [autoit][/autoit] [autoit]

    ; Performing a deliberate failure here (object does not exist)
    $oIE = ObjCreate("InternetExplorer.Application")
    $oIE.visible = 1
    $oIE.bogus
    if @error then Msgbox(0,"","the previous line got an error.")

    [/autoit] [autoit][/autoit] [autoit]

    Exit

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ; This is my custom error handler
    Func MyErrFunc()
    $HexNumber=hex($oMyError.number,8)
    Msgbox(0,"","We intercepted a COM Error !" & @CRLF & _
    "Number is: " & $HexNumber & @CRLF & _
    "Windescription is: " & $oMyError.windescription )

    [/autoit] [autoit][/autoit] [autoit]

    Return Seterror(1,0,0) ; something to check for when this function returns
    Endfunc

    [/autoit]