NSIS 시리즈
GitHub - idleh4021/nsis-installer-sample: A sample project demonstrating how to create an installer using NSIS
A sample project demonstrating how to create an installer using NSIS - idleh4021/nsis-installer-sample
github.com
[NSIS]설치프로그램 아이콘 변경(스크립트 편집-1)
[NSIS]URL 호출로 설치된 프로그램 실행하기(feat.레지스트리)(스크립트 편집-2)
이번에는 스크립트를 편집하여 설치된 프로그램을 URL로 호출하여 실행해보도록 하자.
준비물
1. 설치 파일 스크립트
2. 프로그램 소스코드
작업순서
레지스트리 등록
1. 스크립트 파일을 연다.
2. 레지스트리를 추가/제거 해주는 스크립트를 입력한다.
위는 프로그램을 설치할때 레지스트리를 등록해주는 스크립트
;Create Regi
WriteRegStr HKCR "NSISSample" "URL protocol" ""
WriteRegStr HKCR "NSISSample\shell" "" "open"
WriteRegStr HKCR "NSISSample\shell\open" "" "command"
WriteRegStr HKCR "NSISSample\shell\open\command" "" '"$INSTDIR\NSISSample.exe" "%1"'
아래는 프로그램을 제거할 때 레지스트리를 같이 제거해주는 스크립트
;Delete Regi
DeleteRegKey HKCR "NSISSample"
3. 저장 후 컴파일
4. 프로그램 설치 후 레지스트리 확인
포스팅의 내용과 동일하게 진행했다면 아래 경로에 레지스트리가 등록된 것을 확인할 수 있다.
컴퓨터\HKEY_CLASSES_ROOT\NSISSample\shell\open\command
5.URL호출 및 프로그램 실행 확인
nsissample://
웹 브라우저를 실행하고 위의 URL로 접속하면 프로그램을 실행할 수 있다.
URL로 실행프로그램을 호출 하면서 파라미터를 전달하고 싶다면?
1. 스크립트 편집 (파라미터 보내기)
위 내용을 그대로 따라했다면 레지스트리의 작업은 이미 끝났다.
;Create Regi
WriteRegStr HKCR "NSISSample" "URL protocol" ""
WriteRegStr HKCR "NSISSample\shell" "" "open"
WriteRegStr HKCR "NSISSample\shell\open" "" "command"
WriteRegStr HKCR "NSISSample\shell\open\command" "" '"$INSTDIR\NSISSample.exe" "%1"'
레지스트리를 편집하는 과정으로 돌아가보면 실행프로그램을 매핑하는 구문 옆에 "%1"이 붙어있는데,
이게 바로 파라미터를 뜻한다.
파라미터는 하나만 전달 가능하고,
여러개의 파라미터를 받는 것은 구분자를 정하여 실행프로그램 내에서 작업을 해야한다.
2. 실행프로그램 소스코드 편집 (파라미터 받기)
C#(winform,WPF)의 경우에는 아래코드를 통해 실행프로그램에서 파라미터를 받을수 있다.
string[] arr = Environment.GetCommandLineArgs();
arr[0]에는 실행프로그램의 경로가 들어있고,
arr[1]에는 전달받은 파라미터가 들어가있다.
3. 설치프로그램 컴파일
변경된 실행프로그램으로 설치파일을 다시 컴파일하여 설치한다.
4.URL + 파라미터 호출
nsissample://par1;par2;par333
한글을 파라미터로 보내고 싶다면?
파라미터를 한글로 전달하면 URL이 인코딩되어 전달된다.
아래 링크를 참조하여 해결
끝.
'C#' 카테고리의 다른 글
[C#]URL 인코딩/디코딩 하기 (0) | 2024.12.26 |
---|---|
[NSIS]설치프로그램 아이콘 변경(스크립트 편집-1) (0) | 2024.12.26 |
[NSIS]Setup 프로그램(.exe) 만들기 (6) | 2024.12.26 |
[C#]라이브러리(.dll)의 Summary가 보이지 않을때 (2) | 2024.11.05 |