NSIS로 셋업프로그램을 개발하다보면 설치된 정보를 기록하고 싶을때가 있다.

물론 여러방법이 있겠지만

가장 정확한것은 인터넷이 연결되어 있다고 가정했을때 DB로 정보를 보내주면

객관적인 기록을 남길 수 있다.

 

이때 이용하는 플러그인이 MSSQL_OLEDB 플러그인이다

아래 주소에 가서 다운받으면 된다.

 

http://nsis.sourceforge.net/MSSQL_OLEDB_plug-in

 

사용법은 다운받은 예제에 포함되어 있지만 잠깐 살펴보기로 하자

 

!include "MUI.nsh"
!include "name2ip.nsh"

!include "OLEDB.NSH"

 

  ;-----------------------------------------------------------------------------------------------------------------------
  ;##### DB에 설치 정보 입력하기
  ;-----------------------------------------------------------------------------------------------------------------------
  IpConfig::GetEnabledNetworkAdaptersIDs
  Pop $0
  Pop $0
  StrCpy $2 0
  StrCpy $4 0
  ClearErrors
  ${Do}
    StrCpy $3 $0
    ${WordFind} "$0" " " "+1{" $R0
    IpConfig::GetNetworkAdapterDescription $R0
    Pop $1
    Pop $1
    ${If} $2 == 0
      StrCpy $2 $1
      StrCpy $4 $R0
    ${EndIf}
    ${WordReplace} "$0" "$R0 " "" "E+1" $0
  ${LoopUntil} ${Errors}
  ClearErrors
  Pop $1
  IpConfig::GetNetworkAdapterMACAddress $4
  Pop $1
  Pop $MACAddress  ;맥주소를 얻어온다

 

  ${name2ip::FindFirstIP} "" $0  ;IP주소를 얻어온다(공인IP를 얻어오는 것은 좀더 찾아보세요

 

; DB입력부분

  ${OLEDB}::SQL_Logon   "IP주소" "아이디" "비밀번호"
  ${OLEDB}::SQL_Execute   " use DB명"
  ${OLEDB}::SQL_Execute   " Insert into 테이블명(구분,제품아이디, 솔루션명, 버전, 설치일, 맥주소, IP주소) Values ('설치/삭제', '고유번호','솔루션명','v1.0', getdate(),'$MACAddress','$0')"
  ${OLEDB}::SQL_Logout

 

상기와 같이 처리하면 될것 같다.

 

일단 제품아이디는 개발자가 직접 정의를 하면 될것 같고

고유아이디인 맥주소를 찾고 IP를 찾아서 설치일자와 함께 입력을 요청하면

DB에 로그가 쌓인다

거기서 정보를 가져오면 될것 같다...

도움이 되시길....

 

'개발팁( NSIS)' 카테고리의 다른 글

NSIS로 셋업프로그램 만들기  (1) 2013.07.18
top