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

델파이 팁&트릭
Delphi Programming Tip&Tricks
[154] 팁! exe/dll에서 아이콘 읽어오기
박지훈.임프 [cbuilder] 14694 읽음    1999-06-04 00:00
임프랍니다..
오늘의 팁은.. 외부의 exe, dll과 같은 화일들에서 아이콘을 읽어오는 방법입니다.
오늘도 역시 제가 전에 하이텔 비파툴에 올렸던 답변을 다시 올립니다.
icl화일도 사실은 확장자만 바뀐 16비트 dll이므로 같은 방법으로 읽어올 수 있습니
다. 아래를 보시면 아시겠지만, API 함수 하나로 끝입니다. 근데 이 기법 하나만
가지고 아이콘해커라는 프로그램을 만들어서 계속 버전업을 하고 있는 분도 있더군
요. 후후... 그럼, 도움되시길 바랍니다.

제  목:[질문] dll에 있는 아이콘 읽는 방법...??
보낸이:옥창안  (BlueNOAH)    10/09 21:55  조회:18  1/1
──────────────────────────────────────
dll에 있는 아이콘을 로드 하려면 어떻게 해야하나요?

dll에 아이콘이 여럿 있는 경우 ImageList로 불러들이는가요? 아니면

한개씩 읽어들이는가요?




제  목:[답변] dll에 있는 아이콘 읽는 방법...??
보낸이:박지훈  (cbuilder)    10/10 13:19  조회:53  1/2
──────────────────────────────────────
임펠리테리입니다.
DLL같은 이진화일에서 아이콘을 빼내는것은 아주 간단합니다. DLL뿐만 아니라
어떤 화일이든 그 화일에 들어있는 아이콘이 리소스의 형태로 포함된 것이라면
간단히 빼낼수 있습니다. API 함수 ExtractIcon과 ~Ex 함수를 참고하시기 바랍
니다. 제 기억으론... 파라미터로서 아이콘이 들어있는 이진화일과 빼낼 아이콘의
인덱스를 넘겨주면 아이콘의 핸들, 즉 HICON을 리턴해줍니다.
그러니까... TIcon * 형으로 임시 변수를 하나 만들고, 생성시킨 후에 그 TIcon *
의 핸들에 ExtractIcon()에서 넘겨받은 HICON을 대입해주면 됩니다.
횡설수설한 거 같은데... 예를 보이자면...
 TIcon *TempIcon = new TIcon;
 TempIcon->Handle =ExtractIcon(HInstance, "c:\\WinNT\\regedit.exe", 0);

이처럼 하면 (정확한지는 모르겠습니다만 대충 이럴겁니다..) TemppIcon에
Acdsee의 첫번째(0번째) 아이콘이 넘어옵니다.
이 함수를 이용하면... 제기억으로는 지정한 화일에 들어있는 아이콘의 총 개수도
알아낼 수 있었던 것 같습니다.
그럼, 도움되시길 바라면서, 이만...

델파이에서라면...
var
  TempIcon: TIcon;
begin
...
  TempIcon := TIcon.Create;
  TempIcon.Handle := ExtractIcon(HInstance, 'c:\WinNT\regedit.exe', 0);

+ -

관련 글 리스트
154 팁! exe/dll에서 아이콘 읽어오기 박지훈.임프 14694 1999/06/04
(링크)     C++Builder Tip'N Tricks > 팁! exe/dll에서 아이콘 읽어오기
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.