Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

определение родительского процесса

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Компилируемые языки] >> определение родительского процесса
Имя
Сообщение << Старые топики   Новые топики >>
определение родительского процесса - 2008-12-07 12:58:13.596666   
NGP

Сообщений: 91
Оценки: 0
Присоединился: 2006-07-17 22:20:45
нужно в delphi определить родительский процесс своей проги. это делается для контроля приложений,которые могут запускать программу
Post #: 1
RE: определение родительского процесса - 2008-12-07 13:18:15.680000   
alexbozhko

Сообщений: 1024
Оценки: 0
Присоединился: 2005-11-24 13:35:34
quote:

ORIGINAL: NGP

нужно в delphi определить родительский процесс своей проги. это делается для контроля приложений,которые могут запускать программу

А запускаешь тоже из своих приложений?
Post #: 2
RE: определение родительского процесса - 2008-12-07 13:28:44.356666   
VENOM4X

Сообщений: 246
Оценки: 0
Присоединился: 2008-02-18 22:49:08.960000
... type TNtProcessBasicInfo = record exitStatus : dword; pebBaseAddress : dword; affinityMask : dword; basePriority : dword; pid : dword; parentPid : dword; end; TNtProcessInfoClass = (ProcessBasicInformation, ProcessQuotaLimits, ProcessIoCounters, ProcessVmCounters, ProcessTimes, ProcessBasePriority, ProcessRaisePriority, ProcessDebugPort, ProcessExceptionPort, ProcessAccessToken, ProcessLdtInformation, ProcessLdtSize, ProcessDefaultHardErrorMode, ProcessIoPortHandlers, ProcessPooledUsageAndLimits, ProcessWorkingSetWatch, ProcessUserModeIOPL, ProcessEnableAlignmentFaultFixup, ProcessPriorityClass, MaxProcessInfoClass); type TPDword = ^dword; ... var ... NtQueryInformationProcess : function (processHandle : dword; infoClass : TNtProcessInfoClass; buffer : pointer; bufSize : dword; returnSize : TPDword) : dword; stdcall = nil; ... //Returns parent PID of a given child process (hanlde) function GetParentProcessID(ph: dword) : dword; // ph needs to have PROCESS_QUERY_INFORMATION access var pbi : TNtProcessBasicInfo; begin if @NtQueryInformationProcess = nil then NtQueryInformationProcess := GetProcAddress(GetModuleHandle('ntdll.dll'), 'NtQueryInformationProcess'); if NtQueryInformationProcess(ph{Handle}, ProcessBasicInformation, @pbi, sizeOf(TNtProcessBasicInfo), nil) = 0 then result := pbi.ParentPid else result := 0; end; //Returns HANDLE of parent process for current process function GetParentHandle() : HWND; var MyHnd, Parent : HWND; begin MyHnd := OpenProcess(PROCESS_ALL_ACCESS, false, GetCurrentProcessId()); Parent := OpenProcess(PROCESS_ALL_ACCESS, false, GetParentProcessID(MyHnd)); CloseHandle(MyHnd); result := Parent; //get handle to parent process end;
Post #: 3
RE: определение родительского процесса - 2008-12-07 15:16:23.070000   
NGP

Сообщений: 91
Оценки: 0
Присоединился: 2006-07-17 22:20:45
quote:

ORIGINAL: alexbozhko
А запускаешь тоже из своих приложений?
не совсем, но что это за приложения и их PID я знаю.
Post #: 4
RE: определение родительского процесса - 2008-12-07 18:35:34.890000   
NGP

Сообщений: 91
Оценки: 0
Присоединился: 2006-07-17 22:20:45
всем спасибо,вопрос решил
Post #: 5
Страниц:  [1]
Все форумы >> [Компилируемые языки] >> определение родительского процесса







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.