본문 바로가기
Programming/*Delphi

내 프로세스가 실행된 경로 구하기

by Aur0ra 2020. 7. 9.

코딩을 하다보면

 

특정 설정 또는 로그를 남기기 위해

 

파일을 저장하거나, 파일을 불러오는 경우가 많은데

 

이를 빌드해둔 내 프로젝트내의 같은 경로에 있는 파일을 이용하고 경우가 있습니다.

 

 

그럴경우 간단하게

 

ExtractfilePath(Application.ExeName) 을 통해 확인 할 수 있습니다.

 

하지만 모듈이 다르거나, dll 을 로드하여 사용 하는 경우

상속된 프로세스의 경로가 나오기때문에 원하는 내 프로젝트 경로가 아닌

상속된 프로세스의 경로를 얻어 오는 경우가 있습니다.

 

 

그럴때 제가 사용 하는방법입니다.

 

ExtractFilePath(GetModuleName( hInstance) );

 

ExtractFilePath의 경우

파일의 전체 경로 (ex. C:\test.exe) 가 아닌 경로만을 얻어 올 수 있습니다. (ex. C:\)

( 마지막 \ 문자를 Delimiter로 구분하여 잘라오는 역할을 합니다.)

( SysUtils.ExtractFilePath)

 

그 원리를 통해 GetModuleName 함수를 통해 hInstance의 전체 경로를 얻은 후 , 

다시 ExtractFilePath 함수를 통해 경로만을 가져올 수 있습니다.

댓글