Форум: "WinAPI";
Текущий архив: 2010.11.14;
Скачать: [xml.tar.bz2];
ВнизСписок процессов Найти похожие ветки
← →
_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 вся ветка
Форум: "WinAPI";
Текущий архив: 2010.11.14;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.004 c