'Upgrade'에 해당되는 글 2건
- 2010/06/24 아이폰 iOS 업데이트시에 업데이트 서버를 찾을 수 없는 경우 해결책 (2)
- 2008/12/11 NSIS 로 이미 설치되어 있을 경우 디렉토리(폴더) 선택 못하게 해서 업그레이드하기
아이폰 iOS 4 로 업데이트시에 'iPhone 소프트웨어 업데이트 서버를 찾을 수 없거나 일시적으로 사용할 수 없기 때문에 "iPhone" iPhone을 지금 업데이트할 수 없습니다. 나중에 다시 시도하십시오'
라고 계~~~속 나왔었다. 탈옥한 적도 없고, 정말 순수한 유저인데... 정말 계~~~속 이틀째 저 메시지만 나왔었다. 검색하다 검색하다 애플 홈페이지에 보니, LAN 설정을 바꾸라는 내용과 함께, 'iTunes 등은 되는데, 업데이트가 안될경우가 있다' 라는 내용이 있었다.
그래서 혹시나해서 아래처럼 네트웍과 관련되었다고 의심되는 것들을 지우고 해보았다.
- DNS 를 자동으로 변경(기존에는 구글 DNS 를 지정해서 쓰고 있었는것을 자동 설정으로 변경)
- 공유기의 DNS 도 자동으로 변경
- 공유기 리부팅 및 인터넷 모뎀 리부팅
- V3 등 인터넷 감시하는 프로그램 종료
이렇게 하니 드디어 성공 ㅠㅜ 남들은 22일 새벽부터 했다는 데, 난 이틀이나 늦게 성공했다. 하지만 아직 정확히 뭐가 문제였는지는 -_-;;
라고 계~~~속 나왔었다. 탈옥한 적도 없고, 정말 순수한 유저인데... 정말 계~~~속 이틀째 저 메시지만 나왔었다. 검색하다 검색하다 애플 홈페이지에 보니, LAN 설정을 바꾸라는 내용과 함께, 'iTunes 등은 되는데, 업데이트가 안될경우가 있다' 라는 내용이 있었다.
그래서 혹시나해서 아래처럼 네트웍과 관련되었다고 의심되는 것들을 지우고 해보았다.
- DNS 를 자동으로 변경(기존에는 구글 DNS 를 지정해서 쓰고 있었는것을 자동 설정으로 변경)
- 공유기의 DNS 도 자동으로 변경
- 공유기 리부팅 및 인터넷 모뎀 리부팅
- V3 등 인터넷 감시하는 프로그램 종료
이렇게 하니 드디어 성공 ㅠㅜ 남들은 22일 새벽부터 했다는 데, 난 이틀이나 늦게 성공했다. 하지만 아직 정확히 뭐가 문제였는지는 -_-;;
갑자기 ZViewer 새버젼을 설치할 때 이전 버젼 위치에 항상 덮어써서 '업그레이드' 를 하게 하고 싶어졌다. 어느날 문득 갑자기 ㅋ
해야할 일은
- 현재 설치된 디렉토리를 찾아서 넣고
- 디렉토리를 선택할 때 텍스트 입력창 비활성화
- Browse(찾아보기) 버튼을 비활성화
그래서 검색을 시작했는데, 처음에는 한글로 검색. 주옥같은 게으른 엔지니어님의 NSIS 글을 찾을 수 있었지만 원하는 내용으로의 단서만 찾을 수 있었다. 그래서 다시 NSIS 도움말에서 대충 원하는 내용을 찾아서 일단 대충 만들었는데, 실제 코드가 분명있을거라는 생각이 (또 갑자기) 들어서, 'nsis disable browse button' 이라고 구글로 검색. 제일 처음에 원하는 내용 발견 -_-;;; 코드까지 나와 있어서 정말... 좀 허무했지만, 내가 만들어본 코드랑 거의 비슷했다. 하지만 '찾아보기 버튼' 까지는 나와있지 않아서 좀 더 내용을 덧붙여서 완성~
관련 코드는 다음과 같다.
...코드를 조금 설명해보자면,
!define MUI_PAGE_CUSTOMFUNCTION_SHOW onDirectoryShow
!insertmacro MUI_PAGE_DIRECTORY
...
; 디렉토리 선택 화면이 보여질 때 실행되는 함수. 이미 설치된 경우 디렉토리 선택을 할 수 없게 한다.
Function onDirectoryShow
push $R0
push $R1
ReadRegStr $0 HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\ZViewer" "UninstallString"
IfErrors onDirectoryShowEnd onDirectoryShowDisableBrowse
onDirectoryShowDisableBrowse:
FindWindow $R0 "#32770" "" $HWNDPARENT
GetDlgItem $R1 $R0 1019
EnableWindow $R1 0
GetDlgItem $R1 $R0 1001
EnableWindow $R1 0
; '기존의 설치될 디렉토리를 고르세요' 라는 메시지를 '다시 설치합니다' 라는 내용으로 바꿈
GetDlgItem $R1 $R0 1006
SendMessage $R1 ${WM_SETTEXT} 0 "STR:$(TEXT_REINSTALL)"
onDirectoryShowEnd:
pop $R1
pop $R0
FunctionEnd
- MUI_PAGE_DIRECTORY 앞 문장에 define 을 해서 callback 을 등록하는게 일단 중요하다.
- ReadRegStr 에서 읽어오는 것은 '프로그램 추가/제거' 에서 쓰이는 레지스트리이다.(참고)
- FindWindow 로 Directory 선택창을 읽어오고, GetDlgItem(win처럼) 로 Control handle 을 얻어온 후 EnableWindow 로 disble 시킨다.
- SendMessage 에 ${WM_SETTEXT} 를 써서 기존의 글자를 바꾼다.




Prev
Rss Feed