Single instance of VB.NET application

The Process class in the System.Diagnostics namespace offers valuable functionality to monitor and manage system processes within a computer system. It enables developers to track processes, start new processes, and stop existing processes programmatically.

To determine whether other instances of a VB.NET application are currently running on the system, one approach is to obtain a list of all the processes running on the system and check if an instance of the application is present within that list.

The System.Diagnostics namespace provides a collection of classes that allow interaction with system processes, event logs, and performance counters. One useful method is Process.GetProcessesByName, which retrieves an array of Process components associated with all the running processes that share the same executable file name on the local computer.

Dim _process() As Process _process = Process.GetProcessesByName(Process.GetCurrentProcess().ProcessName)

The above code _process() array receiving all the associated processes. If the _process() array contains more than one instance , then we should clear the instance already exist.


By using Process.GetProcessesByName, developers can obtain a collection of Process instances representing all the processes with the specified executable file name. This collection can then be examined to determine if an instance of the desired VB.NET application is present or not.

Full Source VB.NET
Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim _process() As Process _process = Process.GetProcessesByName(Process.GetCurrentProcess().ProcessName) If _process.Length > 1 Then MessageBox.Show("Multiple instancess running...") Else MessageBox.Show("Single instance only....") End If End Sub End Class


This approach empowers developers to dynamically check for the existence of other instances of their VB.NET application and take appropriate action based on the results. It enables effective process monitoring and coordination within the system, allowing for efficient resource management and application behavior.