با این تابع لیست پروسه ها رو بگیرید :
Procedure GetTasklist(fList:TstringList);
Function EnumWindowProc(Wnd:HWnd;Lst:TstringList):bool;stdC all;
var
Caption:array[0..128] of char;
Begin
Result:=true;
If (IsWindowVisible(wnd))and
((GetWindowLong(wnd,gwl_HwndParent)=0) or
(Hwnd(GetWindowLong(Wnd,Gwl_HwndParent))=GetDeskto pWindow)) and
((GetWindowLong(wnd,gwl_ExStyle)and ws_Ex_ToolWindow)=0) then
begin
SendMessage(wnd,Wm_GetText,SizeOf(Caption),Integer (@Caption));
lst.Add((caption));
end;
end;
Begin
If not assigned(fList) then
flist:=tstringList.Create;
flist.Clear;
EnumWindows(@EnumWindowProc,Integer(fList));
end;
البته همه اینها قبلا در سایت مطرح شده ، اگه جستجو کنید زودتر به نتیجه می رسید.