!include "nsDialogs.nsh" Var PathTextBoxHandle Function Page_SelectNWNPath nsDialogs::Create 1018 Pop $0 ${NSD_CreateLabel} 0 0 100% 12u "Please select your Neverwinter Nights install folder:" Pop $1 ; Create a read-only text box to display the selected path ${NSD_CreateText} 0 14u 75% 12u "$INSTPATH" Pop $PathTextBoxHandle ; Create a "Browse..." button ${NSD_CreateButton} 80% 14u 20% 12u "Browse..." Pop $2 ${NSD_OnClick} $2 OnBrowseClicked nsDialogs::Show FunctionEnd Function OnBrowseClicked nsDialogs::SelectFolderDialog "Select Neverwinter Nights Folder" "$INSTPATH" Pop $0 StrCmp $0 "" done StrCpy $INSTPATH "$0" ${NSD_SetText} $PathTextBoxHandle $INSTPATH done: FunctionEnd Function Page_SelectNWNPath_Validation ; Get the current text in the folder path textbox ${NSD_GetText} $PathTextBoxHandle $INSTPATH ; Check if tlk and hak folder exists IfFileExists "$INSTPATH\tlk\*.*" 0 invalid IfFileExists "$INSTPATH\hak\*.*" 0 invalid ; Everything is valid Return invalid: MessageBox MB_ICONEXCLAMATION|MB_OK "The selected folder must contain both 'tlk' and 'hak' subfolders." Abort ; Prevents advancing to next page FunctionEnd