Object Item auf Existenz prüfen

  • Hi,
    ich versuch auf eine bestimmte Firewall Regel zuzugreifen, bzw. auf ein Item eines "Regel" Objekts:

    Code
    Func FirewallRuleExists($sName)
        Local $oPolicy = ObjCreate("HNetCfg.FwPolicy2")
    	Return (IsObj($oPolicy.Rules.Item($sName))) ? 1 : 0
    
    
    EndFunc

    Das Problem ist, dass wenn beispielsweise $oPolicy.Rules.Item("Test") nicht existiert, ein Fehler geworfen wird:
    The requested action with this object has failed.:Return (IsObj($oPolicy.Rules.Item($sName))) ? 1 : 0

    $oPolicy.Rules ist ok, es geht nur ums Item...

    Kennt man ja auch vom Dictionary, daher hab ichs mit $oPolicy.Rules.Exists("Test") versucht, aber das "$oPolicy.Rules" Objekt ist kein Dictionary :/

    Hat jemand ne idee, wie ich den error abfangen kann?

  • Das mit objevent ist ne super idee! Kann ich das so einrichten, dass ich nur von diesem "HNetCfg.FwPolicy2" Objekt den Fehler abfange und normale syntax Fehler weiterhin zum Crash führen?

    Wenn ich
    Global $oErrorHandler = ObjEvent("HNetCfg.FwPolicy2", "_ErrFunc")
    benutze, crasht AutoIt und wenn ich
    Global $oErrorHandler = ObjEvent("AutoIt.Error", "_ErrFunc")
    benutze, werden halt alle Arten von Fehlern umgangen

  • ok läuft, habs jetzt so gemacht:

    Einmal editiert, zuletzt von AutoITBengel (18. Februar 2016 um 06:38)