Problem mit Variable in Befehl

  • In dem folgenden Skript möcht ich eine Variable für einen Fenstertitel verwenden. Leider scheint das nicht so ganz zu funktionieren. Vielleicht habt Ihr ja ne Idee was ich falsch mache.

    Spoiler anzeigen
    [autoit]

    blockinput(1)

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

    ;$message="" & @LF & @LF & @LF &"Die Outlook Personalisierung wird gerade durchgeführt!!"& @LF & @LF &"Für diesen Zeitraum werden Ihre Tastatur und Maus gesperrt!" & @LF & @LF & @LF & "Diese Personalisierung wird ca 1 Minute dauern." & @LF & @LF & @LF & "sollte der Vorgang nicht binnen 3 Minuten beendet sein wenden Sie sich bitte an die IT-Abteilung." & @LF & "Telefon Hausintern: 615" &@LF & @LF & "Im Anschluss an diese Personalisierung werden die Tasstatur und Maus wieder freigegeben" & @LF & @LF &"Ihr IT-Team"
    ;SplashTextOn ( "Outlook Personalisierung",$message, 1000 , 600 , -1, -1 ,0 )

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

    ; ----------------Abfragen Abgesicherter Modus-----------------------------------------------

    [/autoit] [autoit][/autoit] [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]

    ;-------------------------Ende Abgesicherter Modus--------------------------------------------------------------------------

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

    ; ----------------Outlook Daten importiern---------------------------------------------------

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

    ;sleep(5000)

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

    WinWait("Microsoft Office Outlook", "Outlook ist im Begriff")
    ;WinWait("[CLASS:#32770]", "Outlook ist im Begriff")
    ;sleep(1000)

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

    if WinExists("Microsoft Office Outlook", "Outlook ist im Begriff") Then
    ;if WinExists("[CLASS:#32770]", "Outlook ist im Begriff") Then

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

    ControlClick("Microsoft Office Outlook", "Outlook ist im Begriff", "[CLASS:Button;INSTANCE:1]")
    ;ControlClick("[CLASS:#32770]", "Outlook ist im Begriff", "[CLASS:Button;INSTANCE:1]")
    ;ControlClick("Microsoft Office Outlook", "Outlook ist im Begriff", "Button1")

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

    endif

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

    ; -----------------------Ende Outlook Daten importiern---------------------------------------------------------------------

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

    ; ----------------Konsec Fenster-------------------------------------------------------------

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

    ;sleep(5000)
    WinWait("KONSEC Konnektor", "Der KONSEC Konnektor ist nun vollständig eingerichtet.")
    ;WinWait("[CLASS:#32770]", "Der KONSEC Konnektor ist nun vollständig eingerichtet.")

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

    if WinExists("KONSEC Konnektor", "Der KONSEC Konnektor ist nun vollständig eingerichtet.") Then
    ;if WinExists("[CLASS:#32770]", "Der KONSEC Konnektor ist nun vollständig eingerichtet.") Then

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

    WinActivate("KONSEC Konnektor", "Der KONSEC Konnektor ist nun vollständig eingerichtet.")
    ;WinActivate("[CLASS:#32770]", "Der KONSEC Konnektor ist nun vollständig eingerichtet.")

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

    ControlClick("KONSEC Konnektor", "Der KONSEC Konnektor ist nun vollständig eingerichtet.", "[CLASS:Button;INSTANCE:1]")
    ;ControlClick("[CLASS:#32770]", "Der KONSEC Konnektor ist nun vollständig eingerichtet.", "[CLASS:Button;INSTANCE:1]")

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

    endif

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

    ; ---------------------Ende Konsec Fenster----------------------------------------------------------------------------------

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

    ; ---------------Add-In Fenster---------------------------------------------------------------

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

    sleep(5000)
    ; ACHTUNG: DIESES FENSTER DARF NICHT MIT ---"WINWAIT"--- VERSEHEN WERDEN, DA ES NICHT IMMER KOMMT UNS SO DAS SKRIPT ZUM STOCKEN BRINGT
    ;WinWait("Microsoft Office Outlook", "Microsoft Office Outlook kann das Add-In nicht ausführen")
    ;WinWait("[CLASS:#32770]", "Microsoft Office Outlook kann das Add-In nicht ausführen")

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

    ;sleep(1000)

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

    if WinExists("Microsoft Office Outlook", "Microsoft Office Outlook kann das Add-In nicht ausführen") Then
    ;if WinExists("[CLASS:#32770]", "Microsoft Office Outlook kann das Add-In nicht ausführen") Then

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

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

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

    endif

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

    ; --------------------Ende Add-In Fenster------------------------------------------------------------------------------------

    [/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 = "XYZ"

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

    ; -------------Outlook Passwort Fenster-------------------------------------------------------

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

    ;Opt("WinTitleMatchMode", 2)

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

    ;sleep(5000)
    ;Sleep(10000)

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

    WinWait("Internet-E-Mail - ", "Geben Sie Ihren Benutzernamen und Ihr Kennwort")
    ;WinWaitActive("[CLASS:#32770]", "Geben Sie Ihren Benutzernamen und Ihr Kennwort", )

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

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

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

    ;If WinActive("Internet-E-Mail -", "") Then
    If WinExists("Internet-E-Mail -", "") Then
    $ref = " "
    $title = " "
    $title = WinGetTitle("Internet-E-Mail -", "")
    ;MsgBox(0, "Name des obersten, aktiven Fensters:", $title)4

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

    ;$ref = ControlGetText("Internet-E-Mail - ", "", "[CLASS:RichEdit20WPT;INSTANCE:1]")
    $ref = ControlGetText($title, "", "[CLASS:RichEdit20WPT;INSTANCE:1]")

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

    ;MsgBox(0, "Name des Referates:", $ref)
    ;MsgBox(0, "gesamte Passwortausgabe:", $ref & $pwsuffix )

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

    ;ControlSetText("Internet-E-Mail - ", "", "[CLASS:Edit;INSTANCE:1]", $ref & $pwsuffix )
    ControlSetText($title, "", "[CLASS:Edit;INSTANCE:1]", $ref & $pwsuffix )

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

    ;sleep(1000)
    ;ControlClick("Internet-E-Mail - ", "", "[CLASS:Button;INSTANCE:1]")
    ControlClick($title, "", "[CLASS:Button;INSTANCE:1]")

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

    ;sleep(1000)
    ;ControlClick("Internet-E-Mail - ", "", "[CLASS:Button;INSTANCE:2]")
    ControlClick($title, "", "[CLASS:Button;INSTANCE:2]")

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

    ;$ref = " "
    ;sleep (2000)
    Endif
    Next

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

    ;SplashOff ( )

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

    Winkill("Posteingang - Microsoft Outlook")

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

    blockinput(0)
    Exit

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

    ; --------------------Ende Outlook Passwort Fenster------------------------------------------------------------------

    [/autoit]

    Edit Mega: Tags

    Einmal editiert, zuletzt von Xenobiologist (4. September 2008 um 16:05)

  • Danke für Deinen Tip! Habe es wie folgt umgesetzt:


    $test = ControlClick($title, "", "[CLASS:Button;INSTANCE:1]")

    MsgBox(0,"",$test) -----> ergab "1"

    So wie ich zwischen den Zeilen gelesen habe ist das ein gutes Zeichen? Richtig?

  • Inzwischen scheint es zu funktionieren. Mir ist aufgefallen, dass bei Verwendung von Outlook und IMAP das jeweilige Passwort für den IMAP-Account IMMER 2mal abgefragt wird. Egal ob das Passwort schon beim ersten mal richtig war oder nicht. Stellt sich nur die Frage nach dem Sinn dieses Verhaltens...aber egal.

    Wird also ein Fenster "B" bearbeitet und sich dann in diesem Moment ein zurvor abgearbeitetes Passwortfenster "A" ein zweites mal öffnet, so scheint sich dieses Fenster "A" da irgendwie zwischen die in diesem Moment laufende Bearbeitung des Passwortfensters "B" zu schieben. Das Fenster "A" wird also in diesem Moment zum aktiven Fenster. D.H., dass das Passwort für Passwortfenster "B", dass sich ja aus dem Namen des Benuzters und einem festen Wert zusammensetzt, in das Passwortfeld des Fensters "A" eingetragen wird. Das führt natürlich zu Fehlern.
    ...ich hoffe, dass hat jetzt irgend jemand verstanden :)


    Ich habe in meinem Code die Zeit mit 5 Sekunden nochmals aktiviert....

    snip-----------------------------------%<------------------------------------------------------------------------------------

    ; ----------------Outlook Daten importiern---------------------------------------------------

    sleep(5000)

    WinWait("Microsoft Office Outlook", "Out...........

    snip-----------------------------------%<-----------------------------------------------------------------------------------

    und danach lief es....bisher ohne Fehler! Ich habe aber nicht die geringste Ahnung warum...und um ehrlich zu sein....es ist mir jetzt auch egal :) hauptsache es funzt!


    Aber vielen, vielen Dank für Deine Mühe und Hilfe


    Lg Doppelkeks

    Einmal editiert, zuletzt von doppelkeks (5. September 2008 um 11:54)