Outlook neue Gruppe im Kalender erstellen

  • Wenn Du nach _OL_Open diese Zeilen einfügst, dann sollte es auch ohne manuellen Outlook Start funktionieren:

    [autoit]

    If $oOL.Explorers.Count = 0 Then
    Global $olFolderDisplayNormal = 0
    Global $oExplorers = $oOL.Explorers
    Global $oFolder = $oOL.GetNamespace("MAPI").GetDefaultFolder($olFolderInbox)
    Global $oExplorer = $oExplorers.Add($oFolder, $olFolderDisplayNormal)
    $oExplorer.Display
    EndIf

    [/autoit]
  • Perfekt danke, jetzt fehlt nur noch das Umbenennen und diese Outlook Sicherheitswarnung unter Win 7. Mit _OL_Open(True) habe ich es schon probiert, auch befindet sich die _OL_Warnings.exe im Skriptpfad. Sie kommt aber immer noch. Manchmal fügt Outlook jetzt die Kalender nicht ordentlich in die Gruppe hinzu, wenn ich das Skript durchlaufen lasse sind alle Testräume in der neuen Gruppe. Outlook wird beendet, ich starte Outlook neu, die Hälfte der Kalender ist nicht in der Gruppe. Egal welche, ob sie nun als erstes hinzugefügt wurden oder die letzten waren, sie sind nicht in der Gruppe. Auch egal ob Outlook läuft oder eben nicht.

    Einmal editiert, zuletzt von skripty (17. Mai 2013 um 13:32)

  • Die _OL_Warnings.exe ist nur ein Beispiel. Sie funktioniert für englische Systeme. Schau Dir den Code an und pass das Skript entsprechend an und kompiliere es neu.

  • Achso, den Post darüber hab ich nochmal editiert. Das gibt es doch nicht, die Kalender werden zur neuen Gruppe hinzugefügt, dass sehe ich auch bevor Outlook geschlossen wird. Wenn ich es dann aber neu starte, sind fünf von neun Gruppen nicht in der Gruppe sondern unter "Kalender von Personen".

    [autoit]


    $line = FileReadLine($file)
    If @error = -1 Then ExitLoop
    $folder = _OL_FolderAccess($oOL, "\\"&$line&"\", 9)
    $objFolder = $folder[1]
    $objNavFolder = $groupObj.NavigationFolders.Add($objFolder)
    $objNavFolder.Folder.Name = $line

    [/autoit]


    Bei Zeile sechs bekomme ich diese Meldung:

    OutlookEx UDF version = 0.9.0
    @AutoItVersion = 3.3.8.1
    @AutoItX64 = 0
    @Compiled = 0
    @OSArch = X64
    @OSVersion = WIN_7
    Scriptline = 38
    NumberHex = 80020009
    Number = -2147352567
    WinDescription =
    Description = Sie besitzen nicht die erforderliche Berechtigung, um diesen Vorgang auszuführen.
    Source = Microsoft Office Outlook
    HelpFile =
    HelpContext = 0
    LastDllError = 0
    ========================================================

    2 Mal editiert, zuletzt von skripty (17. Mai 2013 um 14:32)

  • Seltsam, sieht so aus, als ob man die Navigation Folder nicht per COM umbenennen kann.

  • Scheint so. Hast du eine Idee zu den Kalendern, die wieder aus der Gruppe raus sind und in "Kalender von Personen" verlinkt sind nach dem Neustart von Outlook? Verdammt, was ist denn das für ein Satz ^^.

  • Nicht wirklich. Höchstens:
    "A folder can only appear in one navigation group. When adding a Folder object to a new navigation group, any references to that Folder are removed from any other navigation group of which it was previously a member."
    Fügt Ihr irgendwie per Makro, Addon oder sonstwie Folder zu Gruppen hinzu?

  • Nein, wird nicht gemacht.

    Ich lese gerne weiter wenn ich zu Hause bin ^^, ansonsten schon mal ein schönes Wochenende und danke für die viele Hilfe.

  • Sind es immer die gleichen Folder die verschwinden?

  • Dann gehen mir langsam die Ideen aus :S

  • Ja leider. Aber vielleicht hilft Google?

  • Ich hab es jetzt in VBA geschrieben, jedoch fliegen da alle Kalender wieder aus der Gruppe raus. Und das jedes Mal wenn ich Outlook neustarte.

  • Schaut nach Bug aus. Habe keine Methode gefunden um ein Save oder ähnliches durchzuführen.

  • Hab es hinbekommen, man musste einfach erst die freigegebenen Ordner hinzufügen und dann alle Ordner zur Gruppe hinzufügen. Wenn wir jetzt noch die Namen anpassen könnten wäre es perfekt, das ist aber kein muss.

    *Edit: Gibt es etwas das ich unter Office 2010 beachten muss?

    Aktualisierter Quellcode im ersten Post.

    Einmal editiert, zuletzt von skripty (21. Mai 2013 um 13:32)

  • Hab es hinbekommen, man musste einfach erst die freigegebenen Ordner hinzufügen und dann alle Ordner zur Gruppe hinzufügen. Wenn wir jetzt noch die Namen anpassen könnten wäre es perfekt, das ist aber kein muss.

    *Edit: Gibt es etwas das ich unter Office 2010 beachten muss?


    Super, wieder ein Mysterium von Outlook gelöst!
    Ich vermute, dass es mit Outlook 2010 genauso laufen müsste - habe zumindest keine andere Info.

  • Unter Outlook 2010 fehlen wieder manchmal Kalender in der Gruppe. Mal sehen woran das wieder liegt ^^.
    *Edit: Fällt dir zufällig noch eine Möglichkeit ein das "Kalender - " vor den freigegebenen Kalendern zu entfernen? (an water gerichtet, jeder andere darf aber auch gerne antworten ;))

    Einmal editiert, zuletzt von skripty (22. Mai 2013 um 16:32)

  • Leider nein. Es scheint kein COM Objekt zu geben auf das ich mit AutoIt drauf kann.
    EInzige Möglichkeit ist, das Outlook GUI zu automatiisieren.

  • Ok, danke für die Info. Dann probiere ich es damit.

    *Edit:

    [autoit]


    $folder = _OL_FolderAccess($oOL, "\\testraum01\", 9)
    MsgBox(0,"",$folder[1].Name)
    $objNavFolder = $objGroup.NavigationFolders.Add($folder[1])
    MsgBox(0,"",$objNavFolder.Folder.Name)

    [/autoit]


    Bei beiden bekomme ich als Ausgabe "Kalender", kann es sein das das immer das Kalenderobjekt des anderen Benutzers ist? Dann ist es ja verständlich das ich dieses Objekt nicht umbenennen kann. Wie spreche ich denn das Objekt in der Gruppe bei mir lokal an?

    **Edit: Meine aktuelle Herangehensweise, natürlich sehr Fehleranfällig und nicht so genau.

    [autoit]


    WinActivate("Kalender - Microsoft Outlook")
    $myExplorer.SelectFolder($folder)
    Sleep(1000)
    Send("{F2}")
    Sleep(1000)
    Send("^c")
    Sleep(1000)
    $kalendername = ClipGet()
    If StringLeft($kalendername, 11) = "Kalender - " Then
    $newName = StringTrimLeft($kalendername, 11)
    ;MsgBox(0,"",$kalendername)
    Sleep(1000)
    Send($newName)
    Sleep(1000)
    EndIf
    Send("{ENTER}")
    $myExplorer.DeselectFolder($folder)

    [/autoit]

    10 Mal editiert, zuletzt von skripty (23. Mai 2013 um 20:16)