Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   [решено] Передвинуть курсор на элемент окна (http://forum.oszone.net/showthread.php?t=278956)

McLotos 09-03-2014 14:41 2321161

Передвинуть курсор на элемент окна
 
Добрый день!
Пишу скрипт, который будет выполнять некоторые вещи пока я буду в отпуске =)
Возникла проблемка, не могу сообразить как заставить Autoit переместить курсор на нужную кнопку в окне программы.
Проблема к в том что кнопка находится в блоке, у блока есть свой Handle, а у самой кнопки нету.
Координаты кнопки внутри этого блока всегда одни и те же. Как навести курсор на кнопку?

Iska 09-03-2014 16:24 2321184

Получить координаты элемента управления. Сдвинуть мышь на эти координаты плюс дельта до нарисованной кнопки. Наподобие (для Windows XP с классической темой):
читать дальше »
Код:

AutoItSetOption("MustDeclareVars", 1)
AutoItSetOption("MouseCoordMode", 2)

Run("mspaint.exe")

WinWait("[CLASS:MSPaintApp]")
WinActivate("[CLASS:MSPaintApp]")

Local $hPalette = ControlGetHandle("[CLASS:MSPaintApp]", "", "[CLASS:AfxWnd42u; INSTANCE:1]")
Local $aPalettePos = ControlGetPos("[CLASS:MSPaintApp]", "", $hPalette)
MouseMove($aPalettePos[0] + 70, $aPalettePos[1] + 30)
MouseClick("left")

Local $hTools  = ControlGetHandle("[CLASS:MSPaintApp]", "", "[CLASS:AfxWnd42u; INSTANCE:2]")
Local $aToolsPos  = ControlGetPos("[CLASS:MSPaintApp]", "", $hTools)
MouseMove($aToolsPos[0] + 40, $aToolsPos[1] + 40)
MouseClick("left")

Local $hEditArea = ControlGetHandle("[CLASS:MSPaintApp]", "", "[CLASS:Afx:1000000:8; INSTANCE:1]")
Local $aEditArea = ControlGetPos("[CLASS:MSPaintApp]", "", $hEditArea)
MouseMove($aEditArea[0] + 100, $aEditArea[1] + 100)
MouseClick("left")


McLotos 09-03-2014 19:29 2321254

Не совсем понял. Т.е. нужно получить координаты блока, в котором находится нужная кнопка?

Iska 09-03-2014 21:34 2321288

Цитата:

Цитата McLotos
Т.е. нужно получить координаты блока, в котором находится нужная кнопка? »

Координаты элемента управления, от которого будете «танцевать» дальше. Затем смещение от этих координат — посмотрите на приведённый выше код примера и рисунок с демонстрацией такого рода «кликов» по областям «Палитра» и «Инструменты» в Microsoft Paint.


Время: 01:14.

Время: 01:14.
© OSzone.net 2001-