Autoit으로 단일파일 만들기 2
/Autoit/AutoIt :: 2007. 10. 23. 10:13
Autoit으로 단일파일 만들기 2
2007/10/23 - [Autoit] - Autoit으로 단일파일 만들기 1
Autoit으로 단일파일 만들기 두 번째 방법입니다.
우선 다음의 두 가지가 필요합니다.
1. Autoit3Wrapper
파일을 컴파일된 스크립트에 포함시켜주고, 파일 버전등의 정보도 기록할 수 있습니다.
(아니면, 다운로드 사이트에서 SciTe4Autoit3 내려받습니다.)
나중에 SciTe에서 컴파일(Ctrl+F7)을 누르면 해당 프로그램을 실행시킬 수 있습니다.
2. resources.au3
컴파일된 스크립트에 포함된 파일을 이용할 수 있도록 해줍니다.
FileInstall 함수를 이용할 때는 해당 파일을 추출하여 사용했지만, 이 UDF를 이용하면 별도로 추출하지 않고 직접 불러들여 사용할 수 있어서 편리합니다.
Image 관련된 함수들은 BMP 파일을 제외하고는 아직 잘 작동하지 않는다고 하네요. (jpg나 png를 이용하시려면..)
Label이나 Button등에서는 사용할 수 없고, picture control에서 사용할 수 있다고 합니다.
또, exe/dll 파일은 바로 불러서 사용할 수가 없으니, _ResourceSaveToFile함수를 이용하여 저장한 다음에 사용을 해야 한다고 합니다.
다른 함수들과 마찬가지로 각 함수의 이름이 상당히 직관적이고 예제 파일도 있어서 이해하기 쉬울 겁니다.
UDF의 업데이트를 비교적 자주 하기 때문에 조만간 더 좋아질 것 같아요.
첨부한 소스의 제일 윗부분을 보겠습니다.
#Region ;**** Directives created by AutoIt3Wrapper_GUI **** #AutoIt3Wrapper_outfile=Wrapper_test.exe #AutoIt3Wrapper_Res_File_Add=autoit3.bmp, bitmap, res_autoit3bmp #AutoIt3Wrapper_Res_File_Add=au3info.exe, rcdata, res_au3infoexe #AutoIt3Wrapper_Res_File_Add=documents\wrapper.txt, rcdata, res_wrappertxt #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
단일화를 위해 쓰는 글이니, #Autoit3Wrapper_Res_File_Add 부분만 살펴보겠습니다.
세 가지 항목이 있는데 각각 "포함될 파일, 섹션, 이름"입니다.
섹션은 생성된 파일 내에서의 위치로 bitmap, rcdata, icon, icon group 등이 있습니다.
그림파일은 bitmap, 아이콘은 icon, dll/exe/txt 파일 등은 rcdata로 하시면 됩니다.
이름은 생성된 파일 내에서 사용될 이름입니다.
내려받은 UDF에서 $ResType은 "$RT_섹션"을 $ResName은 "이름"을 말합니다.
_ResourceSetImageToCtrl을 이용하여 그림을 넣고, _ResourceGetAsString을 이용하여 텍스트파일에서 글을 읽어 라벨을 만들었고, _ResourceSaveToFile을 이용하여 AuInfo.exe를 저장, 실행시키는 소스입니다.
다른 부분은 별로 설명할 게 없네요.
처음에는 이상하고 어려워 보이지만, 몇 번 해보면 오토잇의 원래 함수를 사용하는 것과 별반 다르지 않습니다.
변수명 = _ResourceGet($ResName, $ResType)으로 변수를 얻은 다음, 이 변수를 다른 곳에 이용하면
마치 파일이 저장된 것처럼 사용할 수 있다는 점이 좋습니다.
resource_test_ie.au3를 보면 UDF를 이용하지 않고 res:// 라는 경로를 이용하여 내부에 포함된 파일을 사용할 수 있습니다.
mp3의 경우에도 res://를 이용하는 방법으로 일부 플레이어에서 재생도 할 수 있다고 합니다.
(_ResourcePlaySound는 mp3를 지원하지 않습니다. wav만 가능합니다.)
#NoTrayIcon #Region ;**** Directives created by AutoIt3Wrapper_GUI **** #AutoIt3Wrapper_outfile=Wrapper_test.exe #AutoIt3Wrapper_Res_File_Add=autoit3.bmp, bitmap, res_autoit3bmp #AutoIt3Wrapper_Res_File_Add=au3info.exe, rcdata, res_au3infoexe #AutoIt3Wrapper_Res_File_Add=documents\wrapper.txt, rcdata, res_wrappertxt #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI **** #include <GUIConstants.au3> #include <resources.au3> GUICreate("AutoIt3Wrapper_GUI Test", 256, 192, -1, -1) $Pic = GUICtrlCreatePic("", 64, 48, 128, 96) _ResourceSetImageToCtrl(-1, "res_autoit3bmp", $RT_BITMAP) GUICtrlSetTip(-1, "Click") $string = _ResourceGetAsString("res_wrappertxt") GUICtrlCreateLabel($string, 64, 150) GUISetState() While 1 $msg = GUIGetMsg() Switch $msg Case $GUI_EVENT_CLOSE ExitLoop Case $Pic _ResourceSaveToFile(@ScriptDir & "\au3info.exe", "res_au3infoexe") ShellExecute(@ScriptDir & "\au3info.exe", "", @ScriptDir) EndSwitch WEnd FileDelete(@ScriptDir & "\au3info.exe") GUIDelete() Exit
'Autoit > AutoIt' 카테고리의 다른 글
enumicons - icon view and save (2) | 2008.01.01 |
---|---|
파일 단일화 - Packer made by AutoIt3 (8) | 2007.11.24 |
오토잇 도우미 (Autoit Doumi)의 도움받기 2 (9) | 2007.10.24 |
오토잇 도우미 (Autoit Doumi)의 도움받기 1 (4) | 2007.10.24 |
Autoit으로 단일파일 만들기 1 (2) | 2007.10.23 |
블로그의 글과 그림, 첨부파일의 복제, 재배포를 금지합니다. => 자세히 보기
티스토리 초대장 필요하신 분은 댓글남겨주세요.
give start - 굿네이버스 - 사랑의 열매 - 아름다운재단 - 어린이재단 - 유니세프 | ||
---|---|---|