Kornerupin
Новичок
- Сообщения
- 3
- Репутация
- 0
Всем привет.
Есть скрипт размещения картинок по координатам, использующий GDIPlus.au3.
Но окно GDIPlus имеет какие-то странные особенности размещения, что непонятно как с ним работать.
Например непонятно как установить его преемственность по отношению к окну "Безымянный — Блокнот" - _WinAPI_SetParent.
Скрипт размещения картинок:
Куда в него добавить код преемственности окна ?
Есть скрипт размещения картинок по координатам, использующий GDIPlus.au3.
Но окно GDIPlus имеет какие-то странные особенности размещения, что непонятно как с ним работать.
Например непонятно как установить его преемственность по отношению к окну "Безымянный — Блокнот" - _WinAPI_SetParent.
Скрипт размещения картинок:
Код:
#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:\6\1' ; Папка
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 = 360
_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) * 360) / _GDIPlus_ImageGetHeight($CurImage))
$NewImage = _GDIPlus_BitmapCreateFromScan0($NewSizeW, 360, _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, 360)
_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, 950-$H2/2, 490, 1)
Sleep(3000)
SplashOff()
EndFunc ;==>_My_Func
Куда в него добавить код преемственности окна ?
Код:
$hNotepad = WinGetHandle("[Title:Безымянный — Блокнот]")
_WinAPI_SetParent($hGUI, $hNotepad)
_WinAPI_SetWindowLong($hGUI, $GWL_HWNDPARENT, $hNotepad)