Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

о tprocessentry32


фывыч ©   (2005-09-27 19:01:00) 

у мя есть ID процесса, как получить инфу о нем через tprocessentry32, у самого не получается


begin...end   (2005-09-29 20:40:00) [1]

> фывыч   (29.09.05 20:27) [4]

1. Использовать OpenProcess + GetProcessImageFileName (только для XP).
2. Использовать OpenProcess + GetModuleFileNameEx (только для NT-систем).
3. Получить снимок модулей нужного процесса и найти нужный модуль -- CreateToolHelp32Snapshot c TH32CS_SNAPMODULE + Module32First.
4. Получить снимок всех процессов и найти сведения о процессе с нужным Id -- CreateToolHelp32Snapshot с TH32CS_SNAPPROCESS + Process32First/Process32Next.


фывыч   (2005-09-29 20:27:00) [2]

и что? как проблему-то решить?


umbra   (2005-09-29 20:27:00) [3]


> как проблему-то решить?


какую?


begin...end   (2005-09-29 13:44:00) [4]

> фывыч   (29.09.05 13:37) [2]

> Snap:=CreateToolHelp32Snapshot(TH32CS_SNAPPROCESS, StrToInt('$'
> + Copy(TreeView1.Selected.Text, 1, 8)));

?!

th32ProcessID

[in] Process identifier of the process to be included in the snapshot. This parameter can be zero to indicate the current process. This parameter is used when the TH32CS_SNAPHEAPLIST, TH32CS_SNAPMODULE, or TH32CS_SNAPALL value is specified. Otherwise, it is ignored and all processes are included in the snapshot.


фывыч   (2005-09-29 13:37:00) [5]

вот так не получается (часть кода, пытаемся получить, например, имя екзешника, ID процесса лежит в treeview в виде 8-ми значного HEX)
var
 Snap: THandle;
 ProcInfo: TProcessEntry32;
begin
 if TreeView1.Selected <> nil then
 begin
   Snap:=CreateToolHelp32Snapshot(TH32CS_SNAPPROCESS, StrToInt('$' + Copy(TreeView1.Selected.Text, 1, 8)));
   if Snap <> 0 then
   begin
     ProcInfo.dwSize:=SizeOf(TProcessEntry32);
     Process32First(Snap, ProcInfo);
     Label3.Caption:=ProcInfo.szExeFile;
   end;
   CloseHandle(Snap);
 end;


umbra   (2005-09-27 19:05:00) [6]

а как не получается. можно чуть-чуть кода?


Наверх

Титульная страница Поиск, карта сайта Написать письмо