0
たとえば、これらの行に沿って何かを行う方法はありますか?NSISには評価機能がありますか?
Eval "MessageBox MB_OK 'Hello, World!'"
これは明らかに役に立たない例ですが、このような機能が役立つと思います。
たとえば、これらの行に沿って何かを行う方法はありますか?NSISには評価機能がありますか?
Eval "MessageBox MB_OK 'Hello, World!'"
これは明らかに役に立たない例ですが、このような機能が役立つと思います。
NSISコンパイラ(MakeNSIS)は、テキストファイルを解析し、バイナリ命令を生成された設定に書き出します。セットアップアプリケーション自体はコンパイル時に既知の命令しか実行できません。
ほとんどの命令は変数をパラメータとして受け取り、異なる動作を得ることができます。ここにはそれほど意味のない例があります。
Page InstFiles
Function MaybeShowMessageBox
IntCmp $0 0 skip
MessageBox MB_OK "$1"
skip:
FunctionEnd
Section
StrCpy $0 1 ; Display it
StrCpy $1 "Hello World"
Call MaybeShowMessageBox
StrCpy $1 "Goodbye World"
Call MaybeShowMessageBox
StrCpy $0 0 ; Don't display it
Call MaybeShowMessageBox
StrCpy $0 0
StrCpy $2 "$WinDir" 1 ; Get the first character
StrCmp $2 "C" "" skipWinDirMessage
StrCpy $0 1
skipWinDirMessage:
StrCpy $1 "$WinDir is on drive C"
Call MaybeShowMessageBox
SectionEnd
このようなコードは書かれません。 IntFmt
は、あなたが得ようとしているとして評価に近いですが、それは数字のみで動作します。
ShowInstDetails show
Section
StrCpy $1 42
IntFmt $0 "%d" $1
DetailPrint "$1 as a number: $0"
IntFmt $0 "%#.4x" $1
DetailPrint "$1 as a hex number with a >= 4 width: $0"
IntFmt $0 "%c" $1
DetailPrint "$1 as a character: $0"
SectionEnd
は、あなたが実際にやろうとしているかのより多くの有用な例を思い付くことができますか? – Anders