N'autoriser qu'une seule instance de l'application

Contenu du snippet

Function PrevInstance() As Integer
 Dim ProcessList As System.Diagnostics.Process()
 'Récuperer toutes les intances ayant le même nom et chemin que Application.ExecutablePath
 ProcessList = System.Diagnostics.Process.GetProcessesByName(System.Diagnostics.Process.GetCurrentProcess.ProcessName)

 If (ProcessList.Count>1) then
  Dim Proc As System.Diagnostics.Process
  Dim xCount As Integer = 0
  Dim xId As Integer = 0

  For Each Proc In ProcessList                
   if (Proc.MainModule.FileName = Process.GetCurrentProcess().MainModule.FileName) then                    
    if Proc.Id <> Process.GetCurrentProcess().Id then xId = Proc.Id
    xCount = xCount + 1                                        
   End If
  Next
  If xCount > 1 then
   Return xId
  Else
   Return 0
  End If   
 Else
  Return 0
 End If    
End Function
'UTILISATION
Dim IdPrevInstance As Integer

IdPrevInstance = PrevInstance
If IdPrevInstance <> 0 Then
   MessageBox.Show("App.PrevInstance")
   'Activer la première
   AppActivate(IdPrevInstance)
   'Fermer cette instance
   Application.Exit()
   Exit Sub
End If


Compatibilité : VB 2008

Disponible dans d'autres langages :

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.