-
AutoIt
(
http://forum.oszone.net/forumdisplay.php?f=103)
Передвинуть курсор на элемент окна
Добрый день!
Пишу скрипт, который будет выполнять некоторые вещи пока я буду в отпуске =)
Возникла проблемка, не могу сообразить как заставить Autoit переместить курсор на нужную кнопку в окне программы.
Проблема к в том что кнопка находится в блоке, у блока есть свой Handle, а у самой кнопки нету.
Координаты кнопки внутри этого блока всегда одни и те же. Как навести курсор на кнопку?
|
Получить координаты элемента управления. Сдвинуть мышь на эти координаты плюс дельта до нарисованной кнопки. Наподобие (для 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
Т.е. нужно получить координаты блока, в котором находится нужная кнопка? »
|
Координаты элемента управления, от которого будете «танцевать» дальше. Затем смещение от этих координат — посмотрите на приведённый выше код примера и рисунок с демонстрацией такого рода «кликов» по областям «Палитра» и «Инструменты» в Microsoft Paint.
|
Время: 01:14.
© OSzone.net 2001-