Conn3xt
Код:
procedure Module32List(S:TStrings);
var Module32: TprocessEntry32;
SS: THandle;
Next: Bool;
begin
//инициировать структуру TModuleEntry32
Module32.dwSize:=SizeOf(TprocessEntry32);
//сделать "снимок" состояния системы
SS:=CreateToolHelp32Snapshot(TH32CS_SNAPprocess,0);
//найти первый модуль
if process32First(SS,Module32) then
begin
//добавить строку в список
S.Add(Module32.szExeFile);
Repeat
//найти все последующие модули
Next:=process32Next(SS,Module32);
//добавить строку в список
if Next Then S.Add(Module32.szExeFile);
until Not Next;
end;
CloseHandle(SS);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Module32List(ListBox1.Items);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ListBox1.Items.Clear;
Module32List(ListBox1.Items);
end;
Это на делфи, на vb так же. Этот кусок показывает список процессов. Почти то же самое, но другой функцией на асме из моей проги hider:
Код:
FillListBox PROC NEAR
call SendMessageA,dword ptr [LBhandle],LB_RESETCONTENT,0,0
call EnumWindows,offset EnumWindowsProc,dword ptr [LBhandle]
call SendMessageA,dword ptr [LBhandle],LB_FINDSTRING,0,offset hidertitle
call SendMessageA,dword ptr [LBhandle],LB_DELETESTRING,eax,0
RET
FillListBox ENDP
EnumWindowsProc PROC STRCALL, ha:hwnd, LP:lParam
call GetWindowTextA,dword ptr [ebp+08h], offset wndtitle,255
test eax,eax
je ewp1
mov eax,[ischecked]
test eax,eax
jne ewp3
call IsWindowVisible,dword ptr [ebp+08h]
test eax,eax
je ewp2
ewp3: call SendMessageA,dword ptr [LBhandle],LB_ADDSTRING,0,offset wndtitle
ewp2: xor eax,eax ;---mov eax,1
ewp1: inc eax ;_/
RET
EnumWindowsProc ENDP
Остальное на msdn.com (что то типа Memory Management Functions)