;Autor: Hroudtwolf EnableExplicit Prototype.l pProcessCallback ( lPID.l , lModuleID.l , lThreadAmount.l , lParentPID.l , lPrioClass.l , sExeFile.s , lParam.l ) Procedure EnumProcesses ( *Callback.pProcessCallback , lParam.l = #Null ) Protected lSnap .l Protected pPInfo .PROCESSENTRY32 If Not *Callback ProcedureReturn #False EndIf lSnap = CreateToolhelp32Snapshot_( #TH32CS_SNAPPROCESS , #Null ) If Not lSnap ProcedureReturn #False EndIf pPInfo\dwSize = SizeOf ( PROCESSENTRY32 ) If Process32First_( lSnap , pPInfo ) If Not *Callback ( pPInfo\th32ProcessID , pPInfo\th32ModuleID , pPInfo\cntThreads , pPInfo\th32ParentProcessID , pPInfo\pcPriClassBase , PeekS ( @ pPInfo\szExeFile ) , lParam ) ProcedureReturn #True EndIf While Process32Next_( lSnap , pPInfo ) If Not *Callback ( pPInfo\th32ProcessID , pPInfo\th32ModuleID , pPInfo\cntThreads , pPInfo\th32ParentProcessID , pPInfo\pcPriClassBase , PeekS ( @ pPInfo\szExeFile ) , lParam ) ProcedureReturn #True EndIf Wend EndIf CloseHandle_ ( lSnap ) ProcedureReturn #True EndProcedure Procedure ProcessCallback ( lPID.l , lModuleID.l , lThreadAmount.l , lParentPID.l , lPrioClass.l , sExeFile.s , lParam.l ) AddGadgetItem(1,-1,sExeFile,0,0) ProcedureReturn #True EndProcedure If OpenWindow(0,0,0,500,250,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered) ListViewGadget(1,10,10,480,230,0) EnumProcesses ( @ ProcessCallback () ) Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow EndIf