0
nsisインストーラでテキストボックスのフォーカスが失われたときにイベントを呼び出すと、イベントが呼び出されたときに機能を実行できます。nsisでテキストボックスがフォーカスを失ったときにイベントを呼び出す方法
nsisインストーラでテキストボックスのフォーカスが失われたときにイベントを呼び出すと、イベントが呼び出されたときに機能を実行できます。nsisでテキストボックスがフォーカスを失ったときにイベントを呼び出す方法
nsDialogsはこのイベントをサポートしていませんが、通常はOnChangeイベントを使用してUIの他の部分を更新します。
あなたは絶対にこれをしなければならない場合は、タイマーを使用することができます
!include LogicLib.nsh
!include nsDialogs.nsh
Page Custom MyPageCreate
Page InstFiles
Var MyEdit
Var LastFocus
Function MyEditLostFocus
System::Call KERNEL32::GetTickCount()i.r0
SendMessage $9 ${WM_SETTEXT} 0 "STR:MyEditLostFocus, tick=$0"
FunctionEnd
Function DetectFocusTimerHack
System::Call 'USER32::GetFocus()i.r0'
${If} $0 <> $MyEdit
${AndIf} $LastFocus = $MyEdit
Push $0
Call MyEditLostFocus
Pop $0
${EndIf}
StrCpy $LastFocus $0
FunctionEnd
Function MyPageCreate
nsDialogs::Create 1018
Pop $0
${NSD_CreateText} 0 30u 100% 20u "Hello"
Pop $MyEdit
${NSD_CreateText} 0 60u 100% 20u "World"
Pop $9
${NSD_CreateTimer} DetectFocusTimerHack 333
nsDialogs::Show
FunctionEnd
を