2015-05-07 116 views
-1

我創建了一個自定義頁面(.nsh)並有3個文本框(url, user, password)用戶打字,並.NSI文件將得到這些數據寫入到一個屬性文件。NSIS:爲​​什麼從文本框的值「文本」,成爲數字?

但這些文字成爲了數字這樣9502966, 4718976 and 8455398. 我應該怎麼辦?

這是我的示例代碼:

AcustomPage.nsh

...

!macro create_AcustomPage APP_NAME CUS_URL CUS_USER CUS_PWD 
Page custom create_AcustomPage 
Function create_AcustomPage 
    ... 
    ${NSD_CreateText} 60u 50u 60% 11u "${CUS_URL}" 
    Pop $AcustomPage.url 
    ${NSD_CreateText} 60u 50u 60% 11u "${CUS_USER}" 
    Pop $AcustomPage.user 
    ${NSD_CreateText} 60u 50u 60% 11u "${CUS_PWD}" 
    Pop $AcustomPage.pwd 
    ... 
FunctionEnd 
... 
!macroend 

Project.nsi

...

!insertmacro create_AcustomPage "${NAME} ${VERSION}-${RELEASE}" "url.localhost" "username" "password" 
...  
${ConfigWriteS} "$INSTDIR\configure.properties" "custom_url=" "$CUS_URL" $R0 
${ConfigWriteS} "$INSTDIR\configure.properties" "custom_user=" "$CUS_USER" $R0 
${ConfigWriteS} "$INSTDIR\configure.properties" "custom_password=" "$CUS_PWD" $R0 

結果# configure.proper領帶

addi_url=18940788 
addi_user=6750598 
addi_password=11469950 

但它應該是:

addi_url=usl.localhost 
addi_user=username 
addi_password=password 

感謝,

+0

你是如何閱讀這些領域?你應該粘貼一些代碼,以獲得幫助.. –

+0

@FranciscoR非常感謝你,現在我在這裏添加了我的代碼。謝謝。 –

+0

在將來你應該發佈實際編譯的代碼,你仍然隱藏了很多重要的東西,所以我們必須猜測問題是什麼...... – Anders

回答

0

我猜你正在寫的控制處理的文件,但它因爲你窮的例子是不可能知道碼。

這也許應該是這個樣子:

InstallDir "$Temp\Test" 

!include TextFunc.nsh 
!include nsDialogs.nsh 


var hCtlUrl 
var hCtlUsr 
var hCtlPwd 

!define DefaultUrl "url.localhost" 
!define DefaultUsr "foo" 
!define DefaultPwd "bar" 

Function mypageCreate 
nsDialogs::Create 1018 
Pop $0 
${NSD_CreateText} 60u 30u 60% 11u "${DefaultUrl}" 
Pop $hCtlUrl 
${NSD_CreateText} 60u 50u 60% 11u "${DefaultUsr}" 
Pop $hCtlUsr 
${NSD_CreateText} 60u 70u 60% 11u "${DefaultPwd}" 
Pop $hCtlPwd 
nsDialogs::Show 
FunctionEnd 

Function mypageLeave 
${NSD_GetText} $hCtlUrl $0 
${ConfigWriteS} "$INSTDIR\configure.properties" "custom_url=" "$0" $R0 
${NSD_GetText} $hCtlUsr $0 
${ConfigWriteS} "$INSTDIR\configure.properties" "custom_user=" "$0" $R0 
${NSD_GetText} $hCtlPwd $0 
${ConfigWriteS} "$INSTDIR\configure.properties" "custom_password=" "$0" $R0 
FunctionEnd 

Page Directory 
Page InstFiles 
Page Custom mypageCreate mypageLeave 
0

首先,你需要變量來存儲控件的HWND。您還需要爲您的自定義頁面提供「離開」功能。當用戶點擊下一步按鈕時,它會被執行。該功能必須讀取文本控件。像這樣的:

Var customer_url 
Var customer_user 
Var customer_password 

Page custom create_AcustomPage leave_AcustomPage 

Function create_AcustomPage 
    ... 
    ${NSD_CreateText} 60u 50u 60% 11u "Type your url..." 
    Pop $0 
    ${NSD_CreateText} 60u 50u 60% 11u "Type your username..." 
    Pop $1 
    ${NSD_CreateText} 60u 50u 60% 11u "Type your password..." 
    Pop $2 
    ... 
FunctionEnd 

Function leave_AcustomPage 
    # Read form 
    ${NSD_GetText} $0 $customer_url 
    ${NSD_GetText} $1 $customer_user 
    ${NSD_GetText} $2 $customer_password 

    # save form to config file 
    ${ConfigWriteS} "$INSTDIR\configure.properties" "custom_url=" "$customer_url" $R0 
    ${ConfigWriteS} "$INSTDIR\configure.properties" "custom_user=" "$customer_user" $R0 
    ${ConfigWriteS} "$INSTDIR\configure.properties" "custom_password=" "$customer_password" $R0 
FunctionEnd 
相關問題