BigBasti's Blog About Me & my Digital Lifestyle

4Jun/091

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!

Share and Enjoy:
  • Print
  • Digg
  • del.icio.us
  • Facebook
  • Yigg
  • Google Bookmarks
  • PDF
  • MySpace
  • email
  • Identi.ca
  • Twitter

hat dir dieser Artikel gefallen?

Dann abonniere doch diesen Blog per RSS Feed!

Kommentare (1) Trackbacks (0)
  1. 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


Leave a comment

(required)

Noch keine Trackbacks.

Get Adobe Flash playerPlugin by wpburn.com wordpress themes