public static Process RunningInstance()  
 {  
      Process current = Process.GetCurrentProcess(); 
      Process[] processes = Process.GetProcessesByName (current.ProcessName); 
       //Loop through the running processes in with the same name 
  
       foreach (Process process in processes) 
        {  
           //Ignore the current process 
             if ( != current.Id) 
            { 
                 //Make sure that the process is running from the exe file. 
                  if (Assembly.GetExecutingAssembly().Location.Replace("/", "\\") == current.MainModule.FileName) 
                  { 
                      //Return the other process instance. 
                      return process; 
                  } 
             } 
        } 
        //No other instance was found, return null. 
        return null; 
  } 
   
 [VB.NET] 
  
 Public Shared Function RunningInstance() As Process 
  
      Dim current As Process = Process.GetCurrentProcess() 
  
      Dim processes As Process() = Process.GetProcessesByName(current.ProcessName) 
  
      'Loop through the running processes in with the same name 
  
      Dim process As Process 
  
      For Each process In processes 
  
           'Ignore the current process 
  
           If  <> current.Id Then 
  
                'Make sure that the process is running from the exe file. 
  
                If [Assembly].GetExecutingAssembly().Location.Replace("/", "\") = current.MainModule.FileName Then 
  
                     'Return the other process instance. 
  
                     Return process 
  
                End If 
  
           End If 
  
      Next process 
  
      'No other instance was found, return null. 
  
      Return Nothing 
  
 End Function 'RunningInstance