C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 팁&트릭
C++Builder Programming Tip&Tricks
[803] 창 핸들 HWND로 파일명(풀패스) 구하기.
김태선 [cppbuilder] 8319 읽음    2008-09-13 12:04
#include 
#include 

//---------------------------------------------------------------------------
// 창 핸들 HWND로 파일명(풀패스) 구하기.

String	GetHWND_FileName(HWND hwnd)
{
	ULONG  pid = 0;
	GetWindowThreadProcessId(hwnd, &pid);
	if (pid == 0)
		return "";

	String  filename;
	PROCESSENTRY32 pe;
	pe.dwSize=sizeof(PROCESSENTRY32);
	HANDLE hSnapshot = CreateToolhelp32Snapshot ( TH32CS_SNAPPROCESS, 0 );
	if (Process32First( hSnapshot, &pe ))
	{
		HANDLE hProcess = OpenProcess( PROCESS_ALL_ACCESS, 0, pid);
		if (hProcess)
		{
			char szPath[MAX_PATH];
			ZeroMemory(szPath, sizeof(szPath));
			GetModuleFileNameEx(hProcess, (HMODULE)NULL, szPath, MAX_PATH);
			filename = szPath;
		}
	}
	return filename;
}
//---------------------------------------------------------------------------
장성호 [nasilso]   2010-02-04 18:50 X
hProcess 와  hSnapshot를 반드시 CloseHandle해주셔야 합니다.
안그러면 위 함수 호출할때마다 Handle이 1개 또는 2개씩  늘어납니다.(작업관리자에서 확인해 보세요)

+ -

관련 글 리스트
803 창 핸들 HWND로 파일명(풀패스) 구하기. 김태선 8319 2008/09/13
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.