Fenster schließt immer

  • Moin Moin zusammen.

    Wieso schließt das Firefoxfenster immer?

    Spoiler anzeigen
    [autoit]


    If $U_ans = 6 Then
    WinMinimizeAll()
    ;$PID = Run('C:\Program Files\Internet Explorer\iexplore.exe "' & $D_P & '"', "", @SW_SHOW)
    $PID = Run('C:\Program Files (x86)\Mozilla Firefox\firefox.exe "' & $D_P & '"', "", @SW_SHOW)
    WinWaitActive("")
    Local $Handle = WinGetHandle($PID), $sHTML = "", $loop = 0
    While ProcessExists($PID)
    Sleep(3000)
    If ProcessExists($PID) = 0 Then ExitLoop
    If Not StringInStr(WinGetTitle($Handle), "No") And Not StringInStr(WinGetTitle($Handle), "Yes") Then
    If $loop = 5 Then ExitLoop
    $loop = $loop + 1
    Else
    $loop = 0
    EndIf
    If StringInStr(WinGetTitle($Handle), "Danke schön") Then Return 1
    WEnd
    ProcessClose($PID)
    EndIf

    [/autoit]

    Die Seite wird normal aufgebaut, schließt sich aber nach wenigen Sekunden.

    Was habe ich da übersehen?

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

  • Errormanagement FTW!
    Wenn man nicht weiß, warum und wieso etwas in einem Script passiert, muss man die Gründe suchen!

    Spoiler anzeigen
    [autoit]

    If $U_ans = 6 Then
    WinMinimizeAll()
    ;$PID = Run('C:\Program Files\Internet Explorer\iexplore.exe "' & $D_P & '"', "", @SW_SHOW)
    $PID = Run('C:\Program Files (x86)\Mozilla Firefox\firefox.exe "' & $D_P & '"', "", @SW_SHOW)
    WinWaitActive("")
    Local $Handle = WinGetHandle($PID), $sHTML = "", $loop = 0
    While 1
    Sleep(3000)
    $processexists = ProcessExists($PID)
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $processexists = ' & $processexists & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
    If $processexists = 0 Then ExitLoop
    If Not StringInStr(WinGetTitle($Handle), "No") And Not StringInStr(WinGetTitle($Handle), "Yes") Then
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $loop = ' & $loop & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
    If $loop = 5 Then ExitLoop
    $loop = $loop + 1
    Else
    $loop = 0
    EndIf
    If StringInStr(WinGetTitle($Handle), "Danke schön") Then
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : StringInStr(WinGetTitle($Handle), "Danke schön") = ' & StringInStr(WinGetTitle($Handle), "Danke schön") & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
    Return 1
    endif
    WEnd
    msgbox(0,0,"Schau auf den letzten ausgeführten Befehl in der Console!")
    ProcessClose($PID)
    EndIf

    [/autoit]


    Wenn dir das nicht weiterhilft, schau mal in Scite unter "Extras" nach den TRACE-Funktionen

  • Hi Alina,

    ist ja nur ein Ausschnitt, aber wie ich das sehe würde ich sagen:

    Spoiler anzeigen
    [autoit]

    If $U_ans = 6 Then
    WinMinimizeAll()
    ;$PID = Run('C:\Program Files\Internet Explorer\iexplore.exe "' & $D_P & '"', "", @SW_SHOW)
    $PID = Run('C:\Program Files (x86)\Mozilla Firefox\firefox.exe', "", @SW_SHOW)
    WinWaitActive("")
    Local $Handle = WinGetHandle($PID), $sHTML = "", $loop = 0
    While ProcessExists($PID)
    Sleep(3000)
    If ProcessExists($PID) = 0 Then ExitLoop
    If Not StringInStr(WinGetTitle($Handle), "No") And Not StringInStr(WinGetTitle($Handle), "Yes") Then
    If $loop = 5 Then ExitLoop ; <-- irgendwann ist $loop = 5
    $loop = $loop + 1
    Else
    $loop = 0
    EndIf
    If StringInStr(WinGetTitle($Handle), "Danke schön") Then Return 1
    WEnd
    ProcessClose($PID) ; <-- hier wird nach ExitLoop das Fenster geschlossen ...
    EndIf

    [/autoit]

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • Andy: Zeile 25
    Schnuffel: Zeile 18

    Einfach den Process nicht automatisch schließen lassen. Schon geht es.

    Danke !!!

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl