If @OSVersion = "WIN_XP" And MsgBox(4160 + 4 + 256, "Информация", "Эта функция не работает в WinXP" & @LF & "Продолжить?") = 7 Then Exit
#include <GUIConstantsEx.au3>
#include <GuiAVI.au3>
#include <WindowsConstants.au3>

$Debug_AVI = False ; Проверяет ClassName передаваемый в AVI функции. Установите True и используйте дескриптор от другого элемента, чтобы увидеть как это работает

Global $hAVI, $iMemo

_Main()

Func _Main()
	Local $Wow64 = ""
	If @AutoItX64 Then $Wow64 = "\Wow6432Node"
	Local $hGUI, $sFile = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE" & $Wow64 & "\AutoIt v3\AutoIt", "InstallDir") & "\Examples\GUI\SampleAVI.avi"
	Local $btn_StartStop

	; Создаёт GUI
	$hGUI = GUICreate("(UDF) Проверяет, воспроизводит ли", 300, 200)
	$hAVI = _GUICtrlAVI_Create($hGUI, "", -1, 10, 10)
	$btn_StartStop = GUICtrlCreateButton("Старт", 50, 10, 75, 25)
	$iMemo = GUICtrlCreateEdit("", 10, 50, 276, 144, $WS_VSCROLL)
	GUICtrlSetFont($iMemo, 9, 400, 0, "Courier New")
	GUISetState()

	; Воспроизводит пример AutoIt AVI
	_GUICtrlAVI_Open($hAVI, $sFile)

	; Цикл выполняется, пока окно не будет закрыто
	While 1
		Switch GUIGetMsg()
			Case $btn_StartStop
				If GUICtrlRead($btn_StartStop) = "Старт" Then
					_GUICtrlAVI_Play($hAVI)
					GUICtrlSetData($btn_StartStop, "Стоп")
				Else
					_GUICtrlAVI_Stop($hAVI)
					GUICtrlSetData($btn_StartStop, "Старт")
				EndIf
				MemoWrite("Воспроизводит ли?: " & _GUICtrlAVI_IsPlaying($hAVI))

			Case $GUI_EVENT_CLOSE
				ExitLoop
		EndSwitch
	WEnd

	; Закрывает AVI
	_GUICtrlAVI_Close($hAVI)

	GUIDelete()
EndFunc   ;==>_Main

; Записывает строку в элемент для заметок
Func MemoWrite($sMessage)
	GUICtrlSetData($iMemo, $sMessage & @CRLF, 1)
EndFunc   ;==>MemoWrite