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.
_OL_Example_SentMail_Event
- wuff100
- Erledigt
-
-
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:
-
-
water, aber leider nicht immer.
$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.
-
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 extrahierenD.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.
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
_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:
CodeIf @error <> 0 Then Exit MsgBox(16, "OutlookEX UDF", "Error creating a connection to Outlook. @error = " & @error & ", @extended = " & @extended)If @error <> 0 Then Exit MsgBox(16, "OutlookEX UDF - Manage Test Environment", "Error creating the test environment. @error = " & @error & ", @extended = " & @extended);------------------------------------------------------------------------------------------------------------------------------------------------;------------------------------------------------------------------------------------------------------------------------------------------------$aItems = _OL_ItemFindEX($oOutlook, $aFolder[1], $olAppointment, "", "", "", "EntryID,@FolderObject,@ItemObject,Subject,Location", "", 1)_ArrayDisplay($aItems, "OutlookEX UDF: _OL_ItemFind Example Script - Find appointments by partial search")MsgBox(48, "OutlookEX UDF: _OL_ItemFind Example Script", "Error finding an appointment. @error = " & @error & ", @extended: " & @extended)Func _OL_ItemFindEX($oOL, $vFolder, $iObjectClass = Default, $sRestrict = "", $sSearchName = "", $sSearchValue = "", $sReturnProperties = "", $sSort = "", $iFlags = 0, $sWarningClick = "")$sReturnProperties = "EntryID,Start,End,Subject,IsRecurring" ; Same as returned by _OL_AppointmentGetIf ($sSearchName <> "" And $sSearchValue = "") Or ($sSearchName = "" And $sSearchValue <> "") Then Return SetError(1, 0, "");~ If Not __OL_CheckProperties($oItem, $aReturnProperties, 1) Then Return SetError(@error, @extended, "") ; <== __OL_CheckProperties erweiternIf $sSearchName <> "" And StringInStr($oItem.ItemProperties.Item($sSearchName).value, $sSearchValue) = 0 Then ContinueLoopIf BitAND($iFlags, 2) = 2 And $iCounter = 1 Then $aItems[0][$iIndex - 1] = $oItem.ItemProperties.Item($aReturnProperties[$iIndex]).Name ; <== Header erweitern$iCounter += _OL_ItemFind($oOL, $vFolder, $iObjectClass, $sRestrict, $sSearchName, $sSearchValue, $sReturnProperties, $sSort, $iFlags, $sWarningClick) -
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. -
-
Sorry, hatte Deine OutlookExConstants.au3 noch drin!
-
-