Kann es sein, das Autoit WinClose manchmal einfach nicht funktioniert? wie debuggen?

  • Hallo zusammen,

    ich bin totaler Newbie, deswegen verzeiht mir bitte, falls das eine doofe Frage sein sollte.
    ICh habe gestern ein simples Autoit Script geschreiben um das AVM Faxprogramm zu beeenden.
    Dazu verwende ich die Funktion Winclose, nur leider stört sich AVM fax überhaupt nicht an dem Winclose und ich bekomme auch einen negativen Rückgabewert.
    Dabei ist es egal ob ich den Fensternamen oder die Class angebe.

    Prinzipiell mache ich glaub ich nichts falsch, da es mit anderen Fenstern testweise sehr gut klappt (total commander, notepad etc)
    WinClose funktioniert dann auch mit dem AVM Faxfenster irgendwie , aber auch nur dann, wenn ich es 2 mal aufrufe (!). Das erste mal passiert (meistens) schlicht garnichts.

    Nun meine Frage: Kann es sein, das AutoIt manche Fenster einfach nicht sauber schliessen kann? Dass die darauf nicht reagieren?
    Ist sowas überhaupt möglich?
    Erstaunlich, das es dann mit Winkill geht, aber auch selten bis nie beim ersten mal.

    Ist das eine "common experience" oder mache ich hier was prinzipiell falsch?
    Gruß und Danke
    Elmar

    ps: noch eine frage, wahrscheinlich NOCH dummer.
    Wie kann man AutoIt scripte am besten debugggen?
    kann ich eine STEP by STEP Auführung durchführung oder irgendwie (ausser duch ne messagebox im Programm selber) den Inhalt von Variablen zur Laufzeit kontrollieren.
    Kann ich Breakpoints setzen?

    Gruß
    Elmar

  • Herzlich willkommen im forum :)

    also es gibt hin und wieder fenster und controls die sich von autoit nicht direkt steuern lassen. kommt aber recht selten vor.

    wenn es bei dir aber "hin und wieder" geht. dann kann ich mir nur folgende sachen vorstellen:
    - das programm könnte mehrere Fenster's haben: wenn ja könnte es sein dass zuerst ein nicht sichtbares Fenster geschlossen wird
    - daten oder werte im programm ändern sich sodass man erst speichern müsste bevor das normale Winclose geht.

    Zitat

    ps: noch eine frage, wahrscheinlich NOCH dummer.

    noch dummer is nur dass es dümmer heißen müsste :D

    Zitat

    Wie kann man AutoIt scripte am besten debugggen?

    die frage ist sogar ziemlich gut weil scripten/programmieren und debuggen einfach zusammen gehört.
    leider bietet autoit nur recht einfache debug methoden. aber das liest du am besten hier nach:

    autoit.de/index.php?page=Thread&threadID=13785

    ist zwar nicht wenig text dafür aber sehr gut beschrieben ;)

  • Zitat

    Hmm, ich denke, so einen Fall habe ich hier.

    schick am besten mal nen link wo man das programm downloaden kann. am besten auf chip.de, weil bei uns in der arbeit nich alle seiten freigegeben sind.

    ps: nur mal so eine Idee, wenn das mit dem Winclose nicht klappt, kann ich das Fenster nicht einfach aktivieren und dann ALT-F4 senden?
    Müsste das nicht auf jeden fall gehen?
    Oder spricht da was gegen?

    am besten ausprobieren ;-);-)
    so ungefähr:

    [autoit]

    WinSetOnTop("Fenstername", "", 1)
    WinActivate("Fenstername")
    Send("!{F4}")

    [/autoit]
  • Zitat

    Das ist der Plan! Dazu noch schnell eine Verständnisfrage, wozu dient in diesem Zusammenhang
    das
    WinSetOnTop("Fenstername", "", 1) ?

    hast recht. des brauchste normal nich ^^

  • Um das hier mal zu Ende zu bringen...
    Das AVM Fax Window reagiert tatsächlich nicht auf close anfragen.
    Warum auch immer das so ist.

    Aber es "semimanuell" zu Beenden, also mit alt-f4 klappt hervorrangend.

    Falls es einen interessiert, hier ist der Code

    Gruß
    Elmar

  • Winkill funktioniert - aber eben nicht sauber.
    Das musste ich 2 oder 3 Mal aufrufen, bevor das Fenster wirlich geschlosen wurde.

    Da hier aber relativ wichtige Prozesse dranhängen, war mir das ganze so zu "gruselig"
    Aber diese "semimanuelle" Lösung tuts gut un auch zuverlässig, das lasse ich nun so.

    Dieser Fall kann nun geschlossen werden, wie macht man das ?

    hast du mal winkill versucht =?!

    hat bei mir mal bei so einem problem geholfen ...