윈도우 핸들(HWND)로 실행파일 이름(프로세스명) 알아내기.
1. 윈도우 핸들로 프로세스ID를 얻는다.
2. 프로세스를 다 뒤지면서 얻어낸 프로세스ID와 일치하는 프로세스를 찾는다.
3. 찾아내면 해당 프로세스의 szExeName 이 실행파일 이름.
uses 에 TlHelp32 추가해야 함.
function GetExeNameFromHWND(aHWND: HWND): String;
var
dwProcID: DWORD;
hSnapshot: HWND;
Proc32: PROCESSENTRY32;
begin
Result:='';
// 1. 윈도우 핸들로 프로세스ID 가져오기
GetWindowThreadProcessID(aHWND, dwProcID);
// 2. 시스템의 프로세스 스냅샷 가져오기
hSnapshot:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if hSnapshot=INVALID_HANDLE_VALUE then begin
OutputDebugString('[Error] - CreateToolhelp32Snapshot returns INVALID_HANDLE_VALUE');
Exit;
end;
// 3. 첫번째 엔트리부터 뒤지기 시작
Proc32.dwSize:=SizeOf(PROCESSENTRY32);
if Process32First(hSnapshot, Proc32)=FALSE then begin
OutputDebugString('[Error] Process32First returns FALSE');
Exit;
end;
// 4. 프로세스ID가 일치하면 실행파일명 반환
repeat
if dwProcID=Proc32.th32ProcessID then begin
Result:=Trim(Proc32.szExeFile);
Exit;
end;
until not Process32Next(hSnapshot, Proc32);
end;
'Delphi' 카테고리의 다른 글
다른 프로그램의 텍스트 가져오기 (0) | 2009.04.18 |
---|---|
폼에 마우스 이벤트 통과시키기 (0) | 2009.04.18 |
[Delphi] 웹브라우저에 HTML 코드 밀어넣기 (0) | 2009.04.18 |
IdHTTP를 이용해 소스 가져와지지 않을 때 (0) | 2009.04.18 |
TComboBox Item 별로 색깔 다르게 (0) | 2009.04.18 |