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
번호 제목 글쓴이 날짜 조회 수
599 일반 토렌트 파일 찌꺼기 제거 (배치파일) file + 21 바나나맛 12-06 1690
598 일반 윈도우 10 공용 컴퓨터 사용자 초기 설정 도우미 file + 15 바나나맛 12-06 1107
597 일반 윈도우10 RS5 점프 목록 버그 짧은 팁 file + 8 바나나맛 12-03 761
596 정보 hit 저사양 컴퓨터를 위한 프로그램 추천 + 21 루시드림 11-25 2471
595 일반 Internet Explorer 즐겨찾기 목록 이름순 정렬 + 4 춘삼 11-24 418
594 윈도우 보안을 위한 기초 10가지 팁 + 8 루시드림 11-24 753
593 일반 탑파워에서 알려주는 좋은 파워 고르는 방법 file + 15 구영탄 11-20 532
592 윈도우 RS5 신기능 클립보드 기록 사용하기 file + 18 단테9 11-18 765
591 기타 [뻘팁]음악태그 편집하실 때 앱체크에서 랜섬웨어 판정할 수 있습니다. file + 3 루시드림 11-15 316
590 정보 윈도우10 RS5 신기능 - 이모지 패널 + 21 춘삼 11-15 1223
589 정보 Windows 10 Home 버전을 상위버전으로 변경 방법 file + 5 데스윙 11-15 1056
588 일반 UEFI 설치 PE+AOMEI Partition+WinNTSetup 이용 file + 32 유카 11-12 1964
587 정보 손글씨 폰트(무료) + 30 하ㅇ룽 11-12 938
586 관리/보안 자동으로 휴지통과 임시 파일 정리하기 file + 6 오예스 11-12 721
585 일반 (펌)인생 꿀팁 총정리!!! [스압] file + 1 푸른바다처럼 11-11 930
584 일반 컴퓨터 하면서 가끔씩 정리하면 좋은 것들 + 5 푸른바다처럼 11-11 994
583 윈도우 WinSxS폴더 최대한 안전하게 경량화하기 file + 5 루시드림 11-11 1896
582 정보 hit VMware 15Pro 에서 macOS 10.13.6 설치하기 file + 9 오예스 11-08 2435
581 정보 DIY 조립컴퓨터 10단계완성 (고화질이미지 1.4M) file + 12 푸른바다처럼 11-08 821
580 윈도우 사소한팁) 트윅환경에서 터치키보드 쓰기 file NulKim84 11-07 389
579 정보 로고 필요하세요?? 여기어때요?! + 6 하ㅇ룽 11-07 583
578 정보 구글 고급검색 (명령어입력X) file + 7 푸른바다처럼 11-06 610
577 일반 윈도우10 클린설치 후 매뉴얼 file + 11 루시드림 11-03 1824
576 드라이버 COSY KB3179BT 키패드 블루투스 등록문제 해결 file 무정 11-01 248
575 정보 모바일 유튜브 광고제거(파이어폭스 사용) + 3 가시리 11-01 535
574 정보 유튜브 광고제거(크롬사용) file + 9 가시리 11-01 763
573 관리/보안 개인 정보 설정 한방에 끝내기 file + 10 오예스 11-01 1018
» 일반 hit PortableApps를 사용하여 포터블 만들기 고급편 file + 15 오예스 10-29 2196
571 일반 알아두면 유용한 소프트웨어 10가지 file + 38 푸른바다처럼 10-27 1254
570 윈도우 윈도우 10 최신 업데이트 '말썽'…일부 HP PC서 블루스크린 발생 file + 7 anonymous 10-26 817
569 일반 PortableApps를 사용하여 포터블 만들기 초급편 file + 6 오예스 10-25 1418
568 관리/보안 시작 메뉴 타일 백업/복구 하기 file + 4 오예스 10-25 671
567 정보 hit 윈도우10 최적화 스크립트 (초보/딴지 환영) file + 40 불멸의이순신 10-24 5286
566 관리/보안 윈도우10 (마이크로소프트) 업데이트 원천차단하기 file + 27 조토마테 10-16 1976
565 일반 hit [모바일] 통신사 기본 앱 삭제하기 file + 16 촌꼬마 10-16 3679
564 드라이버 RS5 업데이트 후 블루투스 잡히지 않는 문제 해결법 file + 9 kungms 10-15 690
563 관리/보안 hit I KNOW (나는 알고 있다) file + 26 데스윙 10-15 6324
562 정보 uTorrent를 부팅 후 관리자 권한으로 자동실행하기 file + 8 조토마테 10-14 579
561 정보 응용프로그램 파일열기에서 네트워크 드라이브 목록이 안 보일때 해결 file + 3 조토마테 10-14 615
560 일반 구글드라이브 용량부족으로 다운로드 못할때 다운받는법(코올**오님 구글 드라이브 문제 ) + 13 미스타홍 10-13 622
559 정보 컴퓨터 스펙 한눈에 file + 62 초원의빛 10-13 918
558 정보 영어 맞춤법 검사도구 + 7 Soundofsol 10-09 495