Erkennen das Schliessen eines Fensters

  • Hallo Forum!

    Mich wuerde folgendes interessieren.
    Wenn ich zB: den IE schliessen will mit X, dann will ich gerne, dass eine MsgBox erscheint, worin dann eben steht: sind Sie sicher oder Nein!

    Ist es mit Autoit moeglich zu erkennen, dass jemand irgendein Fenster schliessen will und bevor er das erreicht, dass eine MsgBox aufgeht?

    Danke Euch fuer jede Hilfe!

  • Für den IE rate ich die einfach mal in der Hilfe unter dem Punkt,

    _IEHeadInsertEventScript

    das Beispiel 3 näher zu betrachten, hierbei lautet des Geheimnisses Lösung window.onbeforunload.
    Is halt JavaScript von daher wirds auch nicht bei jedem laufen, aber is jetzt das einzige was mir so auf die Schnelle einfällt.

    Und bei anderen Fenstern bzw. Programmen müsste es doch irgendwie mit ProcessClose Überwachung o.ä gehn.

    Hoffe das hat zumindest ein bisschen geholfen.

    - Haut rein :rock:

  • Hi!

    Danke Dir vielmals fuer Deinen Tipp.
    Sieht schon einmal super aus.
    Ich haette noch eine Frage:

    Wie ich gesehen habe, funktioniert das bei der ersten Seite, die als Startseite festgelegt ist.
    Ist es auch irgendwie moeglich, sobald ich weiternavigiere, dass er die Warnung bei jeder anderen Seite mitausgibt?

    Danke Dir vielmals!

    • Offizieller Beitrag

    Mal unabhängig vom Lösungsweg:
    Ich persönlich finde es mehr als nervig, wenn bei irgendwelchen, nicht sicherheitsrelevanten Aktionen diese Abfrage: "Sind Sie sicher bla bla" auftaucht. Da frag ich mich immer: Hä, halten die Programmierer die User für grenzenlos dämliche Trottel, die ausnahmslos immer auf irgendwelche Button klicken? :rofl:
    Man muß nicht immer jede mögliche Dummheit abfangen. Ist auch ein Stück Lernprozeß für den User, wenn er ohne zu Denken klickt. :P

  • Also da geb ich BugFix vollkommen recht das 'Überbemuttern' der User ist prinzipiell zu unterlassen, da's oft unnötig ist und einfach nervig ist.
    Allerdings hab ich auch schon oft in Projekten erlebt das der Kunde irgendwelche Sachen ins Programm haben wollte wo man sich selber auch oft denkt '....???Oooook, wenns denn sein muss' da hilft auch alles reden und argumentieren nix, dat muss also muss es.
    Ich hoffe hier gehts auch um einen speziellen Anwendungsfall und nicht nur darum den Usern gar den letzten Nerv zu rauben oder Ihnen gar das Recht abzusprechen durch unüberlegtes Klicken Fehler machen zu dürfen ;)

    Was das Ermitteln des neuen Fenster angeht so würd ich als Denkanstoss folgendes in Betracht ziehen:
    Programm läuft im Hintergrund mittels schleife,
    und ermittelt das Handle des Fensters mit WinGetHandle (in der Hilfe nachgucken)
    und dann weiter wie gewohnt.

    So müsste das in etwa zu realisieren sein.

    Bis denne.

  • Hy!

    Ja, das Programm, das ich schreiben muss hat wirklich diesen Anwendungsfall.
    Warum frag ich mich selber, ist aber leider so ...

    Ich danke Euch fuer Eure Hilfe, ich glaube ich sollte es jetzt so halbwegs hinbekommen, sobald ich was halbwegs brauchbares habe, gebe ich es natuerlich hier rein!

  • nimm doch:

    [autoit]


    WinWaitClose("Internet Explorer")
    MsgBox(4,"Sicher?","Willst du wirklich schliessen?")

    [/autoit]

    Meine fertigen Projekte:
    VirtualCash
    Monopoly Digital

    Daran arbeite ich gerade:
    Einem Skript, womit man ohne Programmierkentisse eigene Programme machen kann (habe ich selber früher gesucht :D ) Stand: ||||||||||||||||||||||||| 6%

  • Also die "Lösung" von button421 funktioniert leider nicht...
    Beispiel:

    [autoit]

    Run("notepad.exe")
    WinWait("[CLASS:Notepad]")
    WinWaitClose("[CLASS:Notepad]")
    MsgBox(0,"Sind Sie sich sicher?","Tja.. ist wohl doch schon zu spät!")

    [/autoit]

    Wer immer nur das tut, was er bereits kann - wird auch immer nur das bleiben, was er bereits ist!