Code: Alles auswählen
;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