DELPHI FAQ: Как, зная Handle окна программы, определить имя EXE


Как, зная Handle окна программы, определить имя EXE
Previous  Home  Next



// Для начала определяешь какому процессу принадлежит окно:


var
 pProcID: ^DWORD;
begin

  GetMem(pProcID, SizeOf(DWORD));
  GetWindowThreadProcessId(WinHandle, pProcID);
end
;

// а после этого используешь TProcessEntry32 примерно так:


function
 GetExeNameByProcID(ProcID: DWord): string;
var

  ContinueLoop: BOOL;
  FSnapshotHandle: THandle;
  FProcessEntry32: TProcessEntry32;
begin

  FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0
);

  FProcessEntry32.dwSize := Sizeof(FProcessEntry32);

  ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32);

  Result := ''
;
  while
 (Integer(ContinueLoop) <> 0and (Result = ''do
    begin

      if
 FProcessEntry32.th32ProcessID = ProcID then
        Result := FProcessEntry32.szExeFile;
      ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32);
    end
;
end
;

// Не забудь в uses добавить Tlhelp32



Взято с www.delphiworld.narod.ru




DELPHI FAQ




EOMY TOP 100      Рейтинг@Mail.ru      Rambler's Top100