Grüß euch,
Ich bin gerade dabei eine Art "Totmannschalter" für ein Drittprogramm zu erstellen. Das Ganze wurde von mir so erstellt das beim beim starten des Programms das Drittprogramm mitgestartet wird und nach einer gewissen Zeit eine
MessageBox erscheint die fragt ob man weiterarbeiten möchte. Wenn ja wird der Counter zurückgesetzt, wenn nein oder keine Reaktion des Users wird das mein Programm und das Drittprogramm beendet. Das funktioniert auch alles wunderbar
Jetzt habe ich folgendes Problem:
Benutze ich einfach MessageBox.Show(Message) läuft der Counter im Hintergrund weiter.
Benutze ich aber MessageBox.Show(Message, "Warnung", MessageBoxButtons.YesNo, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly) stoppt der Counter bis mit der MessageBox interagiert wird.
Ich schätze es liegt an der "MessageBoxOptions.DefaultDesktopOnly"-Option, diese brauche ich aber damit sich das Fenster in den Vordergrund schiebt.
Gibt es dafür eine Alternative die den Counter weiterlaufen lässt?
Hier mein Code abgeändert auf notepad
LG
Bernsi
Ich bin gerade dabei eine Art "Totmannschalter" für ein Drittprogramm zu erstellen. Das Ganze wurde von mir so erstellt das beim beim starten des Programms das Drittprogramm mitgestartet wird und nach einer gewissen Zeit eine
MessageBox erscheint die fragt ob man weiterarbeiten möchte. Wenn ja wird der Counter zurückgesetzt, wenn nein oder keine Reaktion des Users wird das mein Programm und das Drittprogramm beendet. Das funktioniert auch alles wunderbar
Jetzt habe ich folgendes Problem:
Benutze ich einfach MessageBox.Show(Message) läuft der Counter im Hintergrund weiter.
Benutze ich aber MessageBox.Show(Message, "Warnung", MessageBoxButtons.YesNo, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly) stoppt der Counter bis mit der MessageBox interagiert wird.
Ich schätze es liegt an der "MessageBoxOptions.DefaultDesktopOnly"-Option, diese brauche ich aber damit sich das Fenster in den Vordergrund schiebt.
Gibt es dafür eine Alternative die den Counter weiterlaufen lässt?
Hier mein Code abgeändert auf notepad
VB.NET-Quellcode
- Imports System.ComponentModel
- Public Class Form1
- Dim reset As Boolean = False
- Dim countdown As Integer = 30
- Dim CustomProcess As New System.Diagnostics.Process()
- Dim Message As String = "Vorsicht Notepad wird in 10 sec geschlossen. Wollen sie weiterarbeiten?"
- Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
- countdown = countdown - 1
- TextBox1.Text = countdown
- If countdown = 10 Then
- MessageBox.Show(Message, "Warnung", MessageBoxButtons.YesNo, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly)
- 'MessageBox.Show(Message)
- If DialogResult.Yes Then
- countdown = 30
- ElseIf DialogResult.Yes = False Then
- Me.Close()
- End If
- ElseIf countdown = 0 Then
- 'programm schließen
- Me.Close()
- ElseIf CustomProcess.HasExited = True Then
- Me.Close()
- End If
- End Sub
- Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
- Timer1.Interval = 1000
- Timer1.Start()
- CustomProcess.StartInfo.FileName = "notepad.exe"
- CustomProcess.Start()
- 'Me.WindowState.Minimized
- End Sub
- Private Sub Form1_Closing(sender As Object, e As CancelEventArgs) Handles Me.Closing
- Try
- CustomProcess.Kill()
- Catch ex As Exception
- End Try
- End Sub
- End Class
LG
Bernsi