Login in fremdes Programm

  • Hallo zusammen

    Hab ein Anfängerproblem:

    Ich versuche bei einem gestarteten Programm (run / runwait) im darauf erscheinenden Login-Window das Passwort einzugeben. AutoIT findet das Window aber nicht (winexist).

    Danke für Tips

  • Hallo capricorn,

    herzlich willkommen im Forum und viel Spass mit AutoIt.
    Poste doch bitte dein bisheriges Skript und benenne das Programm, das du automatisieren möchtest, dann kann man dir besser helfen.
    Im allgemeinen kann ich dir hierzu nur empfehlen in der Hilfe unter Allgemeines zu AutoIt die Kapitel

    • AutoIt Fenster-Informations-Tool (AU3Info)
    • Fenster-Titel und -text (Grundlagen)
    • Fenster-Titel und -Text (erweitert)

    durchzulesen und die Tutorials

    • Tutorial - Notepad
    • Tutorial - WinZip

    durchzuarbeiten.

    mfg (Auto)Bert

  • Hallo capricorn,

    auf Grund deiner PN folgender Lösungsvorschlag:

    Spoiler anzeigen
    [autoit]

    #cs ----------------------------------------------------------------------------

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

    AutoIt Version: 3.2.12.1
    Author: myName

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

    Script Function:
    Template AutoIt script.

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

    #ce ----------------------------------------------------------------------------

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

    ; Script Start - Add your code below here
    ; MsgBox (0,"",@username,@IPAddress1)

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

    Opt("GUIOnEventMode", 1) ;0=disabled, 1=OnEvent mode enabled

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

    ;Run("H:\Private Ablage\Prog-rovo\Xalwin35_E\oxalw32.exe","H:\Private Ablage\Prog-rovo\Xalwin35_E")

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

    $sTitle = "[CLASS:ExploreWClass]" ;mit Class des Window's tauschen (laut AutoIt v3 Window Info eintragen)
    WinActivate($sTitle)
    $hTitle = WinWaitActive($sTitle, "", 10) ;wartet (maximal 10 sec) bis das Fenster aktiv ist
    ;den Fenstertext
    If $hTitle = 0 Then
    MsgBox(0, "", "login window does not exist")
    Exit
    Else
    MsgBox(0, "", "window exists")
    $sId = 12345 ;mit der ID oder ClassnameNN des Controls tauschen (laut AutoIt v3 Window Info eintragen)
    ControlSend($hTitle,"", $sId, "*PASSWORT*")
    Send("{enter}")

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

    MsgBox(0, "mousegetpos()", "@error=" & @error)

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

    Sleep(500)
    ;Send("{enter}")
    MsgBox(0, "", "after send enter")

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

    EndIf

    [/autoit]

    du musst mit dem AutoIt v3 Window Info Tool die

    • Class des Window's suchen und diese $sTitle zuordnen
    • den ClassnameNN oder die ID des Eingabefeldes für das Passwort suchen und diese $sID zuordnen

    (beides am besten kopieren).
    Das Programm wartet maximal 10 sec. auf das Fenster (sollte reichen) und logt sich ein sobald es verfügbar ist. Kann es leider in Ermangelung der Software nicht testen sollte aber klappen. Ansonsten müsstest du ScreenShots bzw. die gesammelten Informationen vom AutoIt v3 Window Info Tool hier einstellen,

    mfg (Auto)Bert