#include <GUIConstantsEx.au3>
#include <ButtonConstants.au3>

; Пример 1
$hGui = GUICreate('Функция FileSelectFolder')
$iButton = GUICtrlCreateButton('-', 10, 10, 21, 21, $BS_ICON)
GUICtrlSetImage(-1, @SystemDir & '\shell32.dll', 4, 0)
GUISetState()
While 1
	Switch GUIGetMsg()
		Case $iButton
			; пример с использованием GUI аналогичен для FileOpenDialog и FileSaveDialog
			$sPath = FileSelectFolder('Выберите папку', '', 3, @DesktopDir, $hGui)
			; продолжить цикл опроса от начала, если выбор отменён или объект не является папкой, например "Мой компьютер" или Корзина
			If @error Or Not StringInStr(FileGetAttrib($sPath), "D") Then ContinueLoop
			MsgBox(4096, 'Выбрана папка', $sPath)
		Case $GUI_EVENT_CLOSE
			GUIDelete($hGui)
			ExitLoop
	EndSwitch
WEnd

; Пример 2. Выбор ограничен внутри папки "Windows", с выбранной папкой "System32"
$sPath = FileSelectFolder('Выберите системную папку', @WindowsDir, 0, @SystemDir)
; продолжить цикл опроса от начала, если выбор отменён или объект не является папкой, например "Мой компьютер"
If @error Or Not StringInStr(FileGetAttrib($sPath), "D") Then Exit
MsgBox(4096, 'Выбрана папка', $sPath)