Добрый вечер. Помогите.
У меня был скрипт, который работал.
И вдруг перестал работать.
Скрипт выводил на окно GUI - видеофайл, случайно выбирая его из папок.
Но вот теперь он перестал работать.
Выдает ошибку :
(236) : ==> Subscript used on non-accessible variable.:
$hEngine = $ret[0]
$hEngine = $ret^ ERROR
Помогите. Как поправить скрипт ?
У меня был скрипт, который работал.
И вдруг перестал работать.
Скрипт выводил на окно GUI - видеофайл, случайно выбирая его из папок.
Но вот теперь он перестал работать.
Выдает ошибку :
(236) : ==> Subscript used on non-accessible variable.:
$hEngine = $ret[0]
$hEngine = $ret^ ERROR
Помогите. Как поправить скрипт ?
Код:
#include "DSEngine.au3"
#include <WindowsConstants.au3>
#include <GuiConstants.au3>
#include <MenuConstants.au3>
#include <WinAPI.au3>
#include <WinAPISys.au3>
#include <MsgBoxConstants.au3>
#include <File.au3>
Local $aFileList = _FileListToArrayRec("f:\-видео файлы", "**", $FLTAR_FILES, $FLTAR_RECUR, $FLTAR_NOSORT, $FLTAR_FULLPATH)
If @error Then Exit MsgBox($MB_ICONERROR + $MB_TOPMOST, "Ошибка", "Файлы не найдены")
;ShellExecute($aFileList[Random(1, $aFileList[0], 1)])
Global $sFile = $aFileList[Random(1, $aFileList[0], 1)]
Global $fVolume, $fMove, $iValue = -10000
Global $hWnd = GUICreate("DirectShow Engine Example", 480, 320, -1, -1, $WS_POPUP, $WS_EX_TOPMOST)
GUIRegisterMsg($WM_MOUSEMOVE, "WM_MOUSE")
GUIRegisterMsg($WM_MOUSELEAVE, "WM_MOUSE")
GUIRegisterMsg($WM_LBUTTONDOWN, "WM_MOUSE")
Engine_Startup(@ScriptDir & "\DSEngine_UDF.dll")
Engine_LoadFile($sFile, $hWnd)
GUISetState()
Engine_StartPlayback()
Engine_Mute()
$End = Engine_GetLength()
Engine_SetPosition(Random(1, $End)) ; Установить случайное время
Do
If Engine_GetPosition() = $End Then Engine_SetPosition(0)
Until GUIGetMsg() = -3
Engine_Shutdown()
Func WM_MOUSE($hWnd, $iMsg)
Switch $iMsg
Case $WM_LBUTTONDOWN
$fMove = True
_SendMessage($hWnd, $WM_SYSCOMMAND, 0xF009, 0, "int", "int", "long")
Case $WM_MOUSEMOVE
If Not $fVolume Then
AdlibUnRegister("_VolumeDown")
AdlibRegister("_VolumeUp", 10)
$fVolume = True
_WinAPI_TrackMouseEvent($hWnd, $TME_LEAVE)
EndIf
Case $WM_MOUSELEAVE
If $fMove ThenДа
$fMove = False
_WinAPI_TrackMouseEvent($hWnd, $TME_LEAVE)
ElseIf $fVolume Then
AdlibUnRegister("_VolumeUp")
AdlibRegister("_VolumeDown", 10)
$fVolume = False
EndIf
EndSwitch
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_MOUSE
Func _VolumeUp()
If $iValue < 0 Then
$iValue += 100
Engine_SetVolume($iValue)
Else
AdlibUnRegister("_VolumeUp")
EndIf
EndFunc ;==>_VolumeUp
Func _VolumeDown()
If $iValue > -10000 Then
$iValue -= 100
Engine_SetVolume($iValue)
Else
AdlibUnRegister("_VolumeDown")
EndIf
EndFunc ;==>_VolumeDown