Fork me on GitHub

Nsis 独自ダイアログの作成

  • Jun 17, 2008

categoryプラグインは存在しません。

環境

ページの定義

カスタムダイアログを利用するには、

!include nsDialogs.nsh
Page custom SpecifyServerName SpecifyServerNameLeave ": $(SpecifyServerNameTitle)"

というようにページを定義する。SpecifyServerNameはFunction名。

ダイアログの作成

ダイアログを作成する際には、nsDialogs::Createでダイアログを作成(1018は固定値)して、

Var ServerDialog
Var ServerText
Function SpecifyServerName
   nsDialogs::Create /NOUNLOAD 1018
   Pop $ServerDialog
   $\{If\} $ServerDialog == error
       Abort
   $\{EndIf\}

$\{NSD_Create..\}で各コントロールを作成する。uは、ポイントにあたるよう。

   $\{NSD_CreateLabel\} 0 30 80u 12u "Server name (FQDN)"
   Pop $0
   $\{NSD_CreateText\} 140 30 100u 12u "$\{DEFAULT_SERVER\}"
   Pop $ServerText
   nsDialogs::Show
FunctionEnd

次へが押された時点で、ページの定義時に指定してあったLeave Functionが呼び出される。ここで、Popしておいた各画面部品から、入力された値を読み込む。

Function SpecifyServerNameLeave
   $\{NSD_GetText\} $ServerText $0
   MessageBox MB_OK "You typed: $\n$0"
FunctionEnd