Abmelden vor dem Beenden des Programms

  • VB.NET

Es gibt 27 Antworten in diesem Thema. Der letzte Beitrag () ist von sonne75.

    Abmelden vor dem Beenden des Programms

    Hallo, Ich versuche zurzeit meine Anwendung vor dem beenden sich "Abmelden" zu lassen von einer Webseite, sprich sobald ds Programm durch was auch Immer beendet wird soll es sich noch kurz dort abmelden, das ganze dauert weniger als 2 Sekunden, habe es bereits mit dem Close Event der Form versucht, welches allerdings nur über den [X] Button dann eben funktioniert, Taskmanager und Bsp. Herrunterfahren klappen beide nicht, dann habe ich etwas gesucht und was gefunden was das Problem lösen sollte, hat aber auch nicht funktioniert, ist es überhaubtmöglich bei jeglicher art von Schließung davor noch irgendetwas Auszuführen oder wie in diesem fall sich Abzumelden?
    @froyo321 Probier mal das FormClosing-Event:

    VB.NET-Quellcode

    1. Private Sub Form1_FormClosing(sender As System.Object, e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing
    2. MessageBox.Show(e.CloseReason.ToString) ' zur Info
    3. ' hier
    4. End Sub
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    RodFromGermany schrieb:

    @froyo321 Probier mal das FormClosing-Event:

    VB.NET-Quellcode

    1. Private Sub Form1_FormClosing(sender As System.Object, e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing
    2. MessageBox.Show(e.CloseReason.ToString) ' zur Info
    3. ' hier
    4. End Sub


    Wie ich bereits geschrieben habe habe ich es bereits damit Versucht :D Taskmanager und es meldet nichts. Eben nur über den [X] Button, noch andere möglichkeiten?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „froyo321“ ()

    hmm.. das Event Form_Closing ist schon das richtige. Da ist der Tipp von RodFromGermany goldrichtig.
    Egal wie es beendet wird (Per X, per ProgrammCode, selbst per Taskmanager, oder wie auch immer) es wird immer gefeuert. (ich benutze es selber)
    Nimm mal (nur aus Spass) ein total leeres neues Projekt und schreibe

    Quellcode

    1. Private Sub Form1_FormClosing(sender As Object, e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
    2. MsgBox(" uuuunnnnddddd Tschüüssss")
    3. End Sub

    .. dann teste es mal.

    Evtl. hast du einen Fehler in deiner Routine, sodaß ein Fehler ausgelöst wird, den man nicht merkt, und dadurch Sang und Klanglos aus der Routine springt?
    Schau mal in diese Richtung!
    Dann steckt der Wurm bei dir tiefer.

    Also das Event ist ja nun mal direkt dafür da, kurz vorm Selbstmord nochmal nachzufragen, ob's denn Recht ist.
    Wie gesagt, ich nutze es ja selbst, und das nicht nur 1x.

    Da wird dir wohl keiner helfen können.

    sonne75 schrieb:

    Haltepunkt ist nur zum Testen da, ob das Programm da reinspringt. Aber wenn es da reinspringt, heißt es, es führt auch die Methoden aus, die du da reinschreibst.

    Hier steht, wie man sein Programm testet:

    Debuggen, Fehler finden und beseitigen


    Hilft mir leider nicht, debugge zwar, aber das ganze FormClosing Event wird beim Debuggen quasi ignoriert, sprich garnichts gemeldet. Per X Button geht es zu und die MsgBox auf aber per Taskmanager nicht.
    @froyo321
    Vielleicht ein Problem in den ProjektSettings?
    • Wie wird Dein Programm denn gestartet? Über den Aufruf einer Form, oder über eine Sub Main?
    • Was ist als Modus für das Herunterfahren eingestellt?
    Das Verhalten beim Beenden ist dann jeweils anders ...

    us4711 schrieb:

    @froyo321
    Vielleicht ein Problem in den ProjektSettings?
    • Wie wird Dein Programm denn gestartet? Über den Aufruf einer Form, oder über eine Sub Main?
    • Was ist als Modus für das Herunterfahren eingestellt?
    Das Verhalten beim Beenden ist dann jeweils anders ...


    Anwendungstyp: Windows Forms-Anwendung
    Startformular: Form1
    Modus für das Heruntferfahren: Beim Schließen des Startformulars
    @froyo321

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Form1_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
    3. MessageBox.Show("Form1_FormClosing erricht.")
    4. End Sub
    5. End Class

    Also, das geht, sowohl in der IDE alsauch bei Aufrif der EXE:
    • X-Button
    • Kontextmenu bei RightClick auf Titelzeile
    • Taskmanager

    Geht nicht bei Abbruch in der IDE

    //Edit;
    Die Frauenpower von @sonne75 war mal wieder überzeugender. ;)

    us4711 schrieb:

    @froyo321

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Form1_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
    3. MessageBox.Show("Form1_FormClosing erricht.")
    4. End Sub
    5. End Class

    Also, das geht, sowohl in der IDE alsauch bei Aufrif der EXE:
    • X-Button
    • Kontextmenu bei RightClick auf Titelzeile
    • Taskmanager

    Geht nicht bei Abbruch in der IDE

    //Edit;
    Die Frauenpower von @sonne75 war mal wieder überzeugender. ;)


    Habe es bereits im Debug und in der Erstellten exe getestet, der Taskmanager haut es runter ohne Messagebox, beide male.

    Getestet auf 2 Betriebssystem:
    Windows 7 Home Premium & Windows 7 Professionel.

    sonne75 schrieb:

    froyo321 schrieb:

    der Taskmanager haut es runter ohne Messagebox

    Wie schon gesagt, MessageBox wird bei mir auch nicht geöffnet. Aber trotzdem springt er beim Debuggen rein. Ich vermute, du hast den Haltepunkt nicht richtig gesetzt...


    Inwiefern nicht richtig gesetzt? Es ist doch ein event, verstehe nicht wieso es bei anderen geht aber auf meinen beiden Rechnern nicht :D