Что нового

Размещение картинки в координатах определенного окна

mv6677

Новичок
Сообщения
105
Репутация
0
Здравствуйте, уважаемые программисты.
Помогите решить вопрос.

Есть скрипт - размещающий фотографию поверх всех окон рабочего стола. Фотография лежит в одной папке со скриптом.
Сейчас скрипт размещает фотографию, ориентируясь на численные координаты экрана.
Код:
#Include <GDIPlus.au3>

_GDIPlus_Startup()

$CurImage = _GDIPlus_ImageLoadFromFile('test.jpg')
$sCLSID = _GDIPlus_EncodersGetCLSID("jpg")
$NewSizeW = Round((_GDIPlus_ImageGetWidth($CurImage) * 300) / _GDIPlus_ImageGetHeight($CurImage))

$NewImage = _GDIPlus_BitmapCreateFromScan0($NewSizeW, 300, _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, 300)
_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);, 1800-$H2/2, 1090, 1)
Sleep(30000)

Как разместить эту фотографию - в координатах 100,200 - от левого верхнего угла окна, содержащего текст " - Paint" ?
(То есть размещение должно ориентироваться не на координаты экрана рабочего стола, а на относительные координаты определенного окна (в данном случае программы Paint))
 

Вложения

  • Файлы.rar
    86.3 КБ · Просмотры: 2

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
Код:
...
_GDIPlus_Shutdown()

$X = -1
$Y = -1
$aPos = WinGetPos("[RegexpTitle: - Paint]")
If IsArray($aPos) Then
  $X = $aPos[0] + 100
  $Y = $aPos[1] + 200
EndIf
SplashImageOn('', @ScriptDir & '\Resized.jpg', $W2, $H2, $X, $Y)
Sleep(30000)
 
Автор
M

mv6677

Новичок
Сообщения
105
Репутация
0
InnI , спасибо - все работает.
 
Верх