Code : Tout sélectionner
;path.s=Space(255)
;GetModuleFileName_(0,@path,255)
;While Right(path,1)<>"\"
;path=Left(path,Len(path)-1)
;Wend
;hWnd=Val(ProgramParameter())
;If SendMessage_(hWnd,673, 0, GetCurrentProcessId_())=0
;End
;EndIf
Dim actuel.s(100)
Structure PROCESSENTRY32
dwSize.l
cntUsage.l
th32ProcessID.l
th32DefaultHeapID.l
th32ModuleID.l
cntThreads.l
th32ParentProcessID.l
pcPriClassBase.l
dwFlags.l
szExeFile.b[260]
EndStructure
DefType.PROCESSENTRY32 Proc32
Proc32\dwSize = SizeOf(PROCESSENTRY32)
If OpenLibrary (0,"kernel32.dll")=0
MessageRequester("Relance","Echec initialisation")
End
Else
Repeat
nbactuel=0
s=CallFunction(0,"CreateToolhelp32Snapshot",274,0)
If s
If CallFunction(0,"Process32First",s, @Proc32)
If Len(PeekS(@Proc32\szExeFile))>0 And Proc32\th32ProcessID>0
nbactuel=nbactuel+1
actuel(nbactuel)="&&"+PeekS(@Proc32\szExeFile)+"&&"+Str(Proc32\th32ProcessID)
EndIf
While CallFunction (0, "Process32Next", s, @Proc32)
If Len(PeekS(@Proc32\szExeFile))>0 And Proc32\th32ProcessID>0
nbactuel=nbactuel+1
actuel(nbactuel)="&&"+PeekS (@Proc32\szExeFile)+"&&"+Str(Proc32\th32ProcessID)
EndIf
Wend
EndIf
EndIf
CloseHandle_(s)
SortArray(actuel(),2,1,nbactuel)
;If nbactuel=0
;RunProgram(path+"relance.exe",Str(hWnd),"")
;End
;EndIf
resultat.s=""
For k=1 To nbactuel
resultat=resultat+actuel(k)
Next k
;If SendMessage_(hWnd,674, @resultat, Len(resultat))=0
; RunProgram(path+"relance.exe",Str(hWnd),"")
;End
;endif
Delay(50)
ForEver
EndIf
End
ouvrez le taskmanager et lancez ça : la mémoire utilisée augmente régulièrement, et au bout d'un moment l'appel à CreateToolhelp32Snapshot échoue.


