Версия AutoIt: 3.3.14.0
Описание:
Добрый день, специалисты по autoit
Подскажите решение.
Есть скрипт выхватывающий из папки C:\1\ (где лежит десяток видеофайлов) случайный видеофайл, открывает его программой по умолчанию и располагает в определенных координатах монитора - с определенными размерами окна.
Хотел заставить этот скрипт - открывать фото-файлы jpg вместо видеофайлов.
Подскажите - как подправить код, чтобы он открывал файлы jpg (из папки C:\1\ ) - и также размещал окно программы с файлом - с теми же координатами и параметрами окна ?
Примечания:
Описание:
Добрый день, специалисты по autoit
Подскажите решение.
Есть скрипт выхватывающий из папки C:\1\ (где лежит десяток видеофайлов) случайный видеофайл, открывает его программой по умолчанию и располагает в определенных координатах монитора - с определенными размерами окна.
Хотел заставить этот скрипт - открывать фото-файлы jpg вместо видеофайлов.
Подскажите - как подправить код, чтобы он открывал файлы jpg (из папки C:\1\ ) - и также размещал окно программы с файлом - с теми же координатами и параметрами окна ?
Примечания:
Код:
#include <File.au3>
#include <WinAPIReg.au3>
#include <WinAPIProc.au3>
Local $sDir = 'C:\1' ; Папка
Local $sFileType = '*.avi;*.mpg' ; Расширения файлов для поиска
Local $aPos[4] = [100, 200, 200, 150] ; Координаты окна плеера
Local $hWnd, $aFiles, $sRunProgram, $iPID, $hTimer, $aProgWindows, $sRunFile
$aFiles = _FileListToArrayRec($sDir, $sFileType, $FLTA_FILES, $FLTAR_NORECUR, $FLTAR_NOSORT, $FLTAR_FULLPATH)
If @error Then Exit -1
$sRunFile = $aFiles[0] > 1 ? $aFiles[Random(1, $aFiles[0], 1)] : $aFiles[1]
$sRunProgram = _WinAPI_AssocQueryString(StringRight($sRunFile, 4), $ASSOCSTR_EXECUTABLE) ; Редактор по умолчанию, ассоциированный в ОС с данным типом
If @error Or StringRight($sRunProgram, 4) = '.dll' Then Exit -2
$iPID = Run('"' & $sRunProgram & '" "' & $sRunFile & '"')
If Not $iPID Then Exit -3
$hTimer = TimerInit()
Do ; Некоторые плееры доооолго запускаются
$aProgWindows = _WinAPI_EnumProcessWindows($iPID)
If Not @error Then
For $i = 1 To $aProgWindows[0][0]
If WinActive($aProgWindows[$i][0]) Then
$hWnd = $aProgWindows[$i][0]
$aProgWindows = ''
ExitLoop 2
EndIf
Next
Sleep(200)
EndIf
Until TimerDiff($hTimer) > 5000 ; Ждем ~ 5 секунд
If Not $hWnd Then Exit -4
WinMove($hWnd, '', Default, Default, $aPos[2], $aPos[3])
If Not WinMove($hWnd, '', $aPos[0], $aPos[1]) Then Exit -5