2013-04-16 26 views
0

我有一個NSIS安裝程序,它在安裝完成後發送附帶有幾個不同日誌的電子郵件。我希望允許用戶添加他們的電子郵件地址來接收電子郵件,我希望他們在完成頁面上輸入它,因爲它看起來最合適。如何在完成頁面上添加一個文本框供用戶輸入他們的電子郵件地址?NSIS - 添加CreateText到MUI FINISH頁面

這是我當前完成頁:

;Finish page 
!Define MUI_FINISHPAGE_RUN 
    !Define MUI_FINISHPAGE_RUN_TEXT 'Open Install Log' 
    !Define MUI_FINISHPAGE_RUN_NOTCHECKED 
    !define MUI_FINISHPAGE_RUN_FUNCTION 'LaunchLog' 
!define MUI_FINISHPAGE_LINK 'Click here to visit us at co.com.' 
    !define MUI_FINISHPAGE_LINK_LOCATION http://www.co.com/ 
!define MUI_FINISHPAGE_TEXT_LARGE 
!define MUI_FINISHPAGE_TEXT "text text text" 
!insertmacro MUI_PAGE_FINISH 

回答

1
!include MUI2.nsh ;If you are using MUI v1 you need to replace NSD_* with .ini file commands 
!include Logiclib.nsh 
... 

!ifndef EM_SETCUEBANNER 
!define EM_SETCUEBANNER 0x1501 ; NT5 w/Themes & Vista+ 
!endif 

Var EMailEdit 

Function CustomizeFinishPage 
${NSD_CreateText} 120u 144u 180u 12u "" 
Pop $EMailEdit 
System::Call 'USER32::SendMessage(i$EMailEdit,i${EM_SETCUEBANNER},i0,w"E-mail address goes here...")' 
FunctionEnd 

Function SendFinishMail 
${NSD_GetText} $EMailEdit $0 
${If} $0 == "" ; TODO: Verify address by at least checking for *@*.* 
    MessageBox mb_iconstop "You must enter a valid address!" 
    Abort 
${EndIf} 
MessageBox mb_ok "TODO: Send mail to: $0" 
FunctionEnd 

... 

!insertmacro MUI_PAGE_* 
;Finish page 
!define MUI_FINISHPAGE_RUN 
    !define MUI_FINISHPAGE_RUN_TEXT 'Open Install Log' 
    !define MUI_FINISHPAGE_RUN_NOTCHECKED 
    !define MUI_FINISHPAGE_RUN_FUNCTION 'LaunchLog' 
!define MUI_FINISHPAGE_SHOWREADME "" #Used as our email checkbox 
    !define MUI_FINISHPAGE_SHOWREADME_TEXT "E-mail me some crap:" 
    !define MUI_FINISHPAGE_SHOWREADME_NOTCHECKED 
    !define MUI_FINISHPAGE_SHOWREADME_FUNCTION SendFinishMail 
!define MUI_FINISHPAGE_LINK 'Click here to visit us at co.com.' 
    !define MUI_FINISHPAGE_LINK_LOCATION http://www.co.com/ 
!define MUI_FINISHPAGE_TEXT_LARGE 
!define MUI_FINISHPAGE_TEXT "text text text" 
!define MUI_PAGE_CUSTOMFUNCTION_SHOW CustomizeFinishPage 
!insertmacro MUI_PAGE_FINISH 
!insertmacro MUI_LANGUAGE English 
+0

感謝您的幫助,這是非常有益的。 – afriesenborg