놀이터 일간 추천 베스트 |
놀이터 일간 조회 베스트 |
작성자: 오예스 조회 수: 1782 PC모드
URL 링크 : | https://portableapps.com/manuals/Portabl...index.html |
---|
우선 아래 PortableApps 빌더 를 받습니다.
PortableAppsLauncher_repack_V2.7z_빌더 제가 사용하기 편하게 수정된 빌더입니다.
NSIS3 로 변경, 스플래시 자동 스톱, 원드라이브 저장 옵션, 일부 플러그인 함수등등 추가된 버전입니다.
다운 받으면 뒤에 이름 _빌더 지우고 압축을 푸시면 됩니다. (크롬이 설정 파일을 막는 이유로 이름 바꿈...)
작업 경로가 길면 오류가 날 수 있으니 가능하면 최상위 폴더에 풀어주세요. 예: C:\PortableGenerator
오리지날은 아래 주소에서 다운 가능합니다.
https://portableapps.com/apps/development/portableapps.com_launcher
그럼 시작하겠습니다.
강좌용 프로그램은 우선 간단한 Master PDF 로 하겠습니다.
우선 적당한 폴더에 PortableApps 용 템플릿 (Work.7z_템플릿 ) 을 풀어 넣습니다.
(Work.7z_템플릿을 Work.7z 로 이름을 바꾸고 압축을 푸시면됩니다.)
참고로 저는 PortableApps\Work\ 에 풀어 사용합니다. 강좌도 이 경로라고 가정하겠습니다.
템플릿 App\AppInfo 폴더로 이동하여 아이콘 파일인 appicon.ico 은 적당히 바꾸고
가장 중요한 appinfo.ini 부터 수정해 봅시다. (아래 항목은 빠짐없이 적어주셔야 컴파일이 됩니다.)
[Details]
Name=Master PDF ;; 프로그램 이름을 적습니다.
AppId=MasterPDFPortable ;; 프로그램의 포터블 파일명입니다.
Publisher=Copyright (c) Code Industry Ltd. All rights reserved ;; 프로그램 제작사 입니다.
Homepage=www.code-industry.net ;; 프로그램 제작사 홈페이지 입니다.
Description=multifunctional PDF Editor ;; 프로그램의 설명을 적습니다. (이건 생략 가능)
Language=Multilingual ;; 지원 언어 (제대로 LocaleName 을 적어야 합니다. Locale.txt 참고)
[Version]
PackageVersion=5.1.68 ;; 프로그램 버전을 적습니다.
이제 Master PDF 를 설치해봅시다. 그전에 참고...
설치전 기록은 꼭 하셔야 만들기가 조금은 더 수월해집니다.
설치 기록을 확인하기 위해서 전 2가지 방법을 사용합니다.
첫째 Revo Uninstaller 를 사용하여 기록하는 방법
첫째 방법은 간단합니다 위 프로그램을 사용해 설치하면 자동으로 기록해줍니다.
두번째는 RegCool 로 설치전 스냅샷을 저장하고 설치후 그걸 비교하는 방법입니다.
첫째 방법은 간단하니 넘어가고 좀 생소한 두번째 방법을 설명하겠습니다.
RegCool 을 실행하고 도구 메뉴에 [레지스트리 스냅샷] 을 선택합니다.
위 처럼 나오면 [샷1 만들기]로 현재 레지스트리를 저장합니다.
그후 Master PDF 설치 하시고 설치가 완료되면 [샷2 만들기] 를 눌러 다시 레지스트리를 저장합니다.
그럼 [레지스트리 비교] 버튼이 활성화 되고 눌러서 비교를 하면됩니다.
프로그램에 따라서 첫째 방법이 좋을때도 혹은 두번째 방법이 좋을때도 있습니다.
이 부분을 설명하기가 좀 애매한게
프로그램마다 저장 방법 저장 위치 등 너무 천차만별이라서 딱 이거다 할수가 없네요.
사실 포터블은 이런거 찾는게 전부라고 할 수 있는데 자주 만들어 감을 익히는 방법밖에 없습니다.
그래서 중요하게 살펴보아야할 곳을 알려드리겠습니다.
프로그램과 관련해 살펴보아야 할 폴더
C:\Program Files
C:\Program Files\Common Files
C:\Program Files (x86)
C:\Program Files (x86)\Common Files
프로그램 설정 그리고 부속 파일과 관련해 살펴보아야 할 폴더
C:\ProgramData
C:\Users\<유저>\AppData\Local
C:\Users\<유저>\AppData\Roaming
프로그램 설정과 관련해 살펴보아야할 레지스트리
HKEY_CURRENT_USER\Software
HKEY_LOCAL_MACHINE\SOFTWARE
이렇게 각각의 파일 위치와 레지스트리 정보를 확인 했으면 본격적으로 만들어 봅시다.
일단 확인한 바로는
설정은 레지스트리 HKCU\Software\Code Industry\Master PDF Editor 5
Master PDF 설치는 C:\Program Files 폴더에
부속 파일은 %LOCALAPPDATA%\Master PDF Editor 폴더에
이렇게 확인되었습니다.
Master PDF 설치 폴더의 파일을 App\MasterPDF 로 복사해 옵니다.
그럼 폴더 구조가 이렇게 됩니다.
이제 App\AppInfo\Launcher 폴더로 이동해 설정파일 MasterPDFPortable.ini 파일을 수정해봅시다.
참고: 설정 파일 이름은 "프로그램의 포터블 파일명" (AppId) 과 같아야하고 확장자는 .ini 입니다.
[Launch]
ProgramExecutable=MasterPDF\MasterPDFEditor.exe ;; 실행할 파일명입니다.
DirectoryMoveOK=yes ;; 포터블 위치가 이동할때 이전 위치를 저장해두고 쓸수있게 합니다.
SupportsUNC=yes ;; UNC 네트워크 위치를 사용가능하게 해줍니다.
[Language]
Base=ko ;; 언어 설정입니다.
[LanguageStrings]
en=en_en ;; 언어 설정의 문자형입니다. (프로그램 언어 치환에 사용됩니다)
ko=ko_kr
[Activate]
Registry=true ;; 레지스트리 사용을 가능하게합니다.
OneDrive=false ;; 설정을 원드라이브에 저장할지 설정합니다.
Splash=false ;; 스플래시 화면을 보여줄지 설정합니다.
;; 스플래시 화면은 App\AppInfo\Launcher\splash.jpg 가 존재하면 그 이미지를 보여줍니다.
;; 이 설정들은 필요한 경우 data 폴더에 저장됩니다.
;; 해당 레지스트리를 종료시 백업 시작시 복구 합니다.[RegistryKeys]
MasterPDF=HKCU\Software\Code Industry\Master PDF Editor 5
;; 시작할때 해당 레지스트리 항목을 수정합니다.
;; REG_SZ: 는 문자형 REG_DWORD: 는 숫자형입니다.
[RegistryValueWrite]
;; 경로는 HKCU\...\Master PDF Editor 5\ 이고 항목은 check_updates 값은 0 입니다.
HKCU\Software\Code Industry\Master PDF Editor 5\check_updates=REG_DWORD:0
;; %PAL:LanguageCustom% 이 값은 언어 문자형 그러니까 en_en 이 됩니다.
HKCU\Software\Code Industry\Master PDF Editor 5\lang=REG_SZ:%PAL:LanguageCustom%
;; %PAL:UserName% 는 조금뒤에 설명할 Custom.nsh 파일에서 생성된 유저명이 적힌 변수입니다.
HKCU\Software\Code Industry\Master PDF Editor 5\user_name=REG_SZ:%PAL:UserName%
;; %LOCALAPPDATA% = 윈도우 환경변수로 "C:\Users\<유저>\AppData\Local" 경로입니다.
HKCU\Software\Code Industry\Master PDF Editor 5\tesseract_ocr_path=REG_SZ:%LOCALAPPDATA%\Master PDF Editor\tessdata\
;; 프로그램이 종료될때 삭제할 레지스트리입니다. 앞에 숫자는 순서대로...
[RegistryCleanupForce]
1=HKCU\Software\Classes\Applications\MasterPDFEditor.exe
2=HKCU\Software\Classes\MasterPDFEditor5.Document
;; 탐색기 PDF 파일 우측 메뉴에 등록되는 메뉴를 종료시 삭제 하는 레지스트리 (강좌 아래에 추가 설명)
3=HKCU\Software\Classes\SystemFileAssociations\.pdf\shell\MasterPDFEditor5.Document
4=HKCU\Software\Classes\SystemFileAssociations\.xps\shell\MasterPDFEditor5.Document
;; 프로그램이 종료될때 해당 레지스트리가 비어있으면 삭제합니다.
[RegistryCleanupIfEmpty]
1=HKCU\Software\Code Industry\Master PDF Editor
2=HKCU\Software\Code Industry
;; 프로그램 부속 파일이 있는 경로를 종료시 백업 시작시 복구 합니다.
[DirectoriesMove]
MasterPDF=%LOCALAPPDATA%\Master PDF Editor
;; 프로그램이 종료될때 삭제할 폴더입니다.
[DirectoriesCleanupForce]
;; 앞에 ; 은 주석이란 말입니다. (주석은 실행시엔 해석(실행)을 안합니다)
;1=%LOCALAPPDATA%\..\LocalMaster PDF Editor
이 정도로 하고 이제 빌드해 봅시다.
PortableAppsLauncher\PortableGenerator.exe 를 실행합니다.
템플릿 파일들이 있는 작업 폴더를 선택합니다.
템플릿 파일이 Work\App 에 있다면 Work\ 폴더를 선택하시면 됩니다.
그럼 Work\ 폴더에 빌드된 MasterPDFPortable.exe 가 생성됩니다.
실행해 봅시다.
잘 실행되는데 설정을 보면 이런데가 있군요.
주석에 작성자 유저명 ...
이걸 실행한 컴퓨터마다 해당 유저명으로 표시해 주고 싶습니다.
그리고 프로그램을 실행한 후 부터 탐색기 PDF 파일 우측 메뉴에 자동으로 메뉴가 등록되는데
이것도 없애고 싶습니다.
이럴때 사용하는게 Custom.nsh 파일입니다.
이 파일은 .ini 로 해결할수 없는 여러가지를 해결해줍니다.
참고: PortableAppsLauncher\Other\Source 폴더에 사용 예제가 많으니 살펴보시면 좋습니다.
우선 App\AppInfo\Launcher\Custom.nsh 파일을 만들어 줍니다.
그리고 다음과 같이 편집합니다.
${SegmentFile}
;; 프로그램이 시작될때 실행할 코드들
${SegmentPrePrimary}
;; 여기에 코드 작성
!macroend
;; 프로그램이 종료될때 실행할 코드들
${SegmentPostPrimary}
;; 여기에 코드 작성
!macroend
위에 작성된것이 기본 템플릿입니다.
이제 필요한 코드를 작성해봅시다.
${SegmentFile}
;; 프로그램이 시작될때 실행할 코드들
${SegmentPrePrimary}
;; 시작할때 유저명을 가져오는 코드입니다.
;; 윈도우 환경 변수 %HOMEPATH% 를 가져옵니다.
ExpandEnvStrings $0 "%HOMEPATH%";; %HOMEPATH% 에서 유저 이름만 걸러냅니다.
${GetFileName} $0 $R0;; PAL:UserName 변수에 유저 이름을 저장합니다.
;; 이후 설정 파일인 .ini 에서 %PAL:UserName% 을 사용할 수 있습니다.
${SetEnvironmentVariablesPath} PAL:UserName $R0
!macroend
;; 프로그램이 종료될때 실행할 코드들
${SegmentPostPrimary}
;; 여기에 코드 작성
!macroend
그리고 종료할때 탐색기 PDF 파일 우측 메뉴를 삭제하는 코드는 .ini [RegistryCleanupForce] 를 사용합시다.
위에서 작성한 MasterPDFPortable.ini 참고...
;; 프로그램이 종료될때 삭제할 레지스트리입니다.
[RegistryCleanupForce]
1=...생략
2=...생략
;; 탐색기 PDF 파일 우측 메뉴에 등록되는 메뉴를 종료시 삭제 하는 레지스트리
3=HKCU\Software\Classes\SystemFileAssociations\.pdf\shell\MasterPDFEditor5.Document
4=HKCU\Software\Classes\SystemFileAssociations\.xps\shell\MasterPDFEditor5.Document
이제 PortableAppsLauncher\PortableGenerator.exe 를 실행하여 다시 빌드하면 포터블 완성입니다.
이번 강좌는 비교적 쉬운 프로그램으로 했습니다.
다음 기회가되면 좀더 어렵고 고급 기능(DefaultData, FileWrite 등등)이 필요한 강좌를 써보도록 하겠습니다.
참고 사항
간혹 프로그램에 따라서 런타임 파일이 필요한 프로그램이 있습니다.
이건 만들땐 잘 실행되는데 윈도우 새로 설치한 다른컴 에선 실행 안되면 대부분 이 런타임 파일이 없는겁니다.
이땐 필요한 런타임 파일을 App\MasterPDF(프로그램이있는폴더) 에 넣어주면됩니다.
보통 런타임 파일은 msvcp1xx.dll, msvcr1xx.dll, vcruntime140.dll 이런것들이 있습니다.
이 런타임에 대한 좀더 자세한 사항은 다음 기회에...
참고 사이트들
NSIS 도움말: http://nsis.sourceforge.net/Docs/
플러그인들 : http://nsis.sourceforge.net/Category:Plugins
portableapps 도움말: https://portableapps.com/manuals/PortableApps.comLauncher/index.html
멋진강좌 감사합니다.