HIlfe bei einem "Klickerscript"

  • Hallo zusammen,

    ich muss hier für die Firma wieder ein "Klickerscript" zusammenbasteln. Ich muss folgendes machen:
    Wir müssen Formulare in Outlook verteilen. Normalerweise kommen diese Formulare vom Server, allerdings gibts da bei uns ein Problem (Die Formulare werden leider nicht automatisch verteilt).
    So hab ich mich entschieden, das ganze per Script zu lösen....
    MIt dem Script mache ich praktisch folgendes:
    - Outlook öffnen
    - Extras auswählen
    - Optionen auswählen
    - Weitere auswählen
    - Formulare auswählen
    - Benutzerformulare auswählen
    - Installieren auswählen
    - Pfad eingeben
    - OK klicken
    - Installieren auswählen
    - Pfad eingeben
    - OK klicken
    - und dann alles wieder zumachen

    So, das ganze funktioniert auch schon wirklich einwandfrei. Nur hab ich das Problem, dass es vorkommen kann, dass sich ein User an mehrern Rechner anmeldet. Somit würde das Script ihm diese Formulare nochmals installieren. Und hier erscheint dann eine Meldung, die ich abfangen will (Ich hab´s im Script mal hinterlegt)..
    Wenn praktisch diese Meldung kommen sollte, soll nichts passieren (Also, ich will praktisch immer mit ESC rausgehen)..

    Leider funktioniert meine "If-Abfrage" nicht richtig. Könntet Ihr mir hier bitte helfen? Was mache ich da falsch?

    Anbei mein Script..
    Vielen Dank, und viele Grüße

    [autoit]


    Run("C:\Programme\Microsoft Office\OFFICE11\OUTLOOK.EXE")
    WinWait("Posteingang - Microsoft Outlook")
    WinActivate("Posteingang - Microsoft Outlook")
    WinWait("Posteingang - Microsoft Outlook", "", 20)

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

    Send("!x")
    Sleep (1000)
    Send("o")

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

    WinWait("Optionen")
    WinActivate("Optionen")

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

    Sleep (1000)
    Send("^!{TAB}")
    Sleep (500)
    Send("^!{TAB}")
    Sleep (500)
    Send("^!{TAB}")
    Sleep (500)
    Send("^!{TAB}")
    Sleep (500)
    Send("^!{TAB}")
    Sleep (500)

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

    Send("!w")
    Sleep (1000)

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

    WinWait("Erweiterte Optionen")
    WinActivate("Erweiterte Optionen")

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

    Send("!u")
    Sleep (1000)
    Send("!f")
    Sleep (1000)
    Send("!i")
    Sleep (1000)
    Send("\\server1\f$\vorlagen\ArchiveForm.cfg")
    Sleep (1000)
    Send("!f")
    Sleep (2000)
    Send("{Enter}")

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

    Hier erscheint nun dieser Text..!! Falls dieser Text erscheint, soll das Script hier weitermachen, ansonsten weiter unten...
    ;$text = "&Diese Bibliothek enthält bereits eine Version dieses Formulars&"
    ;If $text = WinGetTitle("&Diese Bibliothek enthält bereits eine Version dieses Formulars& -", "") Then
    ;WinGetTitle = ("&Diese Bibliothek enthält bereits eine Version dieses Formulars&")
    ;Send("!n")
    ;Sleep (300)
    ;Send("{ESC}")
    ;Sleep (300)
    ;Send("{ESC}")
    ;Sleep (300)
    ;Send("{ESC}")
    ;Sleep (300)
    ;Send("{ESC}")
    ;Sleep (300)
    ;Send("{ESC}")
    ;Sleep (300)
    ;Send("{ESC}")
    ;Sleep (300)
    ;Exit

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

    Und hier sollte die normale Installation weitergehen, falls das Ding noch nicht installiert ist.
    Sleep (5000)
    Send("!i")
    Sleep (1000)
    Send("\\server1\f$\vorlagen\ShowForm.cfg")
    Sleep (1000)
    Send("!f")
    Sleep (2000)
    Send("{Enter}")
    Sleep (5000)
    Send("!s")
    Sleep (1000)
    Send("{Enter}")
    Sleep (1000)
    Send("{TAB 18}")
    Sleep (1000)
    Send("{Enter}")
    Sleep (1000)
    Send("{TAB 7}")
    Sleep (1000)
    Send("{Enter}")
    Sleep (1000)

    [/autoit]
  • Ich würde mit Winwait kurz warten ob das fenster sich öffnet, wenn ja dann führst du die erfoderlichen Schritte aus, wenn nicht, gehts mit dem gewohnten Ablauf weiter, als Timeout z.B. 5 nehmen.

    greetz Dj

  • Ich würde mit Winwait kurz warten ob das fenster sich öffnet, wenn ja dann führst du die erfoderlichen Schritte aus, wenn nicht, gehts mit dem gewohnten Ablauf weiter, als Timeout z.B. 5 nehmen.

    greetz Dj

    Hallo Dj,
    vielen Dank für die Antwort..
    Nun wollte ich noch kurz Fragen, wie dann der "Programmiertext" aussehen muss?

    Hier hab ich eben die Schwierigkeit: Wie muss hier die If-Abfrage aussehen?

    Nochmals vielen Dank, und viele Grüße

  • Hallo bosk,

    Probiers mal mit

    If WinWait("Titel deines Fensters","Text deines Fensters",5)== 1 Then
    deine Anweisungen
    else

    EndIf

    Ansonsten kann ich dir die deutsche Hilfedatei nur Empfehlen

    Mfg Harsjesis

  • Hallo,
    vielen Dank für eure Antworten und Hilfe. Ich habe nun folgendes ausprobiert:

    [autoit]


    If WinWait("","Diese Bibliothek enthält bereits eine Version dieses Formulars. Möchten Sie die bestehende Version ersetzen?",5)== 0 Then
    MsgBox(4096,"", "Fenster ist vorhanden.")

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

    else
    MsgBox(4096,"", "Fenster ist nicht vorhanden.")

    [/autoit]

    Ich habe auch diese Variante probiert:

    [autoit]


    If WinWait("Microsoft Office Outlook","Diese Bibliothek enthält bereits eine Version dieses Formulars. Möchten Sie die bestehende Version ersetzen?",5)== 0 Then
    MsgBox(4096,"", "Fenster ist vorhanden.")

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

    else
    MsgBox(4096,"", "Fenster ist nicht vorhanden.")

    [/autoit]


    Leider kommt bei mir immer die Meldung "Fenster ist nicht vorhanden".. Bedeutet das jetzt, dass der einfach das Fenster nicht erkennt?

    Vielen Dank nochmal

    2 Mal editiert, zuletzt von bosk (5. November 2008 um 09:03)

  • Zitat

    Leider kommt bei mir immer die Meldung "Fenster ist nicht vorhanden".. Bedeutet das jetzt, dass der einfach das Fenster nicht erkennt?

    Ja das glaube ich auch, was haste den benutzt um den Namen des Fensters heraus zu bekommen (wenn du AutoItv3
    hast gibt es in dem Installationsordner eine exe die sich Au3Info nennt)....vielleicht klappts damit...

    Ohhh habe grad nochwas gesehen du musst auf 1 vergleichen und nicht auf 0

    [autoit]

    If WinWait("","Diese Bibliothek enthält bereits eine Version dieses Formulars. Möchten Sie die bestehende Version ersetzen?",5)== 1 Then
    MsgBox(4096,"", "Fenster ist vorhanden.")

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

    else
    MsgBox(4096,"", "Fenster ist nicht vorhanden.")

    [/autoit]

    Wenn nicht einfach posten

  • Zitat

    Wenn du If(WinWait(...)) benutzt, wartet er unendlich lange....


    Das stimmt nicht, WinWait wartet solange bis das angegebene Fenster exestiert....

    habe es selber schon des öfteren benutzt

    MfG Harsjesis

  • hmmm..... Wie es aussieht hat bosk keine Interesse mehr an diesem Thema....
    keine Rückmeldung zu den Vorschlägen.... :wacko:

    Naja dann hat sich wohl dieses Thema erledigt

  • @Harsjesis: Naja, 2 Tage sind jetzt noch nicht sooo viel, vllt. hat er nur was zu tun

    Projekte: Keine größeren (und fertigen)
    Gegen Internetzensur:
    https://epetitionen.bundestag.de/index.php?acti…s;petition=3860
    (Zeichnungsfrist abgelaufen)
    __________________________________________________________________________________________________________________________________
    Dieser Beitrag wurde bereits 264 mal editiert, zuletzt von »Fast2« (30. Februar 2009, 12:99)