На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: jack128, Rouse_, Krid
  
    > Как узнать процесс родителя. , нужно для плагина...
      Узнать родителя любого процесса можно и без перебора процессов в снимке. Например вот так:

      ExpandedWrap disabled
        type
          PROCESS_BASIC_INFORMATION = packed record
            ExitStatus: DWORD;
            PebBaseAddress: Pointer;
            AffinityMask: DWORD;
            BasePriority: DWORD;
            uUniqueProcessId: Ulong;
            uInheritedFromUniqueProcessId: Ulong;
          end;
         
        function  NtQueryInformationProcess(
            ProcessHandle : THandle;
            ProcessInformationClass : Byte;
            ProcessInformation : Pointer;
            ProcessInformationLength : ULONG;
            ReturnLength : PULONG
          ): DWORD; stdcall; external 'ntdll.dll';
         
        function GetOwnedProcessID(const dwProcessHandle: DWORD): DWORD;
        const
          ProcessBasicInformation = 0;
        var
          Info: PROCESS_BASIC_INFORMATION;
        begin
          Result := 0;
          if NtQueryInformationProcess(dwProcessHandle,
            ProcessBasicInformation, @Info, SizeOf(Info), nil) = NO_ERROR then
            Result := Info.uInheritedFromUniqueProcessId;
        end;


      Вот так будет выглядеть получение родителя от текущего процесса:

      ExpandedWrap disabled
        procedure TForm1.Button1Click(Sender: TObject);
        var
          dwProcessHandle: DWORD;
        begin
          DuplicateHandle(GetCurrentProcess, GetCurrentProcess, GetCurrentProcess,
            @dwProcessHandle, 0, False, DUPLICATE_SAME_ACCESS);
          Caption := IntToStr(GetOwnedProcessID(dwProcessHandle));
        end;
      0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
      0 пользователей:


      Рейтинг@Mail.ru
      [ Script execution time: 0,0182 ]   [ 17 queries used ]   [ Generated: 28.03.24, 23:33 GMT ]