OutlookEX Udf err. AutoIt3.exe ended.rc:-1073741819

  • Ich schreibe gerade ein Script, welche sich Daten aus einer Webseite holt und diese dann in Outlook einträgt.

    Das Script läuft 5-10x ohne Probleme, dann wieder Abstutz mit dem Fehler ... ended.rc:-1073741819.

    Zum Testen des Scripts verwende ich immer die gleichen Webseiten, so ergeben sich immer die gleichen Einträge, aber das Verhalten ist für mich unberechenbar. Nun habe ich mir an verschiedenen stellen in die Console schreiben lassen wo sich das Script gerade befindet und konnte ermitteln, dass es z.B. im Befehl _OL_ItemCreate oder im Befehl _OL_ItemFind abstürzt.


    Konsole:

    INFO from function SendAppontment: Start (2022/03/29 09:00:00-2022/03/29 16:42:00 Titel.. ganztags) -- #2 End

    INFO from function Delete OutlookDay: Start (2022/03/30 00:00:00) #2 (30-03-2022 00:00 -- 31-03-2022 00:00) #3 End

    INFO from function Create Appointment: Start

    INFO from function SendAppontment: Start (2022/03/30 09:00:00-2022/03/30 16:42:00 Titel.. ganztags) --

    !>16:08:47 AutoIt3.exe ended.rc:-1073741819


    Ich verwende:

    Win 10 mit Outlook 2016

    OutlookEX in Version 1.7.00 .

    SciTE 32-bit Version 4.2.0

    Hat jemand einen Tip was ich noch testen kann oder woran es liegen könnte

    Danke Reiner

  • Bringt SciTe noch andere Fehlermeldungen bevor es endet?

  • Nein, das Programm wird an dieser Stelle beendet, ohne Fehlermeldung.

    Du bringst mich auf eine Idee, Ich lass mir mal die Fehlermeldung in die console schreiben ……. Da ich sie im Moment nur in meiner GUI Anzeige……

    Es wurde kein Fehler in die console geschrieben

    • Füge mal nach _OL_Open die Zeile _OL_ErrorNotify(2) ein. Vielleicht ist der Absturz nur ein Folgefehler.
    • Verwendest Du die 32 oder die 64 Bit-Version von Outlook?
    • Läuft das Skript als Administrator (#RequireAdmin)?
  • Ist doch schon was.

    Jetzt musst Du nur noch rausfinden, welche Zeile das in Deinem Skript ist. Da Du nur eine Funktion gepostet hast, ist das von hier aus etwas schwer zu erkennen ;)

    Klingt aber, als ob Du einen falschen Index für den Array verwendest.

    Beispiel:
    Ein Array hat 4 Elemente, dann laufen die gültigen Indexwerte von 0 bis 3.
    Oft sieht Code wie folgt aus:

    Code
    For $i = 0 to UBound($aArray)
    
    ; müsste aber heißen:
    
    For $i = 0 to UBound($aArray) - 1
  • Frage?

    Ich darf doch das OutlookObjekt öffnen und danach mehrere Kalendereinträge (ca 50 in ca. 1min) eintragen und danach erst das Objekt schließen, oder? Oder sollte man vor und nach jeder Aktion die Verbindung neu anfordern?

  • Oh
    ich hatte den vorherigen Post nicht gesehen. Da schau ich Heute Abend gleich mal nach ....muss jetzt weg.

    Vielen Dank bis hierhin. Ich melde mich später..... .

  • Es ist nicht notwendig das Outlook Objekt immer wieder zu schließen und neu zu erstellen.

    Es gibt aber ein Limit von gleichzeitig offenen Objekten.
    Guckst Du: https://www.autoitscript.com/forum/topic/20…comment-1470916

  • Bisher konnte ich kein Loop finden, welches den falschen Array-Index benutzt. Ich suche aber weiter.....

    Ich rufe vor dem Erstellen der neuen Kalenderdaten _OL_ItemFind auf, um alle vorherigen Einträge des Tages zu erfassen und Sie anschließend zu löschen. Ich habe meine Fehler Analyse erweitert und festgestellt, dass bei dem Befehl _OL_ItemFind ab und zu ein Fehler auftritt. Err 0 / Extendet 4. Hier kommt auch die Analysemeldung von _OL_ErrorNotify(2)

    Der Befehl lautet:

    $aItems = _OL_ItemFind($oOutlook, "*\Kalender\Dienst", $olAppointment, "[Start] > '" & $dDateStart & "' AND [Start] < '" & $dDateEnd & "'", "","", "EntryID,Subject,Location", "", 1)

    Das Datum (format) ist

    $dDateStart: 15-04-2022 00:00 $dDateEnd: 16-04-2022 00:00

    Ist $olAppointment ein interne Variable? Diese habe ich nicht definiert.

  • _OL_ItemFind kennt keinen @error = 0. 0 bedeutet immer "erfolgreiche Ausführung".
    Lasst Dir mal nur die Properties "EntryID,Subject" zurückgeben. Falls das nichts nützt, dann nur "EntryID".

    Sollte das auch nichts nützen, dann ändere $iFlags von 1 auf 9. Damit werden nicht gefundene Properties als "N/A" zurückgegeben.

    $olAppointment ist eine UDF-interne Variable, definiert in OutlookEX_Base.au3

  • Ich habe noch weiter versucht den Fehler zu finden und konnte folgende Stelle in OutlookEX.au3 lokalisieren:

    In der Funktion _OLFolderAccess

    (HINWEIS: Die Zeilennummern unten, welche ich in die Konsole schreibe , sind nicht mehr Original)

    Wenn der Fehler auftrat, dann nach der Zeile 978 bei Index 2 oder 3 auf.
    Das $aFolder Array wurde immer korrekt angezeigt.

    Index 2 und der richtige Eintrag dazu wurde auch in der Konsole geschrieben vor dem Abstutz.

    Ich kann mir dies nicht erklären ?(?(?( zumal es manchmal 20x sauber durchläuft und dann wieder nicht...

    2 Mal editiert, zuletzt von Reinerm (28. März 2022 um 10:05)

  • Problem somit gelöst?

  • Warum For $iIndex = 2 To $aFolders[0] ?

    Das müsste doch bei 1 starten also: $iIndex = 1 To $aFolders[0]

    Erklärt meiner Meinung nach aber noch nicht das Proble, das ein ungültiger Zugriff erfolgt.

    Kannst du dir mal ausgeben lassen, auf Welche Zeile er zugreifen will + schauen ob diese überhaupt existiert?

    So z.B.:

    3 Mal editiert, zuletzt von Moombas (29. März 2022 um 07:59) aus folgendem Grund: War teilweise falsch gedacht.

  • Moombas

    1 ist die E-Mail-Adresse (Benutzerkonto) in Outlook der folder beginn im Array bei 2 . Das Array wurde auch immer richtig angezeigt und Index für den Zugriff war auch immer korrekt.

    water

    Ja, das Problem ist erstmal gelöst. Vielen Dank für die Hilfe und Motivation dran zu bleiben.

    Auch noch mal ganz herzlichen Dank für das Udf. Es ist phantastisch!

    Vielleicht hat noch jemand eine Idee warum es unkompiliert abstürzt.