Outlook Kalender aus Öffentliche Ordner den Favoriten hinzufügen Outlook 64 Bit Version

  • Hallo!

    Ich richte mich mit diesem Post eigentlich direkt an Water, bin aber über jede Hilfe dankbar.

    Ich möchte per Script einen öffentlichen Kalender den Favoriten hinzufügen, damit der Kalender direkt im Outlook unter Kalender aufscheint.

    Dazu habe ich das Web durchsucht und bin auf einen Forumseintrag von Water im englischen Forum gestoßen.

    Spoiler anzeigen

    Leider ist diese Funktion (_OL_NavigationFolderSet) noch nicht in der OutlookEX integriert.

    Water hat dem Suchenden im englischen Forum diesen Code gegeben:

    C
    #include "..\OutlookEX.au3"
    $oNamespace = $oOL.Application.GetNamespace("MAPI")
    $oPane = $oOL.Application.ActiveExplorer.NavigationPane
    $oModule = $oPane.Modules.GetNavigationModule(0)
    $oGroup = $oModule.NavigationGroups.GetDefaultNavigationGroup(4)
    $aFolder = _OL_FolderAccess($oOL, "*\Outlook-UDF-Test")
    $oNavFolder = $oGroup.NavigationFolders()
    $oNavFolder.Add($aFolder[1])

    Je nachdem was ich bei GetNavigationModule und GetDefaultNavigationGroup eintrage erhalte ich entweder @error 1 oder -2147352567

    Hier noch mein Testcode:

    Spoiler anzeigen

    Danke für eure Hilfe.

    If not :?: then ?( else :thumbup:

  • Oh Gott, das ist ja schon wieder zwei Jahre her.
    Hab was versprochen, aber dann die Umsetzung verpennt.

    Ich schaue mir das am nächsten verregneten WE mal an. Ehrlich ;)

  • Habs schnell mal getestet (mit Outlook 2016). Läuft 1A:

  • Hallo Water!

    Ich habe es noch einmal getestet.

    Mit Mailordner funktioniert es solange es ein lokaler Mailordner ist und keiner der im öffentlichen Ordner vorhanden ist.

    Verwendet man Kalender funktioniert es weder mit lokalen Kalendern noch mit denen die im öffentlichen Ordner vorhanden sind.

    Hier die Rückgabewerte von Consolewrite, wenn man einen Kalender aus dem öffentlichen Ordner verwendet:

    Code
    0-1 $oOL.Application.GetNamespace
    0-0 $oOL.Application.ActiveExplorer.NavigationPane
    0-0 $oPane.Modules.GetNavigationModule($olModuleCalendar)
    -2147024809-0 $oModule.NavigationGroups.GetDefaultNavigationGroup($olFavoriteFoldersGroup)
    0-0 _OL_FolderAccess($oOL, "Öffentliche Ordner - Max.Mustermann@Musterland.com\Alle Öffentlichen Ordner\Mein Kalender")
    1-0 $oGroup.NavigationFolders()
    1-0 $oNavFolder.Add($aFolder[1])

    If not :?: then ?( else :thumbup:

  • Wirf mal die Zeile

    Code
    _OL_ErrorNotify(2)

    am Anfang des Skripts ein, dann erhalten wir umfangreiche Fehlermeldungen.

  • Hallo Water!

    Zum Testen habe ich diese Version deines Scripts benützt.

    Spoiler anzeigen

    Ergebnis:

    Spoiler anzeigen

    If not :?: then ?( else :thumbup:

  • Bisher habe ich nur Mailordner zu Favoriten hinzugefügt.
    Was ich dem Internet entnehme, müssen Shared Folder anders behandelt werden, daher die Fehlermeldung.
    Forschung ist angesagt :)

  • So funktioniert es auch mit öffentlichen Ordnern.
    Hinweis: Es können nur öffentliche Ordner aus dem Favoriten Ordner dieses öffentlichen Ordners in die lokalen Favoriten übernommen werden.

  • Hallo Water!

    Hinweis: Es können nur öffentliche Ordner aus dem Favoriten Ordner dieses öffentlichen Ordners in die lokalen Favoriten übernommen werden.

    Das währe genau das was ich brauche, Favoriten von öffentliche Ordner im öffentlichen Ordner zu erstellen.

    Könntest du mir bitte dabei helfen!?

    Danke


    edit:

    Ich habe mich daran versucht aber bin bisher gescheitert.

    Spoiler anzeigen

    Dazu hatte ich diesen VB Code als Vorlage.

    Code
    Set olkApp = CreateObject("Outlook.Application")
    Set olkSes = olkApp.GetNameSpace("MAPI")
    Set olkFolder = olkSes.GetDefaultFolder(olPublicFoldersAllPublicFolders)
    Set olkFolder = olkFolder.Folders("Ordner1")
    olkFolder.AddToPFFavorites

    Quelle: https://administrator.de/forum/publicfo…ten-216099.html

    Den habe ich auch noch gefunden:

    Quelle: https://stackoverflow.com/questions/7927…-folder-of-mail

    If not :?: then ?( else :thumbup:

    2 Mal editiert, zuletzt von Concara (22. März 2019 um 11:02)

  • Concara 21. März 2019 um 16:59

    Hat das Label [ offen ] hinzugefügt.
  • Mein obiges Script funktioniert, wenn ich im öffentlichen Ordner von Hand einen Ordner zu den Favoriten des öffentlichen Ordners hinzufüge.

    Kannst Du das bitte mal testen, ob es auch bei Dir funktioniert?

    Falls ja, können wir in einem zweiten Schritt den oben beschriebenen händischen Prozess automatisieren.

  • Hallo Water!

    Ja dein Script funktioniert so. Aber das macht Outlook an und fürsich automatisch sobald man einen Ordner zu den Favoriten des öffentlichen Ordners hinzufügt.

    Falls ja, können wir in einem zweiten Schritt den oben beschriebenen händischen Prozess automatisieren.

    Genau das würde ich benötigen.

    Danke für deine Hilfe

    If not :?: then ?( else :thumbup:

  • Ich habe noch folgendes Skript gefunden, das beides macht:
    https://www.autoitscript.com/forum/topic/13…comment=1026192

  • Hallo Water!

    Leider funktioniert das nicht.

    Code
    #include <OutlookEx.au3>
    
    $oOutlook = _OL_Open()
    _OL_ErrorNotify(1)
    $Local_Folder = _OL_FolderAccess($oOutlook, "Öffentliche Ordner - Max.Mustermann@Musterland.at\Alle Öffentlichen Ordner\Mein Kalender", $olFolderCalendar)
    ConsoleWrite(@ScriptLineNumber - 1 & ": " & @error & "-" & @extended & @CRLF)
    $Local_Folder[1].AddToPFFavorites
    ConsoleWrite(@ScriptLineNumber - 1 & ": " & @error & "-" & @extended & @CRLF)

    Ich erhalte:

    If not :?: then ?( else :thumbup:

  • Concara 25. März 2019 um 12:27

    Hat das Label von [ offen ] auf [ gelöst ] geändert.
  • Ich habe herausgefunden, dass es an der Officeversion liegt, weshalb das Script nicht funktioniert.

    Bei der 64 Bit Version hat die Funktion AddToPFFavorites einen Bug.

    Siehe https://officespdev.uservoice.com/forums/224641-…avorites-method

    Somit wird das nichts mit meinem Script.

    Schade aber danke für deine Hilfe Water!

    Edit:

    Ich kann es nicht lassen :)

    Habe noch etwas weiter im WWW gesucht und diesen Beitrag gefunden.

    https://social.msdn.microsoft.com/Forums/en-US/1…orum=outlookdev

    Water sagt dir RDOSession.Logon etwas?

    Kann man das mit deiner UDF (Script) verwenden?

    Und wenn ja wie?

    If not :?: then ?( else :thumbup:

    Einmal editiert, zuletzt von Concara (25. März 2019 um 13:01) aus folgendem Grund: Noch etwas gefunden

  • Concara 25. März 2019 um 12:29

    Hat das Label von [ gelöst ] auf [ offen ] geändert.
  • Concara 25. März 2019 um 12:29

    Hat den Titel des Themas von „Outlook Kalender aus Öffentliche Ordner den Favoriten hinzufügen“ zu „Outlook Kalender aus Öffentliche Ordner den Favoriten hinzufügen Outlook 64 Bit Version“ geändert.
  • RDO steht für Redemption Data Objects und ist eine Software von Dmitry Streblechenko:

    http://dimastr.com/redemption/home.htm


    Habe mit RDO noch nicht gearbeitet - vermute aber, dass dafür eine eigene UDF notwendig wäre.
    Mit der OutlookEX UDF arbeitet RDO nicht zusammen.

  • Concara 20. August 2020 um 11:06

    Hat das Label von [ offen ] auf [ gelöst ] geändert.
  • Hallo

    Mitlerweile muss Microsoft den Fehler in der 64 Bit Version behoben haben.

    Dieser Code funktioniert jetzt:

    Code
    #include <OutlookEx.au3>
    
    $oOutlook = _OL_Open()
    _OL_ErrorNotify(1)
    $Local_Folder = _OL_FolderAccess($oOutlook, "Öffentliche Ordner - Max.Mustermann@Musterland.at\Alle Öffentlichen Ordner\Mein Kalender", $olFolderCalendar)
    ConsoleWrite(@ScriptLineNumber - 1 & ": " & @error & "-" & @extended & @CRLF)
    $Local_Folder[1].AddToPFFavorites
    ConsoleWrite(@ScriptLineNumber - 1 & ": " & @error & "-" & @extended & @CRLF)

    If not :?: then ?( else :thumbup: