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

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

как унать родителя [Win95/98]


pic ©   (2005-12-30 07:17:00) 

как унать родителя запустившего копию моей прграммы?


ekamaloff   (2005-12-30 11:09:00) [1]

Можно так, хотя это наверняка не самый простой способ:

program ParentProcess;
{$APPTYPE CONSOLE}
uses
SysUtils, TLHelp32, Windows;

function GetParentProcessID(ProcessID: LongWord): LongWord;
var
HSnap: THandle;
   ProcessEntry: TProcessEntry32;
begin
Result := 0;

HSnap := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
   if HSnap = INVALID_HANDLE_VALUE then
    Exit;

   ProcessEntry.dwSize := SizeOf(ProcessEntry);

   if not Process32First(HSnap, ProcessEntry) then begin
    CloseHandle(HSnap);
       Exit;
   end;

   repeat
 if ProcessEntry.th32ProcessID = ProcessID then begin
        Result := ProcessEntry.th32ParentProcessID;
        Break;
       end;
   until not Process32Next(HSnap, ProcessEntry);

   CloseHandle(HSnap);
end;

begin
Writeln('Parent process ID: ', GetParentProcessID(GetCurrentProcessID));
   Readln;
end.


Наверх

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