오픈소스 압축 프로그램 7-ZIP의 기본 압축 형식인 7z는 압축률이 뛰어나지만, 자동 풀림 압축(SFX) 기능이 미약하다. 7-ZIP SFX Maker(이하 7zSFX)는 수정된 7-Zip SFX 모듈을 이용해서 WinRAR나 FilePacker로 만든 SFX처럼 다양한 기능을 제공하는 7-Zip SFX를 만드는 프로그램이다. 7z 형식은 RAR이나 ZIP보다 평균 압축률이 높아서 WinRAR나 FilePacker로 만든 SFX보다 작은 크기의 파일을 만들 수 있다.
프로그램을 사용하기에 앞서 7zSFX을 실행하려면 .NET Framework 2.0 이상이 필요하고 아이콘 변경 기능을 사용하려면 Resource Hacker의 실행 파일이 필요하다. ResHacker.exe 파일은 라이센스 문제 때문에 제작자의 배포판에 포함되어 있지 않은데, 여기서 ResHack.zip 파일을 내려받아 압축을 풀고 ResHacker.exe 파일을 7zSFX 폴더 속의 Resource Hacker 폴더에 복사한다. 이제 7-ZIP SFX Maker.exe 파일을 실행한다.
* ResHacker.exe 파일이 없으면 7zSFX의 [아이콘] 탭을 사용할 수 없다. 그럴 땐 아이콘을 지정하지 않은 상태에서 SFX 파일을 생성하고, 그다음에 IcoFX의 [도구] - [리소스 편집기] 기능으로 아이콘을 변경할 수도 있다.
7zSFX를 실행하면 위 그림과 같은 실행 화면이 나타난다. [파일]은 변환할 7z 파일을 추가하는 메뉴이다. 탐색기에서 7z 파일을 끌어놓기 하거나 [+] 버튼을 눌러서 추가한다.
[일반]에서는 SFX를 실행했을 때 압축을 풀 폴더와 덮어쓰기 방식, 그리고 그 외의 기타 옵션을 지정한다. '압축 풀기 경로'에서 [임시 폴더에 압축 풀기]를 선택하면 SFX를 실행할 때 시스템 임시 폴더에 압축을 풀고 프로그램을 종료했을 때 임시 폴더에 있는 파일을 삭제한다. [지정한 폴더에 압축 풀기]를 선택하고 특정 경로를 입력하면 해당 경로에 압축을 풀고 파일은 삭제하지 않는다. 첫 번째 방식은 단일 실행 파일(여러 개의 파일로 된 프로그램을 하나의 SFX 파일로 만들고, 생성된 SFX 파일을 실행하면 임시 폴더에 압축을 풀고 특정 프로그램을 실행하게 한 SFX 파일)을 만들 때, 두 번째 방식은 일반 설치 파일을 만들 때 적합하다. 단순히 7z 없이도 압축을 풀 수 있도록 하려고 SFX를 만들었다면 [사용자가 압축 풀기 경로 선택]에 체크해서 사용자가 압축을 풀 위치를 지정하도록 할 수도 있다.
[사용자가 압축 풀기 경로 선택]을 사용할 땐 주의해야 하는데, 이 항목에 체크된 상태에서 [임시 폴더에 압축 풀기]를 선택해도 실행할 때 압축을 풀 경로를 물어본다. 사용자에게 묻지 않고 바로 임시 폴더에 압축을 풀게 하려면 꼭 [사용자가 압축 풀기 경로 선택]에 체크를 해제하고 나서 [임시 폴더에 압축 풀기]를 선택한다.
[텍스트]에서는 압축을 풀 때 나오는 대화상자의 제목, 메시지 등을 변경한다. 단일 실행 압축파일을 만들 때나 프로그램 설치 꾸러미를 만들 때 '시작'과 '제목'에 [ABC를 실행하겠습니까?], [ABC를 설치하겠습니까?] 등을 입력하면 실행 또는 설치 확인 메시지처럼 보이도록 할 수 있다.
[아이콘]은 SFX 파일에 사용할 아이콘을 지정하는 메뉴이다. 기본으로 왼쪽의 5가지 아이콘을 사용할 수 있고, 사용자가 원하는 아이콘 파일(*.ico)을 7zSFX 폴더 속의 Resources 폴더에 복사하고 나서 다시 7zSFX를 실행하면 추가한 아이콘이 목록에 함께 표시된다.
[바로 가기]에서는 특정 파일의 바로 가기를 생성한다. 바로 가기를 추가하려면 [+] 버튼을 누른다.
[+] 버튼을 누르면 나오는 바로 가기 메뉴이다. 실제 프로그램을 설치하는 것처럼 바탕화면, 시작 메뉴, 시작\프로그램, 시작 프로그램에 바로 가기를 추가할 수 있고 사용자 권한을 지정할 수 있다. 또 파일의 위치는 환경변수를 사용해서 지정할 수 있다. [원본 파일]에 [%%T\ABC.exe]라고 지정하면 압축을 푼 폴더에 있는 ABC.exe 파일을 실행하는 바로 가기가 생성된다.
바로 가기는 여러 개를 생성할 수 있다. 바탕화면, 시작메뉴, 시작\프로그램에 모두 바로 가기를 생성하고 싶으면 [생성 위치]에서 '바탕화면'을 선택해서 바로 가기를 하나 생성하고, 다음에 또 [+]를 누르고 '시작 메뉴'나 다른 위치를 선택해서 바로 가기를 생성한다.
[실행]에서는 SFX 파일의 압축을 푼 다음 실행할 파일을 지정한다. 역시 바로 가기와 같은 환경변수를 사용할 수 있다.
[환경 변수]는 사용자가 직접 환경 변수를 지정하는 메뉴이다. 직접 환경 변수를 추가하면 기본 환경 변수에서 제공하지 않는 경로를 환경 변수로 사용할 수 있다.
[이름]에 환경 변수 이름을 입력하고 [값]에 그 환경 변수의 실제 경로를 입력한다. 실제 사용할 때는 %환경 변수 이름%과 같은 형식으로 사용하면 된다. 위의 오른쪽 그림은 [일반] - [압축 풀기 경로]에 환경 변수를 사용한 모습이다. 위 그림에서 %2ndDrv%는 실제로는 D:\와 같다.
이제 [SFX 만들기] 버튼만 누르면 SFX 파일이 생성된다. 만약 설정한 내용을 저장했다가 다음에 그대로 불러와서 사용하고 싶으면 [SFX 만들기] 버튼을 누르기 전에 [설정 저장하기] 버튼을 누른다. FilePacker에서 프로젝트를 저장한 것처럼 7zSFX는 XML 형식으로 설정을 저장한다. 설정을 저장하고 나서 [SFX 만들기] 버튼을 누르면 ABC.sfx.exe 파일이 생성된다.
7xSFX는 자체적으로 7z으로 파일을 압축하는 기능이 없어서 미리 7z 파일을 만들어서 사용해야 한다. 또 비밀번호가 지정된 7z 파일은 사용할 수 없고 .NET Framework도 필요하다. 그러나 실제 FilePacker와 WinRAR, 7zSFX로 똑같은 설정으로 SFX 파일을 생성했을 땐 위 그림처럼 확실히 7zSFX로 만든 파일의 크기가 작았다. 무료 압축 프로그램인 7-Zip의 SFX 기능이 WinRAR의 SFX보다 기능이 미흡해서 불만이었다면 이젠 7zSFX로 해결할 수 있다.
* 7-ZIP SFX Maker에서 한국어 사용하기 한국어.txt 파일을 내려받아 Language 폴더에 복사하고 7-ZIP SFX Maker를 다시 실행해서 [Language] - [한국어]를 선택하면 한국어가 적용된다. * 관련 프로그램 ㆍ7-Zip - 무료 압축 프로그램
ㆍWinRAR SFX 를 이용한 단일 실행파일 만들기
ㆍFilePacker v1.2 - 간단한 단일 실행 압축 파일 생성 프로그램