NSIS 를 이용하서설치 파일을 만들경우 유용한 팁.
; 64비트 여부 체크하기
System::Call "kernel32::GetCurrentProcess() i .s"
System::Call "kernel32::IsWow64Process(i s, *i .r0)"
StrCmp $0 '0' Win32 Win64
Win32:
Goto EndCheck
Win64:
SetRegView 64 ;64비트 os에, 32비트용 프로그램이 접근 하기 위해서 사용
EndCheck:
추가.
동일 프로그램 설치 여부르 체크 (중복체크방지)
Function .onInit ; 플러그인 초기화를 합니다
InitPluginsDir
${nsProcess::KillProcess} "appname.exe" $R0
; 64비트 여부 체크하기
System::Call "kernel32::GetCurrentProcess() i .s"
System::Call "kernel32::IsWow64Process(i s, *i .r0)"
StrCmp $0 '0' Win32 Win64
Win32:
Goto EndCheck
Win64:
SetRegView 64
EndCheck:
Call CheckVCRedist
Pop $R0
StrCmp $R0 "not found" Start 0
MessageBox MB_OK|MB_ICONSTOP "동일 프로그램이 이미 설치 되어있습니다." ; 팝업메시지 출력
Abort
Start: ; 설치 여부 확인(레지스트리 값 이용)
;ReadRegStr $R0 HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\appname" "UninstallString"
FunctionEnd
Function CheckVCRedist
Push $R0
ClearErrors
ReadRegStr $R0 HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\appname" "UninstallString"
IfErrors 0 VSRedistInstalled
StrCpy $R0 "not found"
VSRedistInstalled:
Exch $R0
FunctionEnd
'이것저것 > My_Work' 카테고리의 다른 글
(TabActivity) TabActivities 에 키 이벤트 받기 (0) | 2015.02.26 |
---|---|
[Mac, iMac] - 부트 캠프 ISO 지원하지 않을 경우 (0) | 2015.01.08 |
[MFC] - 다이얼로그 리사이징시 깜빡임 (0) | 2014.02.25 |
[MFC] - Tutorial - Modeless Dialogs with MFC (0) | 2013.12.23 |
한글 초성알아내기 (0) | 2013.11.07 |