Java-Fenster abfragen

  • Hallo zusammen,

    ich habe ein Problem mit einer Java Anwendung im Internet-Explorer und dem dazugehörigem Logon-Fenster.
    Ich möchte gerne den Logon "Benutzername und Passwort" automatisieren doch leider gelingt mir das nicht.

    Also, beim starten der URL öffnet sich ein IE Ladefenster woraus wiederum ein IE Fenster geöffnet wird, nach umbestimmter Zeit
    öffnet sich dann ein Java-Logon Fenster welches sich auch mehrmals wieder schließt bzw. in den Hintergrund verschwindet.
    Mit WINWAIT oder so komme ich nicht weiter da z.B. beim senden der Logondaten dieses Fenster in den Hintergrund geht und nicht mehr Aktiv ist.
    Abzählen wie oft das Logonfenster aktiv ist bringt auch nichts, da das auch immer unterschiedlich ist.
    Hängt wohl von dem Java-Applet ab welches im zweiten Fenster geladen wird, und welche Java-Version ich gerade am jeweiligen Rechner habe.
    (ist beides auch immer unterschiedlich)

    Hat da wer vieleicht eine Idee und kann mir weiterhelfen. Bin jetzt auch nicht so der Auto-It spezie, ich wurschtel mich da immer so durch.

    Besten Dank schoma, schönen Tag Euch allen.

  • Hi!

    Du schreibst das der Login immer anderes ist auf dieser Seite!?
    Das loginfenster ist doch immer gleich oder?
    Das sollte man also mit WinActive abfragen können.
    Im schlimmsten Fall last du einfach noch ein bischen Zeit vergehen bis du die Abfrage machst.

    If not :?: then ?( else :thumbup:

  • Java Apps sowohl Sandbox als auch Applet lassen sich meines Wissens nicht mit über Controlls abfragen bzw. Manipulieren.
    Versuche es mal über Tabbing zu dem gewünschten Input Feld und dann mit Send(). Ist aber nur eine Idee.

  • Hi, erstma danke für die Antworten.....

    aber das Eintragen des Usernamen und Passwort mit send() ist nicht das Problem, das Problem ist den Zeitpunkt abzupassen WANN
    ich den Send() machen kann.

    Wenn ich z.B.

    [autoit]


    Winwait("Log On - " & StringTrimLeft($Anlage, 1))
    WinActivate("Log On - " & StringTrimLeft($Anlage, 1),"")
    send(@Username)
    send("{TAB}")
    send($READ_PW)
    send("{Enter}")

    [/autoit]


    dann läuft das Scrript weiter sobald das Logon-Fenster einmal da war, aber es verschwindet ja sofort wieder und nach unbestimmter Zeit kommt es wieder, das macht es
    auch mehrmals, ist abhängik von der Anzahl geladener Applets oder so ähnlich.
    Also mit anderen worten, wenn ich genau weiß das das Fenster genau 4 mal erscheint und ich den Login beim 4ten mal machen kann würde ich so vorgehen:

    [autoit]


    $Fenster = 0
    Do
    WinWait("Log On - " & StringTrimLeft($Anlage, 1))
    $Fenster = $Fenster + 1
    until $Fenster = 4
    WinActivate("Log On - " & StringTrimLeft($Anlage, 1),"")
    send(@Username)
    send("{TAB}")
    send($READ_PW)
    send("{Enter}")

    [/autoit]

    aber ich weiß leider vorher nicht wie oft das Logon-Fenster erscheint.

    Also das Logon-Fenster verschwindet nicht, es legt sich nur immer ein anderes Fenster darüber....
    moment, ich glaub mit winsetontop könnte es gehen. ich teste mal....

  • Hi,

    leider gehts mit "winsetontop" auch nicht, das Fenster bleibt zwar im Vordergrund, verliert aber kurzzeitig den Focus, sprich es ist mehrmals für einen bruchteil einer sekunde nicht aktiv,
    meistens genau dann wenn ich den send() durchführe und der geht natürlich dann in die binsen.

    Habe zwar nichts gefunden aber vieleicht gibt es ja eine Methode ein Fenster zu ZWINGEN Aktiv zu bleiben.... (zumindest für eine gewisse Zeit) den status "ACTIVE" zu behalten.

  • Hi, ich nochma....

    ich denke ich habs jetzt, das logon-Fenster war immer dann inaktiv wenn im IE-Hauptfenster irgendein Java-Applet gestartet (automatisch) wurde.
    Hab einfach ein winwait() auf das Logon-Fenster gemacht und das Hauptfenster dann mit winsetstatus() auf @SW_DISABLED gesetzt und nach dem Logon wieder auf @SW_ENABLED

    scheint zu funktionieren.....

    Danke für die Hilfe und Denkanstöße