Пожалуйста, выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.
Следующие вопросы задаются очень часто, подробно разобраны в FAQ и, поэтому, будут безжалостно удаляться: 1. Преобразовать переменную типа String в тип PChar (PAnsiChar) 2. Как "свернуть" программу в трей. 3. Как "скрыться" от Ctrl + Alt + Del (заблокировать их и т.п.) 4. Как запустить программу/файл? (и дождаться ее завершения) 5. Как перехватить API-функции, поставить hook? (перехват сообщений от мыши, клавиатуры - внедрение в удаленное адресное прстранство) ... (продолжение следует) ... Внимание: Попытки открытия обсуждений реализации вредоносного ПО, включая различные интерпретации спам-ботов, наказывается предупреждением на 30 дней. Повторная попытка - 60 дней. Последующие попытки - бан. Мат в разделе - бан на три месяца... Полезные ссылки: MSDN LibraryFAQ разделаПоиск по разделуКак правильно задавать вопросы Выразить свое отношение к модераторам раздела можно здесь:Rouse_, Krid
type TForm1 = class(TForm) Timer1: TTimer; ListView1: TListView; procedure Timer1Timer(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } isNT: boolean; procedure fillTable(Process32: TProcessEntry32); public { Public declarations } end;
var Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.fillTable(Process32: TProcessEntry32); var Item: TListItem; begin Item:=ListView1.Items.Add(); if isNT then Item.Caption:=Process32.szExeFile // Имя процесса else Item.Caption:=extractFileName(Process32.szExeFile); Item.SubItems.Add(IntToStr(Process32.th32ProcessID)); // ID процесса Item.SubItems.Add(IntToStr(Process32.cntThreads)); // Потоки Item.SubItems.Add(IntToStr(Process32.th32ParentProcessID)); // ID родителя Item.SubItems.Add(IntToStr(Process32.pcPriClassBase)); // Приоритет end;
procedure TForm1.Timer1Timer(Sender: TObject); var Process32: TProcessEntry32; SS: THandle; Next: BOOL; begin Process32.dwSize:=SizeOf(TProcessEntry32); SS:=createToolHelp32Snapshot(TH32CS_SNAPPROCESS, 0); if Process32First(SS, Process32) then begin ListView1.Clear; fillTable(Process32); repeat Next:=Process32Next(SS, Process32); if Next then fillTable(Process32) until not Next end; CloseHandle(SS); Application.ProcessMessages() end;
procedure TForm1.FormCreate(Sender: TObject); begin isNT:=Win32Platform=VER_PLATFORM_WIN32_NT end;
end.
Сообщение отредактировано: Mischka -
0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)