Latest Posts Recent Comments 문의사항 신고하기 이용안내 이벤트 포인트 리스트 공지사항 관리자문의

공지사항

고정공지

(자유게시판에서 질문 금지) 질문하신 유저는 통보 없이 "계정정리" 될수 있습니다.

놀이터 일간 추천 베스트

놀이터 일간 조회 베스트

URL 링크 : https://osmanias.com/tip/2119420 

저번 초급강좌 (초급편) 이어 이번에 좀더 어려운 고급 기능을 익혀봅시다.

* 빌더가 버전2로 버전업 했습니다. PortableAppsLauncher_repack_V2.7z_빌더 


다운 받으면 뒤에 이름 _빌더 지우고 압축을 푸시면 됩니다. (크롬이 설정 파일을 막는 이유로 이름 바꿈...)

작업 경로가 길면 오류가 날 수 있으니 가능하면 최상위 폴더에 풀어주세요. 예: C:\PortableGenerator


강좌에 사용할 프로그램은 Clip Studio Paint EX 란 프로그램입니다.

만화 그리는 프로그램인데 고급 기능을 익히기 좋아서 이걸로 진행 하겠습니다.

어차피 고급 기능을 익히기 위한거니 정품이 없어도 체험판을 받아 사용하시면 되겠습니다.


ClipStudioPaint 를 설치하고 실행해봅시다.

** 참고로 설치전에 설치 기록하는거 잊지 않으셨죠? (초급편) 참고...


설치가 끝나고 CLIP STUDIO 를 실행하니 아래와 같은 화면이 나옵니다.

001.png



그리고 빨강 사각 박스의 PAINT 를 누르면 본체 프로그램이 시작됩니다.

정품이 아닌 경우 체험판을 누르면 프로그램이 시작됩니다.


자 이제 포터블 제작을 시작해봅시다.


우선 설치 기록을 보고 파일 위치 설정 부속파일등의 위치를 파악해야 합니다.

저 번 초급 강좌에 찾는법 알려드렸으니 찾았다고 가정하고 바로 넘어갑니다.


설치 경로는 C:\Program Files\CELSYS 입니다.

부속 폴더는 아래 처럼 2개 있고요

C:\ProgramData\CELSYS\CLIPStudio\Common

C:\ProgramData\CELSYS\CLIPStudio\InstallPath 

설정 폴더도 아래 처럼 2개 있네요

C:\Users\유저명\AppData\Roaming\CELSYS

C:\Users\유저명\AppData\Roaming\CELSYS_KR

마지막으로 레지스트리는 HKEY_CURRENT_USER\Software\CELSYS_KR 로 파악되었습니다.


어떤게 빠질지 또는 사용될지 아직 모르니까 각각의 폴더와 레지스트리 모두 백업해 두세요.

(저게 다 쓰이진 않습니다, 만들면서 필요없는 부분은 과감히 빼는게 실행속도나 용량면에 좋습니다)


일단 작업 폴더로 템플릿 파일과 설치, 설정 파일들을 옮깁시다.


002.png



폴더 구조는 위에 처럼 할것입니다.

프로그램 폴더는 설치 폴더를 복사해 가져온것이고 기본 설정과 부속 폴더는 위에서 찾은 설정들을 모아둔 폴더입니다.

필요없는 폴더는 나중에 하나씩 찾아 지우기로 하고 우선 다 가져왔습니다.


이제 포터블 설정 파일을 만들어 봅시다.


저번 초급 강좌 처럼 적당한 폴더에 PortableApps 용 템플릿 (App.7z_템플릿2) 을 풀어 넣습니다.

(Work.7z_템플릿2 을 Work.7z 로 이름을 바꾸고 압축을 푸시면됩니다.)


참고로 이번에도 저는 PortableApps\Work\ 에 풀어 사용합니다.

강좌도 이 경로라고 가정하겠습니다.


App\AppInfo\appinfo.ini 에 프로그램에 대한 정보를 적어 주세요.

아이콘도 적당한걸로 바꾸시고요. 자세한 내용은 저번 강좌에 했으니 생략 합니다.


참고로 appinfo.ini 파일에 Language= 부분은 현재 Multilingual 와 English 2가지만 됩니다.

어차피 포터블에만 적용되는 언어라 용량을 줄이려고 다른 언어는 뺏습니다.

다른 언어를 포함시키려면 "PortableAppsLauncher\Other\Source\Languages.nsh" 안에 보시고

"${IncludeLang} 해당 언어" 주석을 풀어주시면 사용 가능해집니다.



이제 본격적으로 포터블 설정 파일을 만들어 봅시다.

포터블 실행 파일명을 CSPaintPortable 라고 하겠습니다. (appinfo.ini 파일에 AppID=CSPaintPortable)

그럼 설정 파일 역시 같은 이름이여야 한다고 저번 강좌에 말씀 드렸습니다.


설정 파일 = App\AppInfo\Launcher\CSPaintPortable.ini

[Launch]

;; 실행할 파일명입니다. Studio 가 아닌 Paint 를 직접 실행 할겁니다.

ProgramExecutable="CELSYS\CLIP STUDIO PAINT\CLIPStudioPaint.exe"

DirectoryMoveOK=yes   ;; 포터블 위치가 이동할때 이전 위치를 저장해두고 쓸수있게 합니다.

SupportsUNC=yes   ;; UNC 네트워크 위치를 사용가능하게 해줍니다.


;; 참고로 32비트 64비트 따로 실행할 필요가 있을땐 아래 처럼 하면됩니다.

;; ProgramExecutable="32비트 프로그램"

;; ProgramExecutable64="64비트 프로그램"


[Language]

Base=KO  ;; 언어 설정


[LanguageStrings]

EN=english  ;; 언어 설정의 문자형입니다. (프로그램 언어 치환에 사용됩니다)

KO=korean


;; 참고로 이 Activate 항목의 몇몇 설정은 바뀌면 컴파일을 다시해야 적용됩니다.

[Activate]

Registry=true     ;; 레지스트리 사용을 가능하게합니다.

OneDrive=false   ;; 설정을 원드라이브에 저장할지 설정합니다.

Splash=false      ;; 스플래시 화면을 보여줄지 설정합니다.

;; 스플래시 화면은 App\AppInfo\Launcher\splash.jpg 가 존재하면 그 이미지를 보여줍니다.



;; 해당 레지스트리를 시작시 복구하고 종료시 백업합니다.

[RegistryKeys]

CELSYS_KR=HKCU\Software\CELSYS_%PAL:LanguageBase%


[DirectoriesMove]

;; 기본설정 App\DefaultData\Roaming_CELSYS_KR 폴더

;; 를 C:\Users\유저명\AppData\Roaming\CELSYS_KO 폴더

;; 로 시작시 복구(이동) 종료시 다시 백업합니다.

;; 참고로 기본 설정은 있으면 사용하지만 없어도 상관은 없습니다.

;; %PAL:LanguageBase% 이 변수 값은 원래 없지만 뒤에 Custom.nsh에서 넣을겁니다.

Roaming_CELSYS_KR=%APPDATA%\CELSYS_%PAL:LanguageBase%


;; 이 DirectoriesCopy 란 기능은 없지만 뒤에 Custom.nsh에서 넣을겁니다.

;; 참고로 이 기능은 시작할때 복사만하고 위 Move 처럼 종료할때 가져오지는 않습니다.

[DirectoriesCopy]

;; App\ProgramData\InstallPath 폴더를

;; C:\ProgramData\CELSYS\CLIPStudio\InstallPath 로 시작시 복사합니다.

ProgramData\InstallPath=%ALLUSERSPROFILE%\CELSYS\CLIPStudio\InstallPath

;; 아래 폴더는 용량이 커서 복사하는데 시간이 걸려서 사용안하기로 했습니다.

;; 없어도 별 문제 없어보이지만 후에 필요하면 주석을 지웁니다.

;; ProgramData\Common=%ALLUSERSPROFILE%\CELSYS\CLIPStudio\Common


;; 프로그램이 종료될때 삭제할 폴더입니다.

[DirectoriesCleanupForce]

1=%APPDATA%\CELSYS

2=%APPDATA%\CELSYS_%PAL:LanguageBase%


;; 파일에서 필요한 문자를 찾아 특정 문자로 교체합니다.

;; FileWrite숫자 로 뒤에 숫자는 순서대로 여야합니다.

[FileWrite1]

;; Type은 ini 또는 xml 도 가능합니다. 자세한 내용은 도움말 FileWrite 를 참고하세요.

Type=Replace

File=%ALLUSERSPROFILE%\CELSYS\CLIPStudio\InstallPath\aggregatemdul15.txt

;; 위 파일에서 "<PAL:APPDIR>" 이라는 문자열을 찾습니다.

Find=<PAL:APPDIR>

;; 위에서 찾은 문자열을 App 폴더로 바꿉니다.

Replace=%PAL:AppDir%


[FileWrite2]

Type=Replace

File=%ALLUSERSPROFILE%\CELSYS\CLIPStudio\InstallPath\certmdul15.txt

Find=<PAL:APPDIR>

Replace=%PAL:AppDir%


[FileWrite3]

Type=Replace

File=%ALLUSERSPROFILE%\CELSYS\CLIPStudio\InstallPath\clipstudio15.txt

Find=<PAL:EXEDIR>

Replace=%PAL:AppDir%\..


[FileWrite4]

Type=Replace

File=%ALLUSERSPROFILE%\CELSYS\CLIPStudio\InstallPath\clipstudio15.txt

Find=<PAL:LanguageCustom>

;; 위에서 찾은 문자열을 언어 설정의 문자형으로 바꿉니다. (예: english)

Replace=%PAL:LanguageCustom%


[FileWrite5]

Type=Replace

File=%ALLUSERSPROFILE%\CELSYS\CLIPStudio\InstallPath\common.txt

Find=<PAL:APPDIR>

Replace=%PAL:AppDir%


[FileWrite6]

Type=Replace

File=%ALLUSERSPROFILE%\CELSYS\CLIPStudio\InstallPath\paint15.txt

Find=<PAL:EXEDIR>

Replace=%PAL:AppDir%\..


[FileWrite7]

Type=Replace

File=%ALLUSERSPROFILE%\CELSYS\CLIPStudio\InstallPath\paint15.txt

Find=<PAL:LanguageCustom>

;; 위에서 찾은 문자열을 언어 설정의 문자형으로 바꿉니다. (예: english)

Replace=%PAL:LanguageCustom%



일단 위 CSPaintPortable.ini 파일 내용을 보니 아래 1개의 폴더는 사용이 안되었는데

App\DefaultData\Roaming_CELSYS 

이유는 저 폴더에 일부 설정들이 들어가는데 사용해보니 빼도 별로 상관없기에 빠졌습니다.

이런식으로 사용하다가 필요없어 보이는 부분은 과감이 빼세요. 그만큼 실행 속도가 빨라집니다.


그리고 이번에 중요하게 봐야할 것이 몇개 있는데 다음과 같은 부분이 있습니다.

%PAL:LanguageBase%

[DirectoriesCopy]

[FileWrite숫자]


우선 [FileWrite숫자] 에 대해 말해봅니다.

이 항목은 특정 파일에 내용을 변경할때 사용합니다.

위 설정 파일을 보면 InstallPath\*.txt 파일을 변경 하는걸 볼수있는데

저 txt 파일들 내용을 보면 언어 그리고 프로그램과 모듈들의 경로가 적혀있고 그 경로를 사용합니다.


그러니 제대로 포터블에 있는 프로그램과 모듈 경로로 바꿔줘야 하겠죠?

예로 몇가지만 살펴보죠


App\InstallPath\common.txt

"CommonPath"="<PAL:APPDIR>\CELSYS\Common\";


App\InstallPath\paint15.txt

"AppPath15"="<PAL:EXEDIR>\CSPaintPortable.exe";

"AppName"="PAINT";

"Sort"="200";

"Language"="<PAL:LanguageCustom>";



위 예의 템플릿 내용을 보면 아래와 같은게 있죠.

(물론 처음엔 아래 치환자가 아니였지만 어차피 매번 설정해야 하는거라 알기 쉽게 바꿔놓은겁니다)

<PAL:APPDIR>, <PAL:EXEDIR>, <PAL:LanguageCustom>


치환자들 입니다. 

설정 파일 CSPaintPortable.ini 의 [FileWrite숫자] 항목을 보면 저 문자열을 찾아서 필요한 문자열로 바꿔 주는 겁니다.


이제 %PAL:LanguageBase%, [DirectoriesCopy] 를 만들어 사용하기 위해 Custom.nsh 만들어 봅시다.


${SegmentFile}


;; 설정의 Language Base 값을 저장하기 위해 LangBase 라는 변수를 설정합니다.

Var LangBase


${SegmentInit}

       ;; 시작할때 설정의 Language Base 값 "KO" 을 LangBase 라는 변수에 저장합니다.

        ${ReadLauncherConfig} $LangBase Language Base

       ;; 설정 파일에서 사용할 %PAL:LanguageBase% 환경변수를 만들고 값 "KO" 넣습니다.

        ${SetEnvironmentVariablesPath} PAL:LanguageBase $LangBase

!macroend


${SegmentPre}

      ;; ForEachINIPair 함수는 ini 의 DirectoriesCopy 항목을 순차적으로 읽어옵니다.

      ;; 순차적으로 읽어서 변수 $0 과 $1 에 넣습니다.

      ;; 참고로 $0 ~ $9, $R0 ~ $R9 의 변수가 기본으로 설정되있어 그냥 사용 가능합니다.

      ${ForEachINIPair} DirectoriesCopy $0 $1


      ;; $0 변수에 읽어온 $0 변수와 App 디렉토리 경로를 합쳐 넣습니다.
      ;; 결과 예: App풀경로 + \ + ProgramData\InstallPath
      StrCpy $0 $AppDirectory\$0


      ;; ParseLocations 함수로 $1 변수에 값을 제대로된 경로로 만듭니다.
      ;; 결과 예: %ALLUSERSPROFILE%\CELSYS\CLIPStudio\InstallPath
      ;; 위를 이렇게 C:\ProgramData\CELSYS\CLIPStudio\InstallPath

      ${ParseLocations} $1


      ;; $1 경로 에서 상위 경로를 $4 변수에 넣습니다.
      ;; 그러니 $4 변수 값이 C:\ProgramData\CELSYS\CLIPStudio 됩니다.
      ${GetParent} $1 $4
      ${IfNot} ${FileExists} $4
        ;; 해당 디렉토리가 없으면 만듭니다.
        CreateDirectory $4
      ${EndIf}


      ;; CopyFiles 이란 함수도 있지만 기능이 적어 XCOPY 함수를 만들어 사용했습니다.
      ;; 도스를 이용했기에 도스 사용시 Include 폴더에서 함수의 코드를 찾아 참고하면 좋을겁니다.

      ;; 0번 경로를 1번 경로로 복사합니다. 경로 끝은 \ 이어야 하고 $R0 으로 결과가 반환됩니다.
      ${XCOPY} $R0 "$0\" "$1\" 1  ;; 뒤에 1은 항상 새로 덮어씌우기
      ${NextINIPair}

!macroend


이렇게 해서 ini 설정에서 %PAL:LanguageBase%, [DirectoriesCopy] 이걸 사용 가능하게 되었습니다.


사실 [DirectoriesCopy] 이 항목은 강좌를 위해 Custom.nsh 에서 따로 만들어 본거고요.

같은 기능인 [DirectoriesCopy.Overwrite] 라는 함수를 미리 만들어 둬서 이걸 그냥 사용해도 됩니다.



참고로 Segment 실행 순서는 다음과 같습니다.

${Segment.onInit} 

${SegmentInit}

${SegmentPre}

${SegmentPrePrimary}

${SegmentPreSecondary}  ;; Secondary 는 특수한 경우에만 사용되니 없다고 봐도 무방

${SegmentPreExec}

${SegmentPreExecPrimary}

${SegmentPreExecSecondary}

${SegmentPostPrimary}

${SegmentPostSecondary}  ;; Secondary 는 특수한 경우에만 사용되니 없다고 봐도 무방

${SegmentPost}

${SegmentUnload}



이정도로 하고 이제 포터블을 빌드 해봅시다.


004.PNG


템플릿 파일들이 있는 작업 폴더를 선택합니다. 

템플릿 파일이 Work\App 에 있다면 Work\ 폴더를 선택하시면 됩니다.


그럼 Work\ 폴더에 빌드된 CSPaintPortable.exe 가 생성됩니다.

이걸로 포터블 완성입니다.


이제 포터블 만들기 초급편과 고급편을 참고하면 기본적인건 만들 수 있을겁니다.


참고로 저번에 런타임 파일에 대해 조금 말했는데 좀더 추가하자면

64bit 윈도우라면 C:\Windows\System32 에 런타임 파일을 찾을 수 있고

64bit 윈도우에서 32bit 프로그램용 런타임은 C:\Windows\SysWOW64 라는 곳에서 찾을 수 있습니다.

필요한 런타임을 찾는 법은 Process Explorer 또는 pe-bear 를 사용해 볼 수 있습니다.



이 강좌는 제가 전에 만들 소스로 쓴 강좌라 실수하거나 놓친 부분이 있을 수 있습니다.

질문이나 그런 부분이 있다면 댓글로 적어주세요. 그럼 20000...



참고 사이트들

NSIS 도움말: http://nsis.sourceforge.net/Docs/

플러그인들 : http://nsis.sourceforge.net/Category:Plugins

portableapps 도움말: https://portableapps.com/manuals/PortableApps.comLauncher/index.html

자료만 받아갈줄 아는 회원님들께, 개발자님들에게 최소한의 경우는 우리가 피드백으로 보답하는 겁니다

문제가 있던 없던 그동안 고생하신 것을 생각하여 피드백 작성을 부탁 드립니다
­

의견쓰기::  상업광고, 인신공격,비방, 욕설, 아주강한음담패설등의 코멘트는 예고없이 삭제될수 있습니다. 회원정리 게시판

List of Articles
번호 제목 글쓴이 날짜 조회 수sort
599 일반 저는 한글이 아닌 글은 좀 어려워요...... 이럴때는 + 23 빨강모자 07-02 1243
598 정보 3.노트북에 윈도우 설치시 도움되는 설정(OS Mode Selection-[CSM OS],[UEFI and CSM OS]) + 6 동자승 02-01 1237
597 일반 샤오미 보조배터리 진품 가품 분해 비교 + 23 매니안 02-11 1237
596 윈도우 edge 광고차단 앱 입니다. Internet explorer 11 광고차단 포함 file + 17 건강하고행복하게 08-14 1235
595 유틸리티 유틸리티 모음 사이트입니다. file + 31 오매오매좋은것 11-03 1228
594 정보 윈도우10 RS5 신기능 - 이모지 패널 + 21 춘삼 11-15 1226
593 윈도우 파랗게 질리지 말고 자세히 보자, 블루스크린! + 18 구피 05-07 1221
592 드라이버 스카이레이크 메인보드 윈도우7 hp프린터 설치오류 해결방법 file + 19 아사랑 11-15 1213
591 인체공학적인 키보드 사용 자세 팁21 + 13 달림이 01-27 1212
590 정보 바이두 로그인 보안문자 한자물어볼때 해결방법 file + 19 도우너 10-25 1209
589 정보 [인증서 오류 :탐색이 차단됨] 해결 file + 5 볼트 01-22 1208
588 윈도우 IE(인터넷 익스플로러) 사용자 지정 글꼴로 보기 file + 21 나는나 03-22 1206
587 정보 윈10 v1903 설치후 다운로드 폴더 정렬방식 변경해보기 ^^ file + 21 더럭셔리오너 06-01 1203
586 PCTip ThinkPad E450, E455, E450c Keyboard Replacement + 4 매니안 03-01 1202
585 유틸리티 RoboForm 암호 + 16 남자라야지 04-17 1200
584 정보 CorelDRAW 2018 20.1.0.708. 패치가 나왔습니다. file + 11 코렐짱짱 06-15 1193
583 일반 Notebook[Setting]에 필요한 것들 file + 63 동자승 05-19 1190
582 윈도우 윈도우 10(Windows 10) 누적 업데이트 필수 서비스항목 + 28 Addi 02-20 1184
581 네트워크 구글 검색하는 방법입니다. + 54 카알 10-02 1182
580 윈도우 [ Windows 10 엣지에서 IE로 열기 해제시키는 방법 .. ] + 17 숲속의빈터 07-21 1181
579 모바일 구형 스마트폰은 다 어디에 있나요? ^^; file + 32 반돌 04-17 1180
578 윈도우 윈도우10 시작메뉴에서 원하는 프로그램 빨리 찾기 + 20 순두부 08-03 1180
577 일반 [유용한정보] 앱 하나 소개 해드립니다 (부동산 관련) + 24 달빛아래말할게 07-07 1178
576 정보 AIMP에서 YouTube 음악 듣기 file + 7 VenusGirl 04-22 1177
575 정보 이미지 파일 확장자 바로 알고 쓰기! + 15 구피 04-09 1176
574 정보 DriverStore Explorer v0.9.10 장치 드라이버 탐색기 file + 20 VenusGirl 05-17 1169
573 모바일 삼성 갤럭시 A3/ A5/ A7 2017, 방수 지원과 고릴라 글래스 4 탑재 + 9 인간살이 12-18 1168
572 네트워크 익스플로러(IE)의 구글 검색공급자 한글로 변경 방법 + 22 비브라토 09-25 1167
571 정보 SSD 수명 관련 자료 file + 32 데스윙 10-04 1164
570 관리/보안 피해자거나 공범(?)이거나, USB 악성코드 + 16 구피 04-19 1164
569 PCTip 3테라이상 대용량 하드디스크 사용하기 file + 40 오구야 12-01 1164
568 PCTip lg v32 일체형 pc 분해 ssd + 13 매니안 10-15 1161
567 유틸리티 다음팟인코더 등 동영상인코더에서 화질변화 없이 포맷 변환하기 + 19 행복한 08-15 1149
566 일반 컴팩트 형광램프 새제품이 자꾸 꺼질때 해결방법 file + 19 무정 07-16 1148
565 PCTip 마음에 드는 윈도우 잠금화면 저장하기 + 윈도우 10 바탕화면 화질 개선법 file + 17 System32 02-10 1147
564 PCTip 당신이 몰랐던 유투브의 숨겨진 8가지 보석같은 기능 + 38 코요테 08-15 1144
563 윈도우 도무지 이해가 되지 않는 파일 시스템 + 19 구피 04-07 1139
562 정보 복구 PC/장치를 복구해야 합니다.. file + 9 산이좋아서 06-07 1136
561 PCTip 안드로이드 기반 Remix OS VMWare에 설치 방법 [출처] 안드로이드 기반 Remix OS VMWare에 설치 방법|작성자 IT술사 + 5 매니안 10-22 1135
560 정보 사이트 모음 By누군가 (0.01Ver) + 26 누군가 03-28 1134
559 일반 Windows10 운영체제에서 화면켑쳐하기 file + 37 엔냐 04-18 1132
558 PCTip 세상의 모든 단축키 여기에 있습니다.- 사이트 + 22 달림이 08-04 1129