Automatische Konfiguration von Outlook

  • Hallo Leute,

    ich versuche verzweifelt Outlook für ca. 60 Arbeitsplätze zu personalisieren.

    Autoit Version:
    3.2.12.1

    Folgende Vorab-Informationen:
    Alle Infos über den einzelnen User, dessen Outlook konfiguriert werden soll, liegen im LDAP. Diese werden über ein Logonskript (vbs und cmd) ausgelesen und entsprechend der ermittelten Informationen für Outlook aufbereitet (prf- Datei).

    Meldet sich ein Benutzer das aller erste mal an seinem PC an, so wird dabei das zuvor konfigurierte Outlook gestartet.
    Nun kommt es zu dem Punkt, wo die üblichen Outlook Fenster (Outlook ist im Begriff Daten in Ihr Postfach zu improtieren.....usw.) erscheinen. Diese Fenster werden entsprechend der benötigten Auswahl mit "Ja", "Nein" oder "OK" von meinem bisherigen AutoIT-Skript beantworte. Im Anschluss erscheinen die Passwortfenster, für die automatisch konfigurierten Postfächer, auf die der Benutzer Zugriff haben soll.

    Hier sollen die Passworte entsprechend der Postfächer automatisch eingesetzt werden. Diese Passworte sind für jedes Postfach verschieden und werden in dem AutoIT Skript als Variable von mir vorgegeben. Das Passwort für das "Persönliche Postfach" wurde zuvor über .hta Skript abgefragt, einer Variablen übergeben und steht so meinem AutoIt Skript zur Verfügung.

    Die Passwort-Fenster haben alle den Titlel:
    "Internet-E-Mail - Persönliches Postfach", "Internet-E-Mail - Postfach X , "Internet-E-Mail - Postfach Y" usw. Je nach Gruppenzugehörigkeit kann der Benutzer neben seinem pers. Postfach (das hat jeder Benutzer) bis zu 6 weitere, verschiedene Postfacher vom Typ "Internet-E-Mail - Postfach X...Y" haben, die mit den zugehörigen Passwörtern versehen werden müssen.

    Aktueller Stand:
    Die Outlook Fenster, die nach dem Start erscheinen werden erfolgreich von meinem bisherigen Skript durchgeklickt. Leider hat sich herausgestellt, dass diese Fenster sowie die später erscheinenden Passwort-Fenster in verschiedenen Zeitabständen nach dem Start von Outlook erscheinen (je nach Hardware). Aus diesem Grund wollte ich meine bisherige Verwendung von "sleep(5000) durch eine WinWait("Fenstertitel-X", "") ersetzen. Das hat bei den ersten Fernstern auch soweit geklappt. Nun bleibt aber leider das Skript bei den Passwortfenstern stehen. Verwende ich weiterhin "sleep", dann läuft alles durch. Leider dauert das Erscheinen der Passwortfenster manchmal länger, als mein AutoIt Skript läuft. Die übrig gebliebenen Passwortfenster bleiben dann unbearbeitet. Der Benutzer kennt die Passworte (außer seinem eigenen) NICHT und kann so selber keine Hand anlegen.

    Vielleicht hat von Euch jemand eine Idee.

    Hier der Code, der durch meine ganzen Tests jetzt nicht mehr so schön aussieht:

    Spoiler anzeigen
    [autoit]

    ;WinWait("Microsoft Office Outlook", "")
    sleep(5000)

    [/autoit] [autoit][/autoit] [autoit]

    if WinExists("Microsoft Office Outlook", "Outlook konnte nicht im abgesicherten Modus gestartet werden.") Then
    ControlClick("Microsoft Office Outlook", "Outlook konnte nicht im abgesicherten Modus gestartet werden.", "[CLASS:Button;INSTANCE:2]")
    endif

    [/autoit] [autoit][/autoit] [autoit]

    if WinExists("Microsoft Office Outlook", "Outlook konnte zuletzt nicht korrekt gestartet werden.") Then
    ControlClick("Microsoft Office Outlook", "Outlook konnte zuletzt nicht korrekt gestartet werden.", "[CLASS:Button;INSTANCE:1]")
    endif

    [/autoit] [autoit][/autoit] [autoit]

    sleep(5000)
    ;WinWait("Microsoft Office Outlook", "Outlook ist im Begriff")
    ;WinWait("Microsoft", "Outlook ist im Begriff")
    ;sleep(1000)

    [/autoit] [autoit][/autoit] [autoit]

    if WinExists("Microsoft Office Outlook", "Outlook ist im Begriff") Then
    ControlClick("Microsoft Office Outlook", "Outlook ist im Begriff", "[CLASS:Button;INSTANCE:1]")
    ;ControlClick("Microsoft Office Outlook", "Outlook ist im Begriff", "Button1")
    endif

    [/autoit] [autoit][/autoit] [autoit]

    sleep(5000)
    ;WinWait("KONSEC Konnektor", "Der KONSEC Konnektor ist nun vollständig eingerichtet.")
    ;sleep(1000)

    [/autoit] [autoit][/autoit] [autoit]

    if WinExists("KONSEC Konnektor", "Der KONSEC Konnektor ist nun vollständig eingerichtet.") Then
    ;MsgBox(0, "Bla", "Das Konsec Fenster wurde gefunden")
    WinActivate("KONSEC Konnektor", "Der KONSEC Konnektor ist nun vollständig eingerichtet.")
    ControlClick("KONSEC Konnektor", "Der KONSEC Konnektor ist nun vollständig eingerichtet.", "[CLASS:Button;INSTANCE:1]")
    endif

    [/autoit] [autoit][/autoit] [autoit]

    sleep(5000)
    ;WinWait("Microsoft Office Outlook", "Microsoft Office Outlook kann das Add-In nicht ausführen")
    ;sleep(1000)

    [/autoit] [autoit][/autoit] [autoit]

    if WinExists("Microsoft Office Outlook", "Microsoft Office Outlook kann das Add-In nicht ausführen") Then
    ControlClick("Microsoft Office Outlook", "Microsoft Office Outlook kann das Add-In nicht ausführen", "[CLASS:Button;INSTANCE:2]")
    endif

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $passwd = EnvGet("PASSWORD")
    ;MsgBox(0, "Example", "Das Benutzerpasswort lautet: " & $passwd)

    [/autoit] [autoit][/autoit] [autoit]

    $counter = 2 * EnvGet("COUNTER")
    ;muss gegebenefalls wieder aktiviert werden 28.08.2008
    ;$zaehler = 2 * $counter

    [/autoit] [autoit][/autoit] [autoit]

    ;MsgBox(0, "Anzahl Postfächer", "Anzahl der zu konfigurierenden Postfächer: " & $counter)
    ;MsgBox(0, "Zähler", "Zähler ist: " & $zaehler)

    [/autoit] [autoit][/autoit] [autoit]

    $pwsuffix = "PASSWORT"

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ;Opt("WinTitleMatchMode", 2)

    [/autoit] [autoit][/autoit] [autoit]

    ;sleep(5000)29.08.2008
    Sleep(10000)
    ;WinWaitActive("Internet-E-Mail - ", "Geben Sie Ihren Benutzernamen und Ihr Kennwort", )
    ;MsgBox(0, "Zähler", "Es geht weiter: " & $zaehler)

    [/autoit] [autoit][/autoit] [autoit]

    ;While WinWaitActive("Internet-E-Mail -", "")
    ;For $i = 1 To $zaehler Step 1 (29.08.2008)
    For $i = 1 To $counter Step 1
    sleep (2000)
    If WinActive("Internet-E-Mail - Persönliches Postfach", "") Then
    ControlSetText("Internet-E-Mail - Persönliches Postfach", "", "[CLASS:Edit;INSTANCE:1]", $passwd )
    ControlClick("Internet-E-Mail - Persönliches Postfach", "", "[CLASS:Button;INSTANCE:1]")
    ControlClick("Internet-E-Mail - Persönliches Postfach", "", "[CLASS:Button;INSTANCE:2]")
    Endif

    [/autoit] [autoit][/autoit] [autoit]

    If WinActive("Internet-E-Mail -", "") Then
    $title = WinGetTitle("Internet-E-Mail -", "")
    ;MsgBox(0, "Name des obersten, aktiven Fensters:", $title)4
    $ref = ControlGetText("Internet-E-Mail - ", "", "[CLASS:RichEdit20WPT;INSTANCE:1]")
    ;MsgBox(0, "Name des Referates:", $ref)
    ;MsgBox(0, "gesamte Passwortausgabe:", $ref & $pwsuffix )
    ControlSetText("Internet-E-Mail - ", "", "[CLASS:Edit;INSTANCE:1]", $ref & $pwsuffix )
    ControlClick("Internet-E-Mail - ", "", "[CLASS:Button;INSTANCE:1]")
    ControlClick("Internet-E-Mail - ", "", "[CLASS:Button;INSTANCE:2]")
    $ref = " "
    Endif
    ;WEnd
    Next

    [/autoit] [autoit][/autoit] [autoit]

    MsgBox(0,"", "es sollte jetzt kein Fenster mehr offen sein!")

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Exit

    [/autoit]

    Bin für jede Art von Tip dankbar.


    Edit BugFix: Hab mal Tags für AutoIt und Spoiler gesetzt

    2 Mal editiert, zuletzt von BugFix (29. August 2008 um 16:00)

  • Versuche es doch mal nur mit WinWait ...

    [autoit]

    ;WinWaitActive("Internet-E-Mail - ", "Geben Sie Ihren Benutzernamen und Ihr Kennwort", )
    WinWait("Internet-E-Mail - ", "Geben Sie Ihren Benutzernamen und Ihr Kennwort" )

    [/autoit][autoit][/autoit][autoit]

    ;If WinExists("Internet-E-Mail - Persönliches Postfach", "") Then
    ControlSetText("Internet-E-Mail - Persönliches Postfach", "", "[CLASS:Edit;INSTANCE:1]", $passwd )
    ControlClick("Internet-E-Mail - Persönliches Postfach", "", "[CLASS:Button;INSTANCE:1]")
    ControlClick("Internet-E-Mail - Persönliches Postfach", "", "[CLASS:Button;INSTANCE:2]")
    ;Endif

    [/autoit]


    Control... funktioniert auch mit nicht aktiven oder sichtbaren Fenstern.


    Gruß
    Greenhorn


  • Danke für den Hinweis.

    Inzwischen habe ich den Fehler selber gefunden. Das Fenster mit dem Add-In erscheint bei Outlook nicht immer. Eigentlich seltsam....naja, wie dem auch sei. Durch den Befehl WinWait an dieser Stelle wartet mein Skript natürlich bis in alle Ewigkeit!

    Kaum macht man es richtig....dann geht´s auch :)