Hallo,
hoffentlich könnt ihr mir hier helfen.
Ich habe ein Programm mit VB geschrieben, was auch gut funtktioniert.
Kurz zum Aufbau (hat aber nichts mit dem Problem zu tun - nur zur Erklärung):
Es gibt ein Userform, welches aber nur selten genutzt wird, denn es dient nur zur Einstellung des Programms (gespeichert wird in der WindowsRegistry).
Nach dem Autostart erscheint im WindowsTray ein Icon, das angeklickt werden kann (rechts oder links). Das Kontextmenü, welches sich dann öffnet kann in dem UserForm eingestellt werden,
aber die untersten beiden Einträge sind IMMER 'Einstellungen' und 'Beenden'. (Einstellungen ruft die Userform auf und Beenden beendet das Programm).
Normalerweise läuft das Programm aber immer (startet mit dem PC und endet, wenn der PC runter fährt). Nun ist es mir mehrfach versehentlich passiert, dass ich das Kontextmenü öffnen wollte und dann irgendwie auf 'Beenden' geklickt habe.
Um dies zu verhindern habe ich mir eine Sicherungsfrage eingebaut:
Hiermit sollte das versehentliche Schließen verhindert werden, was gut sehr gut funktioniert, ABER
wenn ich den PC (Windows 10 Pro) neu starten oder herunterfahren möchte, kommt der sicherlich bekannte blaue Bildschirm "Folgende Programme verhindern den Neustart" und mein kleines Programm steht drin.
Deaktiviere ich diese Prozedur, dann startet Windows ohne Probleme.
Die Frage nach der Speicherung steht zwar noch da, aber das kann eigentlich nicht mehr vorkommen - es kommt immer nur die erste Meldung.
Weiß hier jemand Rat?
Viele Grüße
Robin
hoffentlich könnt ihr mir hier helfen.
Ich habe ein Programm mit VB geschrieben, was auch gut funtktioniert.
Kurz zum Aufbau (hat aber nichts mit dem Problem zu tun - nur zur Erklärung):
Es gibt ein Userform, welches aber nur selten genutzt wird, denn es dient nur zur Einstellung des Programms (gespeichert wird in der WindowsRegistry).
Nach dem Autostart erscheint im WindowsTray ein Icon, das angeklickt werden kann (rechts oder links). Das Kontextmenü, welches sich dann öffnet kann in dem UserForm eingestellt werden,
aber die untersten beiden Einträge sind IMMER 'Einstellungen' und 'Beenden'. (Einstellungen ruft die Userform auf und Beenden beendet das Programm).
Normalerweise läuft das Programm aber immer (startet mit dem PC und endet, wenn der PC runter fährt). Nun ist es mir mehrfach versehentlich passiert, dass ich das Kontextmenü öffnen wollte und dann irgendwie auf 'Beenden' geklickt habe.
Um dies zu verhindern habe ich mir eine Sicherungsfrage eingebaut:
VB.NET-Quellcode
- Private Sub UF_Settings_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
- 'Programm beenden
- Dim a As Object
- 'Abbruch des Startes mit dem X an der Meldung
- If BlnKillStart = True Then Exit Sub
- a = MsgBox("Soll das Programm komplett beendet werden, einschl. TraySymbol?", vbYesNo + vbDefaultButton2 + vbQuestion, "kurze Frage zur Sicherheit...")
- If a = vbYes Then
- 'Prüfe, ob min 1 Speichermethode ausgewählt wurde
- If ChkSaveRegistry.Checked = False And ChkSaveDatei.Checked = False Then
- 'keine Speichermethode
- a = MsgBox("Es wurde KEINE Speichermethode gewählt!" & L2 & "Alle Änderungen gehen verloren!" & L2 &
- "Programm trotzdem beenden?", vbYesNo + vbCritical + vbDefaultButton2, "WARNUNG - Datenverlust - WARNUNG")
- If a = vbNo Then e.Cancel = True
- Else
- 'speichern
- Speichern()
- e.Cancel = False
- End If
- Else
- 'nicht beenden
- e.Cancel = True
- End If
- End Sub
Hiermit sollte das versehentliche Schließen verhindert werden, was gut sehr gut funktioniert, ABER
wenn ich den PC (Windows 10 Pro) neu starten oder herunterfahren möchte, kommt der sicherlich bekannte blaue Bildschirm "Folgende Programme verhindern den Neustart" und mein kleines Programm steht drin.
Deaktiviere ich diese Prozedur, dann startet Windows ohne Probleme.
Die Frage nach der Speicherung steht zwar noch da, aber das kann eigentlich nicht mehr vorkommen - es kommt immer nur die erste Meldung.
Weiß hier jemand Rat?
Viele Grüße
Robin
Viele Grüße
Robin
Robin