2010-11-27 2 views
0

문제점 : 폴더 생성, 일부 IE 설정 변경, 방화벽 변경 및 exe 설치 등 일련의 작업을 수행하기 위해 nsi를 작성해야합니다. 설치해야하는 exe는 허가 된 사본이며 등록 이름과 키가 있어야합니다.등록 이름과 키를 설정해야하는 exe 파일을 설치하는 NSIS 스크립트

시나리오 : 50 대가 넘는 컴퓨터에 exe를 설치 한 후에 동일한 단계를 수행해야하며 수동 오류가 발생하지 않도록하고 싶습니다.

나는 모든 단계를 성공적으로 작성했지만 여전히 등록 이름 및 키를 요구하는 EXE를 설치하는 방법을 찾으려고합니다.

감사

+0

우리는이 제품은 저장 위치를 ​​알아 내야을 충분한 정보가없는 그것 설치하는 동안 등록 정보를 등록하려면 ... – Anders

답변

0

당신은 어떻게 등록 이름과 키를 처리 할 계획인가 설명 할 수 lazywizar, 당신은 설치를 확인하기 위해 서버가 필요합니까?

어쨌든 사용자 지정 페이지를 만들고이 페이지에서 사용자 지정 양식을 만들어야합니다. 뭔가 같은 :

Page custom CreatePage QuitPage 
CreatePage 페이지의 UI를

예 생성하는 기능입니다

:

;;In the variables section 
var regname_hdl 
var regkey_hdl 
Var regname_inpt_hdl 
var regkey_inpt_hdl 
var RegName 
var RegKey 


Function CreatePage 

GetDlgItem $0 $hwndParent 3 
EnableWindow $0 0 

nsDialogs::Create 1018 
Pop $Dialog 

${If} $Dialog == error 
    Abort 
${EndIf} 

${NSD_CreateLabel} 0 0 100% 10u "Say something to user" 
Pop $Label 

${NSD_CreateLabel} 20u 20u 20% 20u "Enter Registration Name " 
Pop $regname_inpt_hdl 

${NSD_CreateLabel} 20u 40u 20% 20u "Enter Registration Key " 
    Pop $regkey_inpt_hdl 


    ${NSD_CreateText} 30% 20u 30% 10u "" 
    Pop $regname_hdl 

    ${NSD_CreatePassword} 30% 40u 30% 10u "" 
    Pop $regkey_hdl 

    nsDialogs::Show 

FunctionEnd 

Function QuitPage 

    ${NSD_GetText} $reg_hdl $2 
    ${NSD_GetText} $key_hdl $3 
    Push $3 
    Push $2 
    Pop $RegName 
    Pop $RegKey 


    ${If} '$2' == "" 
      messageBox MB_ICONEXCLAMATION "Reg name is empty !" 
      Abort 
    ${ElseIf} '$3' == "" 
     messageBox MB_ICONEXCLAMATION "Reg key is empty !" 
     Abort 
    ${Else} 
      System::Alloc 9 
      Pop $4 
      ;; Here you have to call some procedure to check if reg name and key are valid 
      ;; let's say the procedure returns 1 for true and 0 for false and it stores the result in $1 

     ${If} $1 == 0 
       messageBox MB_ICONEXCLAMATION "Installation denied !" 
       Abort 
     ${EndIf} 
    ${EndIf} 
    MessageBox MB_OK "Installation allowed !" 

    SetPluginUnload manual 
    System::Free 0 

FunctionEnd