Comment savoir si un exécutable est actif ?
Publié : mar. 19/févr./2019 0:15
Bonjour a tous,
Je suis a la recherche d'une solution simple pour savoir si un exe est déjà lancé.
Je met un bout de code qui fonctionne bien et que j'utilise depuis le début, mais j'aimerais savoir si vous avez une solution plus moderne a me proposer.
Merci d'avance,
CAGE
Je suis a la recherche d'une solution simple pour savoir si un exe est déjà lancé.
Je met un bout de code qui fonctionne bien et que j'utilise depuis le début, mais j'aimerais savoir si vous avez une solution plus moderne a me proposer.
Merci d'avance,
CAGE
Code : Tout sélectionner
EnableExplicit
Procedure.i getNamePID(ProcessName.s,*ptrPID)
Protected HSnap.l,Prec.processentry32,result.l=#False
HSnap=CreateToolhelp32Snapshot_(#TH32CS_SNAPPROCESS,0)
If HSnap=#INVALID_HANDLE_VALUE
ProcedureReturn result
EndIf
Prec\dwSize=SizeOf(prec)
If Not Process32First_(HSnap,Prec)
ProcedureReturn result
EndIf
Repeat
If LCase(GetFilePart(PeekS(@Prec\szexefile)))=LCase(ProcessName)
PokeL(*ptrPID,Prec\th32ProcessID)
result=#True
Break
EndIf
Until Not Process32Next_(HSnap,Prec)
CloseHandle_(HSnap)
ProcedureReturn result
EndProcedure
Repeat
Define ptrPID = 0
Define ExeName$ = "Notepad.exe"
ClearDebugOutput()
If getNamePID(ExeName$,@ptrPID)
Debug "Notepad est lancé!"
Else
Debug "Notepad n'est pas lancé!"
EndIf
Sleep_(3000)
ForEver