Fensterzugriff unmöglich

  • Liebe Community ich stehe vor einem Problem ungeahnten Ausmaßes -> SCHERZ
    Jetzt aber mal im ernst warum kann ich mit keinem mir bekannten Befehl (Sendbefehle, Closebefehle, Klickbefehle, Mausbefehle...) auf dieses Fenster zugreifen? Mein Script wird solange pausiert bis ich dieses Fenster manuell schließe.
    Hat jemand Ideen wie ich dieses Fenster "automatisch" schließen kann ?! -> ES IST SEHR WICHTIG[Blockierte Grafik: http://img193.imageshack.us/img193/282/bild1cbm.png]

    Uploaded with ImageShack.us

  • Wie wäre es mit

    AutoIt-Quellcode
    1
    ControlClick()

    hab ich schon probiert (war eig. das erste :) )

    GUIDelete hab ich noch nicht probiert. Versuch ich morgen gleich ma

    • Offizieller Beitrag

    Mehrere Möglichkeiten:
    - Es läuft gerade ein Run(Wait)/ShellExecute(Wait). Wenn sowas das Fenster früh genug im Startprozess auslöst, dann ist dein Skript noch blockiert (Abhilfe z.B. zweites Skript, eventuell AdlibRegister).
    - Das Fenster kommt von einem Programm, dass als Administrator läuft, dann #RequireAdmin oben in dein Skript, damit es auch Admin-Rechte anfordert

    Johannes

  • Sieht fast so aus, als ob Du Deine eigene MessageBox abschießen willst. Ist das so?

  • Und send("{ENTER}") funktioniert auch nicht? Sonst kannst du mal den Fokus auf die Message geben und dann ENTER absenden =))

  • nein wie oben beschrieben wird das Script pausiert bei einem Send ("{ENTER}") hätte das die Folge, das das Script nach dem manuellen schließen des Fensters ENTER drückt. Mehr nicht. Das Fenster ist automatisch schon fokusiert und aktiviert.

    Das Fenster wird von einer Website erzeugt.

    Ist wohl eine MSGBox

    Einmal editiert, zuletzt von Aragonthebest (8. August 2011 um 13:26)

  • Wenn Du Dein Skript nicht zeigen willst, würdest Du dann bitte verraten, welche Webseite die MessageBox "Meldung von Webseite" erzeugt? Oder hast Du versucht, selbst etwas zu basteln, das in etwa so aussieht wie das Originalfenster?

  • also die Website werdet ihr nicht sehen können, weil sie nur über Netzwerk erreichbar ist. ich kann einen Screenshot von der Website machen und den Quelltext zeigen und das Script.


    [Blockierte Grafik: http://img820.imageshack.us/img820/9458/bild3u.png]


    Bild von der ganzen Website


    [Blockierte Grafik: http://img171.imageshack.us/img171/3934/bild4r.png]


    Das Bild mit dem PC und dem grünen Pfeil ist der Herunterladen Button


    [Blockierte Grafik: http://img14.imageshack.us/img14/6346/bild5jq.png]


    Das Fenster welches nicht zugeht (hab die Screenshots versehentlich mit Mac gemacht, ist natürlich alles Windows in echt) im Hintergrund die Website


    Das Fenster sieht in Windows so aus:

    [Blockierte Grafik: http://img193.imageshack.us/img193/282/bild1cbm.png]


    und das Infotool
    [Blockierte Grafik: http://img706.imageshack.us/img706/8784/bild2sg.png]

    Das Script:

    [autoit]

    ;Includes
    #include#include#include#RequireAdmin

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

    ;Set Options
    Opt("GUIOnEventMode", 1) ; Funktionen aufrufenOPT("SendKeyDownDelay",100) ; Versuch das Fensteranzuklicken (Fehlgeschlagen)Hotkeyset ("e","scan") ;Scandownload starten

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

    ;Com Obj welches in der GUI angezeigt wird_IEErrorHandlerRegister()$oIE = _IECreateEmbedded() ;eingebetteter IE wird created

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

    ;Define GUIGUICreate("Scan", 1000, 600); Fenster wird erzeugtGUISetOnEvent($GUI_EVENT_CLOSE, "_exit") ; Kreuzklick

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

    ;Define Obj$GUIoIE = GUICtrlCreateObj($oIE, 260, 10, 780, 560) ;Obj in GUI, welches zum Browser wird$oForm=_IENavigate($oIE, "http://192.168.178.35/wt3/mydocs.php?language=de"); IE zur Scanseite navigieren.GUISetState() ; Anzeigen der GUI
    $oHerunterladen = _IEGetObjByName ($oIE, "documentCheckBoxItems") ;erste Checkbox Objekt$oFormatwahl = _IEGetObjByName ($oHerunterladen, "formatselect") ; Formatwahlcombobox Objekt$oFormat = "JPEG"

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

    While 1 ; Schleife damit das fenster offen bleibtSleep(200)WEnd

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

    ;FunktionenFunc scan() _IEAction ($oHerunterladen, "click") ; klickt die Checkbox an

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

    ControlClick ("Scan","","","left",1,88,120) ; klickt auf das Herunterladen - Bild

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

    _IELoadWait ($oIE)

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

    ;jetzt muss hier Format leser hin
    _IEFormElementSetValue ($oFormatwahl,$oFormat) ; Setzt die FormatVaue auf das zuvorausgewählt Format (readed durch ini Dateien)

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

    Sleep(2000); da kommt noch nen WinWait Activ hin

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

    MouseClick("left", 660,480) ; klickt auf Herunterladen im second Fenster (an alle anderen es kommt beim IE doch immer das Fenster; (öffnen, speichern) da klickt es auf Herunterladen)

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

    Endfunc

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

    Func _exit()ExitEndFunc ;==>_exit

    [/autoit]

    Es zeigt irgendwie nicht das richtigen Sript an sry

  • Na gut, dann will ich mal ein paar Vermutungen äußern:

    Du hast ein GUI mit einem embedded IE Control. Dieses Control erzeugt irgendwann die ominöse Messagebox. Weil das Control zu Deinem Skript gehört, ist es möglich, dass diese Messagebox Dein komplettes Skript anhält, wie es auch die MsgBox() Funktion tut. Wenn es so ist, bleibt Dir nur eine Möglichkeit:

    Bevor Du die kritische Aktion auslöst (wahrscheinlich einer der MouseClicks), aktivierst Du mit _Timer_SetTimer() einen Timer. In der Timerfunktion prüfst Du, ob Deine Messagebox angezeigt wird, sendest ihr ggf. ein {ENTER} und beendest den Timer mit _Timer_KillTimer.

    Könnte klappen! ;)

  • Lieber Großvater..... (SCHERZ)

    deine Idee war gut hat einen minimalen Erfolg gehabt und zwar in der Form:
    Wenn man keine Checkbox aktiviert und auf das Herunterladenbild drückt kommt eine ähnliche MSGBOX mit dem Text "Wählen sie ein Dokument aus". Aus irgendeinem Grund wurde keine Checkbox angewählt, das Fenster kam und wurde dann von dem Timer mit der Funktion Send ("{ENTER}") geschlossen.
    Nun nach längerem Probieren hat das Programm nun wieder die Checkbox angeklickt (weiß nicht woran es lag) und dafür aber dann anstadt das Fenster zu schließen folgende Meldung gebracht und zwar ziemlich vile davon bis ich auf Kreuz gedrückt hab (dann hat das Programm beendet)

    Mein Code (diemsmal als Screenshot, da das andere Anzeigeprobleme macht)


    [Blockierte Grafik: http://img508.imageshack.us/img508/8830/bild1qv.png]


    und das Fenster welches erscheint:


    [Blockierte Grafik: http://img10.imageshack.us/img10/8978/bild2mu.png]


    Habs nicht ganz mit dem Screenshot erwischt, weil ich schnell sein musste, da das viele Fenster davon erscheinen und die Vorherigen teilweise überdecken. Hab diese Nachricht mal gegoogelt bin aber nicht so ganz schlau draus geworden. Hat irgendwas mit dem Arbeitsspeicher zu tun oder so
    Kann mir mal einer das mit dem hWND erklären ?

  • Thema hat sich erledigt ich gebe auf.
    Ist zu Spät benötige die Antwort nicht mehr
    Schade eigentlich hat nicht mehr viel gefehlt aber in diesem Forum gibt es nicht so viel unterstützung wie ich es mir erhofft hätte.