Prüfen ob ein (eigenes) Programm bereits läuft
In diesem Beitrag gehts es darum zu prüfen, ob das (eigene) Programm bereits geöffnet ist. Dies ist oft von Vorteil wenn ein Programm nur einmal ausgeführt werden soll und nicht ausversehen mehrfach ausgeführt wird, und eventuell auf die gleichen Daten zugreifen und sie dadurch schädigen.
Das Vorgehen hier ist ziemlich simpel und es gibt auch viele Ansätze dies festzustellen!
Alle geöffneten Programme bzw. Prozesse werden von VB.NET in einem Array für uns bereitgestellt. Diesen können wir mit dem Aufruf Process.GetProcesses. Dort müssen wir nur nach unserem Programm suchen und prüfen, ob es mehr als einmal auftaucht und diesen Prozess eventuell beenden!
Private Sub Form1_Load() Handles MyBase.Load
Dim zähler As Integer = 0
Dim pl As Process() = Process.GetProcesses
For Each p As Process In pl
If p.ProcessName = My.Application.Info.Title Then
zähler += 1
End If
Next
If zähler > 1 Then
MessageBox.Show("Programm läuft bereits!")
'Optional:
'---
End
'---
End If
End Sub
Es empfielt sich auch diese Abfrage beim Starten des Programms zu machen damit nicht schon irgendwelche Daten angesprochen werden und damit geschädigt werden!
September 8th, 2010
Private Sub Form1_Load() Handles MyBase.Load
Dim pl As Process() = Process.GetProcessesByName(My.Application.Info.Title)
If pl.length >= 1 Then
MessageBox.Show(“Programm läuft bereits!”)
‘Optional:
‘—
End
‘—
End If
End Sub