Einlogscript für Web.de | If WindowExists funzt nicht

  • Hi,

    ich hab ein Einlogscript für Accounts von Web.de geschrieben. Es funzt soweit auch, bis auf die Abfragen für das "AutoVervollständigen" und das "Logout vergessen".

    fabs

    Einmal editiert, zuletzt von fabs (2. April 2008 um 21:51)

  • tja, ich würde sagen entweder existiert das window nicht oder es existiert erst nachdem autoit geprüft hat. Das heißt, dass

    deine Sleeps evtl zu klein sind...
    oder mach das ganze in eine while schleife und lass ihn andauernd überprüfen, bis er die gewünschte aktion ausgeführt hat.
    gruß

    Einmal editiert, zuletzt von Dönn3y (14. März 2008 um 18:29)

  • Kannst es auch mal so testen, vielleicht hilft es dir weiter :)

    Spoiler anzeigen
    [autoit]


    #include <IE.au3>
    $username = 'User'
    $password = 'Passwort'

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

    $oIE = _IECreate ("http://www.freemail.de")
    _IELoadWait ($oIE)
    $o_form = _IEFormGetObjByName ($oIE, "fm")
    $o_login = _IEFormElementGetObjByName ($o_form, "username")
    $o_password = _IEFormElementGetObjByName ($o_form, "password")
    $o_logonbtn = _IEFormElementGetObjByName ($o_form, "rv_dologon")

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

    _IEFormElementSetValue ($o_login, $username)
    _IEFormElementSetValue ($o_password, $password)
    _IEAction ($o_logonbtn, "click")
    _IELoadWait($oIE)
    _IEImgClick($oIE,'weiter zu FreeMail','alt')

    [/autoit]

    Mfg
    Jens (McPoldy)

    Twitter: jkroeger

    Denn die Dinge, die wir erst lernen müssen, bevor wir sie tun, lernen wir beim Tun.(Aristoteles)

  • Oh, das ganze Variablenzeug kann ich noch nicht.

    @Dönn3y
    Und wie bau ich die ein?

    Code
    while 1
    If WinExists("WEB.DE usw) Then
    MouseClick("left", x,y)
    wend

    Ist das Richtig? Weil wenn ich das einbaue, bekomme ich einen Error: "Wend" statement with no matching "While" statement

    Spoiler anzeigen

    ShellExecute("iexplore", "http://www.freemail.de/")
    WinWait("WEB.DE - E-Mail - Suche - DSL - Modem - Shopping - Entertainment - Windows Internet Explorer")

    If Not WinActive("WEB.DE - E-Mail - Suche - DSL - Modem - Shopping - Entertainment - Windows Internet Explorer") Then
    WinActivate("WEB.DE - E-Mail - Suche - DSL - Modem - Shopping - Entertainment - Windows Internet Explorer")
    EndIf

    Sleep(1000)

    MouseClick("left", 302, 307)
    Sleep(200)
    Send("Username")

    MouseClick("left", 528, 307)
    Sleep(200)
    Send("Passwort")

    MouseClick("left", 700, 299)
    Sleep(200)

    If WinExists("AutoVerfollständigen von Kennwörtern", "Möchten Sie, dass dieses Kennwort gespeichert wird?") Then
    MouseClick("left", 651, 427)
    EndIf

    Sleep(2000)

    While 1
    If WinExists("FreeMail von WEB.DE - Windows Internet Explorer") Then
    MouseClick("left", 212, 496)
    Exit
    Wend
    EndIf

  • Das EndIf muss IN die Whileschleife und nicht danach ;)

    Was mir noch aufgefallen ist:

    Spoiler anzeigen

    If WinExists("AutoVerfollständigen von Kennwörtern", "Möchten Sie, dass dieses Kennwort gespeichert wird?") Then
    MouseClick("left", 651, 427)
    EndIf

    Soweit ich weiß, schreibt man Vervollständigen mit v und nicht mit f. vllt liegts also auch daran. am besten immer alles aus windowinfo kopieren, dann macht man keine fehler^^


    und dazu noch kurz ein zwei fragen:
    Kommen die beiden windows immer oder erscheinen sie nur manchmal und was willst du mit denen machen, schließen?

    2 Mal editiert, zuletzt von Dönn3y (14. März 2008 um 20:16)

  • Ups ist mir heute schonmal passiert, mit dem "Verfollständigen" ;)

    Das Erste kommt halt immer, wenn man nicht einstellt, dass es nie wieder kommen soll. Daher das "Wenn es erscheint". Die zweite Abfrage ist für das vergessene Logout - dann kommt nach dem Login eine Erinnerung mit neuem Titel.
    Ich probiers jetzt mal mit der while-Schleife.

    edit:
    Super, klappt alles. Jetzt hätte ich aber noch ne Frage:
    Im Moment ist der Nutzername ja im Quelltext festgelegt. Jetzt will ich eine InputBox für Username und Passwort machen. Nur weiß ich nicht wie das mit den Variablen genau geht... :/

    edit2:
    Irgendwie ist heute mein Tag :) InputBox mit Variablen klappt. Jetzt fehlt allerdings noch was: Kann ich die Klartextdarstellung
    bei der Passworteingabe im Skript ausschalten? Also dass nicht "passwort" sondern "********" dasteht?

    2 Mal editiert, zuletzt von fabs (14. März 2008 um 22:40)

  • Auch gelöst, dank der Boardsuche :) Ich habs jetzt allerdings nicht mit "$ES_PASSWORD" gemacht, sondern in die Syntax der InputBox miteinbezogen:

    Code
    $Password = InputBox("Passwort eingeben", "Passwort:", "", "*")
  • Ach so, so ne InputBox. (Da hab ich wohl was übersehn :D) der Style gilt nur für Input Felder(in einer GUI). Und ein ganz dickes lob für das benutzen der Boardsuche(das ist eine seltenheit bei Anfängern)

    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)

  • Ja, ich glaub die GUI pack ich als nächstes an. Wäre es arg schwer, ein Skript für mehrere E-Mail Accounts zu erstellen, bei denen das Passwort auch lokal verschlüsselt gespeichert wird?

  • Gut das mit den Werten in eine *.ini schreiben klappt. Aber wie kann ich das verschlüsseln? Muss kein besonderer Algorightmus sein, einfach a -> $, b -> # oder so

  • Ein String ist eine Zeichenkette. In vielen Programmiersprachen (in allen die ich kenn) werden Strings dadurch kenntlich gemacht das sie von Anführunszeichen oder von den Teilen ' umschlossen werden.

    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)