[VB.NET] Prüfen ob Programm bereits aktiv ist

rog2007

Grünschnabel
Hallo.

Ich möchte gern Prüfen ob meine Anwendung bereits aktiv ist und falls ja den neugestarteten prozess schließen.
Nach Googlen und Suche kam ich auf folgendes:

Code:
Dim _myprocess As String = Process.GetCurrentProcess().ProcessName.ToString
Dim myProcesses() As Process
Dim myProcess As Process
Dim zahl As Integer = 0
myProcesses = Process.GetProcessesByName(_myprocess)
For Each myProcess In myProcesses
            zahl = zahl + 1

            If zahl >= 2 Then
                'tue was
            End If

Next


so...nun weiss ich nicht genau was ich bei 'tue was reinschreiben soll.
ich hatte es soweit das der neue prozess gekillt wird, aber wenn der neue prozess eine höhere ProzessId als der eigentliche bekommt wird leider der ursprüngliche gekillt. das soll nicht passieren.

kann mir bitte wer auf die sprünge helfen?
 
Zuletzt bearbeitet:
Hi

Form.Close() würde nur was nützen, wenn auch ein Form geöffnet ist.
Besser wäre Application.Exit oder Environment.Exit
 
aso mit dem einen schließt man nur das form aber mit dem andern alles (beendet sozusagen das Programm)
 
Danke Leute.

Vielen Dank für die schnelle Hilfe.

Application.exit() hat nichts gebracht, aber Environmet.exit() ist sehr gut!!
Damit ist sogar das Problem mit der ProzessID behoben. Bestens.

Bei Environmet.exit() soll ich ein Integer als Exitcode übergeben. Wofür steht der? ich hab einfach mal ne 1 genommen.

Eine andere Kleinigkeit ergibt sich aus dem Environmet.exit(). Vielleicht hat jemand noch nen kleinen Tipp:

Ich hab ein TrayIcon neben der Uhr. Durch Environmet.exit() wird die Anwendung geschlossen falls sie schon offen ist, aber das TrayIcon bleibt und verschwindet erst wenn man mit der Maus drüber fährt. Vielleicht kennt ihr das ja.

Danke für Support :)
 
nicht genug nachgedacht. sorry.

einfach ein notifyIcon.visible = false vor dem environmet.exit()

aber was hat es mit dem exitcode auf sich?
hab grad gelesen das wäre unmanaged Code. Also bissle unsauber, oder?
 
aber was hat es mit dem exitcode auf sich?
hab grad gelesen das wäre unmanaged Code. Also bissle unsauber, oder?
Exitcode: Rückgabewert einer Anwendung an das System. 0 -> Anwendung erfolgreich ausgeführt. Alles andere -> Error. Wird eine Anwendung beispielsweise im Batchbetrieb ausgeführt, kann aufgrund dieses Rückgabewertes entsprechend darauf reagiert werden.

Unsauber? Wie kommst du darauf?
 

Neue Beiträge

Zurück