_OL_Example_SentMail_Event

  • Du greifst ja mit _OL_FolderAccess auf den jeweiligen Kalender zu.
    Mit dem im Array zurückgegebenen Folder-Objekt rufst Du dann _OL_FolderGet auf. Im Feld 5 des Arrays kriegst Du dann den "Displayname" des Folders zurück.

  • Spoiler anzeigen

    Local $aFolder = _OL_FolderAccess($oOL, $OutlookKalender, $olFolderCalendar)

    If @error Then

    MsgBox($MB_ICONERROR, "Error", "_OL_FolderAccess returned @error = " & @error & ", @extended = " & @extended, 0,"")

    Return

    EndIf

    _ArrayDisplay($aFolder, "$aFolder")

    Global $oStore = $aFolder[1].Store

    Global $oDefaultFolder = $oStore.GetDefaultFolder("")

    Local $aResult = _OL_FolderGet($oOL, $oDefaultFolder)

    _ArrayDisplay($aResult, "$aResult")

    water, vielen Dank!

    So funktioniert es.

  • Das ist doppelt gemoppelt. So geht's auch:

    Code
    Local $aFolder = _OL_FolderAccess($oOL, $OutlookKalender, $olFolderCalendar)
    If @error Then Return MsgBox($MB_ICONERROR, "Error", "_OL_FolderAccess returned @error = " & @error & ", @extended = " & @extended)
    _ArrayDisplay($aFolder, "$aFolder")
    
    Local $aResult = _OL_FolderGet($oOL, $aFolder[1])
    If @error Then Return MsgBox($MB_ICONERROR, "Error", "_OL_FolderGet returned @error = " & @error & ", @extended = " & @extended)
    _ArrayDisplay($aResult, "$aResult")
  • water, aber leider nicht immer.

    Spoiler anzeigen

    $OutlookKalender = "Outlook-Datendatei\"

    Local $aOL_Item = _OL_ItemFind($oOL, $OutlookKalender, $olAppointment, "", "Subject", $Betreff_GK, "EntryID,Subject,Location,Body,Start,End", "", 1)

    _ArrayDisplay($aOL_Item, "_OL_ItemFind")

    So wird mein Item in einem bestimmten Kalender z.B. "Test" gefunden.

    Es muss doch jetzt möglich sein, aufgrund des gefundenen Items, den Kalender auszugeben, in dem sich das Item befindet.

    Der Pfad müsste dann so als Beispiel aussehen: "Outlook-Datendatei\Test"

    Ich komme einfach nicht weiter!

  • Wenn Du mit _OL_ItemGet das Objekt des jeweiligen Items holst, dann kannst Du mit $oFolder = $oObject.Parent den Folder dazu ermitteln. Mit $oFolder.FolderPath solltest Du den vollständigen Pfad erhalten.

  • Spoiler anzeigen

    Local $aFolder = _OL_FolderAccess($oOL, $OutlookKalender, $olFolderCalendar)

    If @error Then Return MsgBox($MB_ICONERROR, "Error", "_OL_FolderAccess returned @error = " & @error & ", @extended = " & @extended)

    _ArrayDisplay($aFolder, "$aFolder")

    Local $aResult = _OL_FolderGet($oOL, $aFolder[1])

    If @error Then Return MsgBox($MB_ICONERROR, "Error", "_OL_FolderGet returned @error = " & @error & ", @extended = " & @extended)

    _ArrayDisplay($aResult, "$aResult")

    Local $oObject = $aResult[1]

    Local $oFolder = $oObject.Parent

    Local $Path = $oFolder.FolderPath

    water, wenn es so richtig ist, wird der $oFolder, noch der $oFolder.FolderPath nicht ermittelt.

  • Ich ging vom Ergebnis von _OL_ItemFind von Deinem vorigen Beispiel aus.
    D.h. vom Item -> Folder -> Folderpfad -> zerlegen und die gewünschten Infos extrahieren

    D.h. wir sollten zuerst klären, ob Du vom Folder oder vom item ausgehen willst/musst?

  • Zitat

    D.h. wir sollten zuerst klären, ob Du vom Folder oder vom item ausgehen willst/musst?

    Vom Item aus.

    Spoiler anzeigen

    Local $oOL = _OL_Open()

    Local $aOL_Item = _OL_ItemFind($oOL, $OutlookKalender, $olAppointment, "", "Subject", $Betreff_GK, "EntryID,Subject,Location,Body,Start,End", "", 1)

    Local $aOL_Properties[1] = ["Subject=" & $Betreff_GK]

    Local $oObject = _OL_ItemModify($oOL, $aOL_Item[1][0], Default, $aOL_Properties)

    Local $oFolder = $oObject.Parent

    Local $Path = $oFolder.FolderPath

    MsgBox(1, "", $Path)

    Mit _OL_ItemModify funtioniert es.

    Übrigens, für Deine UDF und Hilfe möchte ich Dir nochmals sehr danken. :)

  • So, das war jetzt eine ziemliche Doktorarbeit X/

    _OL_ItemFind erlaubt nur die Rückgabe von direkten Properties eines Items. Das Item Objekt und das Folder Objekt gehören da leider nicht dazu.
    Ich habe nun _OL_ItemFind (testweise) so angepasst, dass die folgenden beiden "pseudo properties" (@ItemObject und @FolderObject) das Item Objekt und das Folder Objekt zurückgeben.


    Kannst Du das bitte testen und mir dann sagen, ob es Deine Wünsche erfüllt?
    Falls es passt, dann erweitere ich die Funktionalität und baue sie in die OutlookEX UDF ein.

    Das nachfolgende Testskript baut auf dem _OL_ItemFind.au3 Beispielskript auf:

  • water, es gib ein Problem mit dem Array.

    $aItems = _OL_ItemFindEX($oOL, $aFolder[1], $olAppointment, "", "Subject", $Betreff_GK, "EntryID,@FolderObject,@ItemObject,Subject,Location", "", 1)

    Wenn ich das "EntryID,Subject,Location,Body,Start,End" einsetze, funktoniert es.

    Gib mir dann natürlich kein @FolderObject,@ItemObject zurück.

  • Definiere "Problem".

    Wie sieht der Array aus?
    Welche Werte haben @error und @extended?

  • Kannst Du bitte die aktuellste Version (1.6.3.0) der OutlookEX UDF herunterladen und OutlookEX.au3 und OutlookEX_Base.au3 in den UDF Verzeichnis kopieren?
    Mit der habe ich zuletzt getestet und da funktioniert alles problemlos.

  • :)