cs_vanhalen
Messages postés2Date d'inscriptionvendredi 6 janvier 2006StatutMembreDernière intervention16 mars 2007
-
16 mars 2007 à 17:29
cs_kalif
Messages postés362Date d'inscriptionmardi 18 décembre 2001StatutMembreDernière intervention24 août 2012
-
17 mars 2007 à 15:07
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
cs_kalif
Messages postés362Date d'inscriptionmardi 18 décembre 2001StatutMembreDernière intervention24 août 2012 17 mars 2007 à 15:07
salut, personnelement moi j'utilise ce code pour empecher 2x une appli de se lancer
'Code by Adam Verwijs
Const ERROR_ALREADY_EXISTS = 183&
Private Declare Function CreateMutex Lib "kernel32" Alias "CreateMutexA" (lpMutexAttributes As Any, ByVal bInitialOwner As Long, ByVal lpName As String) As Long
Private Declare Function ReleaseMutex Lib "kernel32" (ByVal hMutex As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Sub Form_Load()
Dim hMutex As Long
'Try to create a new Mutex
hMutex = CreateMutex(ByVal 0&, 1, App.Title)
'Did the mutex already exist?
If (Err.LastDllError = ERROR_ALREADY_EXISTS) Then
'Clean up
ReleaseMutex hMutex
CloseHandle hMutex
'More than one instance detected
MsgBox "More than one instance"
End
Else
'form load code
End If
End Sub
MadM@tt
Messages postés2167Date d'inscriptionmardi 11 novembre 2003StatutMembreDernière intervention16 juillet 20091 16 mars 2007 à 20:53
Ahhhhh autant pour moi lol...
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 16 mars 2007 à 20:52
MadM@tt -> non, appli externe (description trompeuse)
vanhalen -> j'attends la maj au plus vite, ton code risque de ne pas passer la nuit :$
MadM@tt
Messages postés2167Date d'inscriptionmardi 11 novembre 2003StatutMembreDernière intervention16 juillet 20091 16 mars 2007 à 20:36
Salut, App.Previnstance ne permet pas de faire la meme chose ? (je suis pris d'un doute la)
(et content que mon code ait pu servir)
dead33
Messages postés29Date d'inscriptionvendredi 31 mars 2006StatutMembreDernière intervention 4 décembre 2007 16 mars 2007 à 19:41
bonjour
seul "modDeclarProcess.bas" et "modProcess.bas" sont utile
alors elimine les autre du zip
a+
bonne prog...
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 16 mars 2007 à 19:21
Salut, l'intérêt de cette source me semble limité, parce que :
- si je lance une autre application "calc.exe" qui n'a rien à voir avec la calculatrice, elle ne se lancera pas (pas de test sur le fichier *.exe cible du processus)
- quel intérêt de tuer plusieurs instances d'un même programme ??
- programmaticalement parlant, il n'y a que deux For..Next et un If... Then..., des modules complètement inutiles ici (et de Madm@tt en plus), et même le peu de code de la form est incohérent (constante, API, variables, et instructions inutiles)
Enfin bon, je suis pas admin...
@+
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 16 mars 2007 à 18:25
salut,
en remplaçant le 2e par calc.exe (je suppose que c'est un oubli), et en ajoutant doevents (plus pratique ...), ton appli plante lors de la destruction de la première instance de calc.exe
ps : fait le tri dans les modules, pas la peine de bourrer un zip pour le plaisir alors que seules 3 procedures sont vraiment utiles
++
cs_vanhalen
Messages postés2Date d'inscriptionvendredi 6 janvier 2006StatutMembreDernière intervention16 mars 2007 16 mars 2007 à 17:29
avant d'oublier un merci pour MadM@tt pour sa sourse (j'ai pas voulu y toucher j'ai pas eu le temps d'eliminer les fonctions non utilisée :)) et je soutient son avi pour les API
17 mars 2007 à 15:07
'Code by Adam Verwijs
Const ERROR_ALREADY_EXISTS = 183&
Private Declare Function CreateMutex Lib "kernel32" Alias "CreateMutexA" (lpMutexAttributes As Any, ByVal bInitialOwner As Long, ByVal lpName As String) As Long
Private Declare Function ReleaseMutex Lib "kernel32" (ByVal hMutex As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Sub Form_Load()
Dim hMutex As Long
'Try to create a new Mutex
hMutex = CreateMutex(ByVal 0&, 1, App.Title)
'Did the mutex already exist?
If (Err.LastDllError = ERROR_ALREADY_EXISTS) Then
'Clean up
ReleaseMutex hMutex
CloseHandle hMutex
'More than one instance detected
MsgBox "More than one instance"
End
Else
'form load code
End If
End Sub
16 mars 2007 à 20:53
16 mars 2007 à 20:52
vanhalen -> j'attends la maj au plus vite, ton code risque de ne pas passer la nuit :$
16 mars 2007 à 20:36
(et content que mon code ait pu servir)
16 mars 2007 à 19:41
seul "modDeclarProcess.bas" et "modProcess.bas" sont utile
alors elimine les autre du zip
a+
bonne prog...
16 mars 2007 à 19:21
- si je lance une autre application "calc.exe" qui n'a rien à voir avec la calculatrice, elle ne se lancera pas (pas de test sur le fichier *.exe cible du processus)
- quel intérêt de tuer plusieurs instances d'un même programme ??
- programmaticalement parlant, il n'y a que deux For..Next et un If... Then..., des modules complètement inutiles ici (et de Madm@tt en plus), et même le peu de code de la form est incohérent (constante, API, variables, et instructions inutiles)
Enfin bon, je suis pas admin...
@+
16 mars 2007 à 18:25
en remplaçant le 2e par calc.exe (je suppose que c'est un oubli), et en ajoutant doevents (plus pratique ...), ton appli plante lors de la destruction de la première instance de calc.exe
ps : fait le tri dans les modules, pas la peine de bourrer un zip pour le plaisir alors que seules 3 procedures sont vraiment utiles
++
16 mars 2007 à 17:29