だから私は以下のコードを使用して、ユーザーの入力ページを持っているとテキストがNSISユーザー入力ページ
どのように私は今、私はにファイルからこれを読むことができます
thaeファイルにこれを書くことができますが、暗号化されていますそれを復号化する変数。
メッセージボックスに解読されたメッセージを表示したいのですが、正しく表示されるように\ n \ nを\ n \ nに変換してから表示する必要があります。私は中に入る
例:それは解読さ
Hello World
It's a great day
はショーである(コントロールは、入力しますが、あなたに次の行を与える):INI
Hello World\n\nIt's a great day
ファイル
[Settings]
NumFields=2
Title="Activation Code"
State=0
[Field 1]
Type=Text
Left=8
Right=-10
Top=12
Bottom=-15
flags=MULTILINE|VSCROLL
[Field 2]
Type=GroupBox
Left=0
Right=-1
Top=0
Bottom=-10
Text="Please enter in your Activation Code"
コード:
!include MUI.nsh
!include LogicLib.nsh
Page custom SetCustom ValidateCustom
Section Dummy
SectionEnd
Function SetCustom
ReserveFile ".\test.ini"
!insertmacro MUI_INSTALLOPTIONS_EXTRACT ".\test.ini"
!insertmacro MUI_INSTALLOPTIONS_DISPLAY ".\test.ini"
FunctionEnd
Function ValidateCustom
!insertmacro MUI_INSTALLOPTIONS_READ $R1 ".\test.ini" "Field 1" "State"
${If} $R1 == ""
Abort # Go back to page.
${Else}
Var /GLOBAL textencryt
blowfish::encrypt $R1 "1234password"
StrCpy $textencryt $8
MessageBox MB_OK "Encrypted string is:$\n $textencryt"
blowfish::decrypt $8 "1234password"
StrCpy $textencryt $8
MessageBox MB_OK "Decrypted string is:$\n $textencryt"
${EndIf}
FunctionEnd
新しいコード:(問題あり)
!insertmacro MUI_INSTALLOPTIONS_READ $R1 "test.ini" "Field 1" "State"
${If} $R1 == ""
Abort # Go back to page.
${Else}
Var /GLOBAL textencryt
blowfish::decrypt $R1 "1234password"
StrCpy $textencryt $8
MessageBox MB_OK "Decrypted string is:$\n $textencryt"
!insertmacro MUI_INSTALLOPTIONS_READ $8 "test.ini" "Field 1" "HWND"
System::Call 'USER32::SendMessage(i $8, i ${WM_GETTEXT}, i ${NSIS_MAX_STRLEN}, t.R1)'
MessageBox MB_OK $R1
元のメッセージが 例だった: テストユーザー コード 12ヶ月 暗号化されており、私がしようとすると解読された後と 「メッセージボックスMB_OKを使用して結果を見て"解読された文字列は:$ \ n $ textencryt"は\ n \ nで解読されたメッセージを返します。 (例:テストユーザー\ nは\ NCODE \ nは12ヶ月\)それは次のように出てくるはずです。 例: テストユーザー コード 12ヶ月
使用しないでください\相対パス。 – Anders
その後、何が最良の方法ですか? –
マクロの中には、すでに$ pluginsdirにあると仮定しているものがあります。 ReserveFileの場合は問題ありませんが、 "test.ini"は "。\ test.ini"と同じです。 – Anders