Form lässt sich nicht schließen

  • VB.NET

Es gibt 14 Antworten in diesem Thema. Der letzte Beitrag () ist von FreakJNS.

    Form lässt sich nicht schließen

    Hallo,
    ich habe letzten mit Visual Basic angefangen und bastle grad an einem Programm, dass den Bildschirm blockiert. Ich habe einen Sub in dem Steht dass die Anwendung nicht geschlossen werden kann:

    VB.NET-Quellcode

    1. Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) e.Cancel = True Shell("exe") End Sub


    Aber das Problem ist, wenn ich an einem Button stehen habe:

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click me.Close() End Sub


    passiert nichts. Es geht nicht zu. kann mir jemand helfen? ?(
    Shell? Wofür.
    Am besten so ein gebastel sein lassen - ein user sollte sein Programm schließen können wenn er will. Einen Button um das eigene Programm "wichtiger" zu machen failt und steht mit der timergesteuerten Progressbar auf einer Ebene

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

    VB.NET-Quellcode

    1. Dim Schließbar As Boolean = False
    2. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    3. Schließbar = True
    4. Me.Close()
    5. End Sub
    6. Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs)
    7. If Schließbar = True Then
    8. e.Cancel = False
    9. Shell("exe")
    10. ElseIf schließbar = False Then
    11. e.Cancel = True
    12. Shell("exe")
    13. End If
    14. End Sub
    @Mauricio: Mach mal einen Plan, was unter welchen Umständen genau passieren soll.
    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!
    Also:
    1. Bildschirm wird gesperrt
    2. Anwendung wartet auf Passwort
    3. Passwort wird korrekt eingegeben
    4. Programm soll schliessen wieder möglich machen und sich selbst schliessen
    (aso, ich habe eingestellt, dass man die Anwendung nicht schliessen kan
    Du willst also deutsche demokratische Bundesbürger und andere ausländische Kollegen daran hindern, Dein Ranzprogramm zu beenden, wenn sie keine Lust haben einzuloggen oder einfach das Passwort vergessen haben?
    Solch Programme sehen doch sehr stark nach illegal aus. :thumbdown:
    [/Close Request]
    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!
    Problem: Ich hab kein Vista hab XP

    Noch ne frage: Ich habe da stehen:

    VB.NET-Quellcode

    1. Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs)
    2. e.Cancel = True
    3. Shell("exe")
    4. End Sub

    und das sollte das schliessen verhindern, tut es aber nicht, man kann es immer noch mit [Alt]+[F4] beebden. Warum?

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

    Richtig - einfach Win+L und der Desktop ist gesperrt - auch unter WinXP.
    Warum man das Programm mit dem TaskManager abschießen kann? Ganz einfach: Das Betriebsystem (egal ob windows, unix, etc) verwaltet die Prozesse, gibt ihnen Rechnenzeit, etc und kann ihnen eben auch den garausmachen. Ein Klick auf das Kreuz ist nach dem Motto "Hallo Programm, wenn möglich beende dich doch" (das Programm kann sich also querstellen und das beenden verhindern oder vorher noch Einstellungen speichern, Verbindungen trennen, ...) - ein "Prozess beenden" im Taskmanager (oder unter Unix ein kill -9 ) ist etwas radikaler, so wie eine Schrotflinte in etwa, da wird der Prozess einfach abgeschossen egal was er davon hält. ALT+F4 müsste demnach ein "prozess beenden" wie im Taskmanager auslösen.