Что нового

Подвинуть мышку на пиксель

  • Автор темы VitAl2013
  • Дата начала
V

VitAl2013

Гость
Получаю цвет пикселя так:
Код:
MsgBox (64, "test" , "0x" & StringRight( Hex (PixelGetColor ( 0, 0, ControlGetHandle ("[REGEXPTITLE:(Active).*Pro/ENGINEER]",  "", "[CLASS:SpinBox; INSTANCE:1]"))), 6 ), 6 )

Но надо знать откуда он этот цвет берёт - может я ошибся с координатоми?

Общий вопрос: Как? (может есть ещё варианты)
Конкретный вопрос: Как подвинуть мышку туда откуда был взят цвет? Мув с хэндлами не работает, как быть?
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8 224
Репутация
2 344
VitAl2013 [?]
Как подвинуть мышку туда откуда был взят цвет?
Цвет берётся с нулевого пикселя указанного окна (в этом случае элемента в окне), поэтому логично будет просто получать координаты элемента:

Код:
$aCtrl_Pos = ControlGetPos("[REGEXPTITLE:(Active).*Pro/ENGINEER]", "", "[CLASS:SpinBox; INSTANCE:1]")
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5 379
Репутация
2 711
Код:
#Include <WinAPI.au3>

$hWnd = WinGetHandle('[REGEXPTITLE:(Active).*Pro/ENGINEER]')
$Pos = ControlGetPos($hWnd, '', '[CLASS:SpinBox; INSTANCE:1]')
$tClient = DllStructCreate($tagPOINT)
DllStructSetData($tClient, 1, $Pos[0])
DllStructSetData($tClient, 2, $Pos[1])
$tScreen = _WinAPI_ClientToScreen($hWnd, $tClient)
MouseMove(DllStructGetData($tScreen, 1), DllStructGetData($tScreen, 2))
 

Ivan4310

Новичок
Сообщения
16
Репутация
0
Всем спасибо за примеры!Но у меня самого получилось,не так как у вас,и я уверен с очень грубыми косяками в скрипте,но тем нимение он работает как нужно :smile: вот что получилось
Код:
$left='72';Левая координата области для поиска
$top='195';Верхняя
$right='141';Праввая
$bottom='228';нижняя
$color='0x2E3E4D';Цвет пиксела
$pos = PixelSearch ( $left, $top, $right, $bottom, $color)
While @error = 1
$pos = PixelSearch ( $left, $top, $right, $bottom, $color)
WEnd


Сам пример поиска пикселя и клик по нему мышкой взят с этого форума,а постоянная проверка получилось добавлением цикла..
 

madmasles

Модератор
Глобальный модератор
Сообщения
7 790
Репутация
2 319
Ivan4310,
Предупреждение За нарушение правил форума (пункт В.11):
Любые отрывки AutoIt кода необходимо заключать в тег [autoit]
(подробнее), а обычный код соответственно в тег [code]
(подробнее). Также большие выдержки текста помещайте под тег [spoiler]
(подробнее), там где это поддерживается естественно. Как в случае с названием темы, также короткое и эргономичное сообщение привлекает больше внимания, и шансы на получение конкретного ответа увеличиваются.


С уважением, ваш Модератор.
 
Верх