Что нового

Скрипт не отображает интерфейс GUI

Kornerupin

Новичок
Сообщения
3
Репутация
0
Доброго времени суток.
Объясните пожалуйста - почему не работает скрипт ?

Скрипт должен выводить на gui - случайные картинки - каждые три секунды.
Он вроде бы работает, но на интерфейс тем не менее - ничего не выводит.
Код:
#Include <GDIPlus.au3>
#include <File.au3>

$iCount = 0
$iTimeOut = 10*60*1000/600 ; 10 min
$sMyFile = @ScriptDir & '\1.txt'
HotKeySet('{Esc}', '_Exit')
$iStart = TimerInit()
While 1
    If TimerDiff($iStart) > $iTimeOut Then
        _My_Func2()
        $iStart = TimerInit()
    EndIf
    Sleep(50)
WEnd


Func _Exit()
    Exit
 EndFunc   ;==>_Exit


Func _My_Func2()
Local $sDir = 'C:\1 tkn\7' ; Папка
Local $sFileType = '*.bmp;*.jpg' ; Расширения файлов для поиска
Local $hGUI, $aFiles, $sRunFile, $hActive

$aFiles = _FileListToArrayRec($sDir, $sFileType, $FLTA_FILES, $FLTAR_NORECUR, $FLTAR_NOSORT, $FLTAR_FULLPATH)
If @error Then Exit 2
$sRunFile = $aFiles[0] > 1 ? $aFiles[Random(1, $aFiles[0], 1)] : $aFiles[1]


$Wnew = 1060

_GDIPlus_Startup()

$CurImage = _GDIPlus_ImageLoadFromFile($aFiles[0] > 1 ? $aFiles[Random(1, $aFiles[0], 1)] : $aFiles[1])
$sCLSID = _GDIPlus_EncodersGetCLSID("jpg")
$NewSizeW = Round((_GDIPlus_ImageGetWidth($CurImage) * 1060) / _GDIPlus_ImageGetHeight($CurImage))


$NewImage = _GDIPlus_BitmapCreateFromScan0($NewSizeW, 1060, _GDIPlus_ImageGetPixelFormat($CurImage)[0])
$hGraphics = _GDIPlus_ImageGetGraphicsContext($NewImage)
_GDIPlus_GraphicsSetInterpolationMode($hGraphics, 7)
_GDIPlus_GraphicsDrawImageRectRect($hGraphics, $CurImage, 0, 0, _GDIPlus_ImageGetWidth($CurImage), _GDIPlus_ImageGetHeight($CurImage), 0, 0, $NewSizeW, 1060)
_GDIPlus_GraphicsDispose($hGraphics)

If FileExists("Resized.jpg") Then FileRecycle("Resized.jpg")
$tParams = _GDIPlus_ParamInit(1)
$tData = DllStructCreate("int Quality")
DllStructSetData($tData, "Quality", 100)
$pData = DllStructGetPtr($tData)
_GDIPlus_ParamAdd($tParams, $GDIP_EPGQUALITY, 1, $GDIP_EPTLONG, $pData)
$pParams = DllStructGetPtr($tParams)
_GDIPlus_ImageSaveToFileEx($NewImage, "Resized.jpg", $sCLSID, DllStructGetPtr($tParams))
_GDIPlus_ImageDispose($CurImage)
_GDIPlus_ImageDispose($NewImage)

$hImage = _GDIPlus_ImageLoadFromFile("Resized.jpg")
$W2 = _GDIPlus_ImageGetWidth($hImage)
$H2 = _GDIPlus_ImageGetHeight($hImage)
_GDIPlus_ImageDispose($hImage)

_GDIPlus_Shutdown()

SplashImageOn('', @ScriptDir & '\Resized.jpg', $W2, $H2, 1850-$H2/2, 1090, 1)
Sleep(3000)
SplashOff()
EndFunc   ;==>_My_Func
 

InnI

AutoIT Гуру
Сообщения
4,950
Репутация
1,445
У вас SplashImage выводится в Y-координате 1090. FullHD - это 1080. Каких размеров у вас монитор?
 
Последнее редактирование:
Верх