Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.11.14;
Скачать: CL | DM;

Вниз

Список процессов   Найти похожие ветки 

 
_bass   (2009-05-03 02:07) [0]

Здравствуйте.
Подскажите пожалуйста, как получить список процессов(включая системные) на ос win vista. На xp все отлично работает через Toolhelp32Snapshot, а на vista, например, не находит даже explorer.exe.


 
Eraser ©   (2009-05-03 02:46) [1]

> [0] _bass   (03.05.09 02:07)

в висте тоже этот способ работает. но для начала нужно изучить систему безопасности висты, точнее её отличие от xp"шной.


 
Германн ©   (2009-05-03 02:56) [2]


> Eraser ©   (03.05.09 02:46) [1]
>
> > [0] _bass   (03.05.09 02:07)
>
> в висте тоже этот способ работает. но для начала нужно изучить
> систему безопасности висты, точнее её отличие от xp"шной.
>
>

Удар "поддых"!
:)


 
Игорь ©   (2009-05-03 10:08) [3]


> _bass   (03.05.09 02:07)



Вот держи, должно работать в ОС 2000, 2003, XP, Vista

http://www.onlinedisk.ru/file/132291/


 
_bass   (2009-05-03 14:36) [4]

Спасибо.

_GetProcessPath(PSPI^.ProcessId, _Path); -> Access violation at address 0047DD15 in module "Project1.exe". Read of address 01039558


 
Игорь ©   (2009-05-03 17:03) [5]


> _bass   (03.05.09 14:36) [4]


Это мне ни о чем не говорит, а кнопкой F7 нельзя пройтись по коду?


 
_bass   (2009-05-03 23:05) [6]

Спасибо, разобрался. Подскажите, как узнать Parent pID процесса, имея его pID.


 
runaum   (2009-05-03 23:33) [7]

@_bass, посмотрите исходники madCollection (madshi.net), сразу же станут понятнее многие моменты, тем более документация на уровне. К тому же, если надо сделать и нет времени на разбор, то это наилучший вариант.


 
Игорь ©   (2009-05-04 00:11) [8]


> _bass   (03.05.09 23:05) [6]


type
 PROCESS_BASIC_INFORMATION = packed record
   ExitStatus: DWORD;
   PebBaseAddress: Pointer;
   AffinityMask: DWORD;
   BasePriority: DWORD;
   UniqueProcessId: ULONG;
   InheritedFromUniqueProcessId: ULONG;
 end;

 TNtQueryInformationProcess = function(ProcessHandle: THandle; ProcessInformationClass: Byte;
   ProcessInformation: Pointer; ProcessInformationLength: ULONG; ReturnLength: PULONG): DWORD; stdcall;

var
 _NtQueryInformationProcess: TNtQueryInformationProcess;

FormCreate...
 DLLHandle:= LoadLibrary("ntdll.dll");
 if DLLHandle <> 0 then
   @_NtQueryInformationProcess:= GetProcAddress(DLLHandle, "NtQueryInformationProcess");

...
function GetParentProcessID(PID: DWORD): DWORD;
var
 ProcessInformation: PROCESS_BASIC_INFORMATION;
begin
 if _NtQueryInformationProcess(OpenProcess(MAXIMUM_ALLOWED, False, PID), 0, @ProcessInformation, SizeOf(ProcessInformation), nil) = 0 then
   Result:= ProcessInformation.InheritedFromUniqueProcessId
 else
   Result:= 0;
end;

...

SubItems.Add(IntToStr(GetParentProcessID(PSPI^.ProcessId)));


 
Игорь ©   (2009-05-04 11:12) [9]


> Игорь ©   (04.05.09 00:11) [8]


Чета я сморозил, в PSYSTEM_PROCESS_INFORMATION уже есть InheritedFromProcessId



Страницы: 1 вся ветка

Текущий архив: 2010.11.14;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.012 c
15-1281080893
Knight
2010-08-06 11:48
2010.11.14
Как сделать быструю загрузку файла для просмотра?


15-1280694604
Юрий
2010-08-02 00:30
2010.11.14
С днем рождения ! 2 августа 2010 понедельник


3-1236772625
Ulugbek
2009-03-11 14:57
2010.11.14
DBgridEh ошибка фильтре Error in expression


2-1282423057
Rembo
2010-08-22 00:37
2010.11.14
Наследование: вызов метода потомка через родителя


2-1282134061
Сергей
2010-08-18 16:21
2010.11.14
Ошибка отключаю связь таблиц