|
안녕하세요?
오랫만에 볼랜드 포럼에 들렀습니다.
이 곳에 맞는 질문인지는 조금 의심이 가지만 프로그램과 관련이 있고 누군가 해본 분이 계시리라 믿고 질문을 드립니다.
질문: INF 파일을 이용하여 바탕화면에 바로가기 아이콘 추가하는 방법
C++Builder 6.0을 사용하여 설치 프로그램을 제작하였습니다.
C++Builder에 제공되는 Install Shield가 아니라 직접 코딩하여 제작한 것입니다.
"바탕 화면에 바로가기 아이콘 추가"를 제외면 설치 프로그램은 현재 잘 작동 중입니다.
설치프로그램을 제작하기 위해서 사용한 Windows API 함수는 대략 아래와 같습니다.
SetupOpenInfFile, SetupSetDirectoryId,SetupOpenFileQueue,SetupInitDefaultQueueCallbackEx
,SetupInstallFilesFromInfSection, SetupCommitFileQueue, SetupInstallFromInfSection
,SetupTermDefaultQueueCallback,SetupCloseFileQueue,SetupCloseInfFile
위 함수에서 필요로 하는 외부 파일이 있는데 바로 INF 파일(일반택스트 파일)입니다.
여기에 설치할 각종 파일들, Windows의 [시작]메뉴에 추가할 바로가기 아이콘, 레지스트리 설정 사항 등을 지정합니다.
특히, [시작] 메뉴에 아이콘 추가와 레지스트리 설정은 설치프로그램 내부에 별도로 코딩할 필요 없이 INF 파일에 지정만 하면 자동으로 처리됩니다.
그런데 여기에서 바탕화면에 바로가기 아이콘을 추가하는 방법을 알고 싶습니다.
물론 설치프로그램 내부에서 직접 코딩하여 수행하는 방법은 이미 알고 있습니다.
(SHGetSpecialFolderLocation(,CSIDL_DESKTOPDIRECTORY,)로 얻은 경로에 단축아이콘 만들어서 저장하면 됨)
제가 알고 싶은 것은 INF 파일에 지정하여 수행하는 방법입니다.
일반적으로 INF 파일을 이용하여 [시작] 메뉴에 프로그램 그룹과 프로그램의 바로가기 아이콘을 추가하는 방법은 아래와 같습니다.
[Install]
UpdateInis=Product.links
[Product.links]
setup.ini, progman.groups,,"ProductGroup=프로그램 그룹 이름"
setup.ini, ProductGroup,,"""연습 프로그램"",""""""해당 프로그램의 절대경로"""""",,,"
setup.ini, ProductGroup,,"""프로그램 제거"",""""""제거 프로그램의 절대경로"""""",,,"
위에서 progman.groups는 미리 정해진 것으로서 [시작]메뉴의 [모든 프로그램]을 의미합니다.
오랫만에 글을 올려서 그런지 왠지 혼란스럽게 글을 쓴 듯합니다. 용서하시고.
끝까지 읽어 주신 데 감사드리고요.
안녕히 계십시오.
|