2017-08-16 3 views
1

NSISを使用してプロジェクトをインストールしています。私はコンポーネントのページにインストールするいくつかのセクションを選択すると、警告テキストでMessageBoxを表示する必要があります。チェックボックスのクリックを追跡する方法はありますか、イベントか何かがありますか?NSIS:コンポーネントチェックイベントのコンポーネントページ

+0

あなたはドキュメントページで見たことがありますか? http://nsis.sourceforge.net/Reference/MessageBox おそらく 'MB_ICONEXCLAMATION'を使用したいと思うでしょう – MateoConLechuga

+1

@MateoConLechuga私はチェックイベント(チェックボックスコントロールをクリック)を意味し、メッセージを表示しません – user2455111

答えて

1

.onSelChange callbackを使用してください。

NSIS 3で変更されたセクションIDは$ 0に格納されます。

Page Components 
Page InstFiles 

Section /o "Foo" SID_FOO 
SectionEnd 

Section "Bar" 
SectionEnd 

!include LogicLib.nsh 

Function .onSelChange 
${If} ${SectionIsSelected} ${SID_FOO} 
${AndIf} $0 = ${SID_FOO} 
    MessageBox MB_ICONEXCLAMATION "Warning, section Foo selected!" 
${EndIf} 
FunctionEnd 

あなたはNSIS 2に状態を自分で追跡する必要があります:

Page Components 
Page InstFiles 

Section /o "Foo" SID_FOO 
SectionEnd 

Section "Bar" 
SectionEnd 

!include LogicLib.nsh 

Var hasWarned 

Function .onSelChange 
${If} ${SectionIsSelected} ${SID_FOO} 
${AndIf} $hasWarned = 0 
    StrCpy $hasWarned 1 
    MessageBox MB_ICONEXCLAMATION "Warning, section Foo selected!" 
${EndIf} 
/* Uncomment this to display the warning every time it is selected 
${IfNot} ${SectionIsSelected} ${SID_FOO} 
    StrCpy $hasWarned 0 
${EndIf} 
*/ 
FunctionEnd