所以我用下面的代碼的用戶輸入網頁和文本被加密NSIS用戶輸入頁面
我怎麼可以這樣寫一個文件
thae現在我可以讀這從一個文件分成一個變量來解密它。
然後,我想在屏幕上的消息框中顯示解密的消息,但是\ n \ n需要在顯示前轉換爲$ \ n,以便正確顯示。
例子我在進入:(注意控制輸入給你下一行)
Hello World
It's a great day
當解密是顯示:
Hello World\n\nIt's a great day
INI文件
[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個月 加密後,我嘗試解密並考慮使用 「的MessageBox MB_OK結果「解密的字符串是:$ \ n $ textencryt」在那裏返回解密的消息和\ n \ n。 (例如:測試用戶\ n \ N-代碼\ n \12個月)應該出來,如: 例子: 測試用戶 代碼 12個月
不要使用\相對路徑。 – Anders
那麼最好的方法是什麼? –
某些宏已假定文件位於$ pluginsdir中。對於ReserveFile,這很好,但「test.ini」與案例中的「。\ test.ini」相同。 – Anders