Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Какие координаты нужно указать для ControlClcik в созданном GUI

Ответить
Настройки темы
[решено] Какие координаты нужно указать для ControlClcik в созданном GUI

Пользователь


Сообщения: 143
Благодарности: 24

Профиль | Отправить PM | Цитировать


Изменения
Автор: HORRIBLE
Дата: 05-05-2010
Описание: Так наверно проще будет понять, что не получается. + Убрал лишнее из старого кода.
Я немного изменил код который приводил кнопки убрал....
Код: Выделить весь код
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Opt("MouseCoordMode", 2)

HotKeySet("{ESC}","click")

Example()

Func Example()
    Local $oIE, $GUIActiveX
    $oIE = ObjCreate("Shell.Explorer.2")
    GUICreate("Embedded Web control Test", 640, 580, 10,10, BitOR($WS_OVERLAPPEDWINDOW, $WS_CLIPSIBLINGS, $WS_CLIPCHILDREN))
    $GUIActiveX = GUICtrlCreateObj($oIE, 1, 1, 640, 580)
    GUISetState() 
    $oIE.navigate("http://www.autoitscript.com")
    While 1
        $msg = GUIGetMsg()

        Select
            Case $msg = $GUI_EVENT_CLOSE
                ExitLoop
        EndSelect

    WEnd

    GUIDelete()
EndFunc 

Func click()
	MsgBox(0,"","должны нажать на ссылку Autoit v3")
	MouseMove(93, 387) ; мышь переместится на картинку скачать AUTO IT....
	ControlClick("AutoIt v3 GUI","","Internet Explorer_Server1","main",93, 387)
EndFunc
В AUTOIT v3 Win....Info во вкладке CoordMODE поставил галку на CLIENT, получил координаты 93, 387
для позиционирования мышки выставил Opt("MouseCoordMode", 2) мышка ставится куда надо, как такое же повторить с ControlClick ?

Отправлено: 23:49, 04-05-2010

 

Аватара для FlatX007

Ветеран


Сообщения: 553
Благодарности: 87

Профиль | Отправить PM | Цитировать


А зачем кликать то ? мож перейти по ссылке и всё ?

http://www.autoitscript.com/autoit3/index.shtml
Это сообщение посчитали полезным следующие участники:

Отправлено: 08:05, 05-05-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для madmasles

Ветеран


Сообщения: 812
Благодарности: 353

Профиль | Отправить PM | Цитировать


HORRIBLE,
Попробуйте закомментировать строки
Код: Выделить весь код
 ...
Example()
...
Func Example()
...
EndFunc   ;==>Example
...
В начале скрипта добавить
Код: Выделить весь код
#include <IE.au3>
А функцию написать так
Код: Выделить весь код
Func click()
	MsgBox(0, "", "должны нажать на ссылку Autoit v3")
	_IELinkClickByText($oIE, "Autoit v3")
EndFunc   ;==>click
Это сообщение посчитали полезным следующие участники:

Отправлено: 09:04, 05-05-2010 | #3


Пользователь


Сообщения: 143
Благодарности: 24

Профиль | Отправить PM | Цитировать


madmasles, FlatX007, так и знал, что так ответите). Я знаю, что так можно кликнуть/перейти по ссылке, но мне нужно использовать именно CONTROLCLICK с координатами.


Может понятней будет, если перейдя по http://www.autoitscript.com будет загружен сайт написанный на флеше......ссылок нет, есть только кнопки.....тут уже _IELinkClickByText($oIE, "Autoit v3") не спасет, мышкой клацнуть можно, но комп занят тогда, можно CONTROLCLICK использовать только мне не понятно какие координаты вписывать.

Отправлено: 11:42, 05-05-2010 | #4


Аватара для kaster

Старожил


Сообщения: 367
Благодарности: 91

Профиль | Отправить PM | Цитировать


HORRIBLE, у ControlClick координаты - необязательный параметр, который лишь указывает в какую именно точку контрола кликать. Если у тебя вся страница, или нужно кликать по координатам огромного контрола который на самом деле содержит другие элементы типа кнопки, то процитирую тут сообщение спеца в этом деле El Panda с дружественного форума
Цитата:
-Декомпилируешь флешку и узнаешь название переменной в которой храниться нужный текст.
-Открываешь IE на странице с флешкой
Код: Выделить весь код
$oFlash = _IEGetObjByName($oIE, "flashobjname") ; где $oIE - экземпляр объекта IE, "flashobjname" - имя флеш элемента на странице
$var = $oFlash.GetVariable("itext.text") ; itext - имя переменной в которой храниться текст

-------
Русское сообщество пользователей AutoIt
autoit@conference.jabber.ru - Конференция на jabber.ru


Отправлено: 12:25, 05-05-2010 | #5


Аватара для madmasles

Ветеран


Сообщения: 812
Благодарности: 353

Профиль | Отправить PM | Цитировать


HORRIBLE,
У меня так получилось:
Код: Выделить весь код
Func click()
    BlockInput(1)
    $aClientPos = WinGetPos("[TITLE:Embedded Web control Test;CLASS:AutoIt v3 GUI]")
    $aClientSize = WinGetClientSize("[TITLE:Embedded Web control Test;CLASS:AutoIt v3 GUI]")
    MouseMove($aClientPos[0], $aClientPos[1])
    $cord = PixelSearch($aClientPos[0], $aClientPos[1], $aClientSize[0], $aClientSize[1], 0x6000B3)
    MouseMove($cord[0], $cord[1])
    MsgBox(0, "", "Здесь сейчас кликнем", 3)
    MouseClick("left", $cord[0], $cord[1], 1, 1)
    BlockInput(0)
EndFunc   ;==>click

Отправлено: 12:43, 05-05-2010 | #6


Аватара для FlatX007

Ветеран


Сообщения: 553
Благодарности: 87

Профиль | Отправить PM | Цитировать


madmasles - а у меня промахивается мимо окна и ничего не нажимает
Цитата HORRIBLE:
...мышкой клацнуть можно, но комп занят тогда... »

Отправлено: 13:03, 05-05-2010 | #7


Пользователь


Сообщения: 143
Благодарности: 24

Профиль | Отправить PM | Цитировать


Я изменил код который вверуху приведен. (удалил кнопки не нужные) Показал куда мышка перемещается...туда должен ControlClick кликнуть. см. вверху.


madmasles, с мышкой у меня тоже все на ура прошло. Как и писал FlatX007, мимо нажимает. Нажимает куда надо попробовал. Но вопрос, то нажать с помощью ControlClick!! не занимаясь поиском нужного цвета, просто нажать по нужным координатам.
kaster, заинтересовало, но все равно вопрос остался ).

Последний раз редактировалось HORRIBLE, 05-05-2010 в 15:09. Причина: Поправил сообщение.


Отправлено: 14:09, 05-05-2010 | #8


Аватара для madmasles

Ветеран


Сообщения: 812
Благодарности: 353

Профиль | Отправить PM | Цитировать


FlatX007,
HORRIBLE,
Уточните у себя цвет ссылки при помощи Au3Info. У меня на разных мониторах разное значение цвета, когда меняю, то у меня работает.

Отправлено: 14:25, 05-05-2010 | #9


Пользователь


Сообщения: 143
Благодарности: 24

Профиль | Отправить PM | Цитировать


Черт, все нашел....в Au3Info, оказывается координаты указаны для ControlClick.

Отправлено: 23:27, 05-05-2010 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Какие координаты нужно указать для ControlClcik в созданном GUI

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] какие драйвера нужно установить? Saaxov Поиск драйверов, прошивок и руководств 4 23-11-2009 22:41
FreeBSD - FreeBSD 7.2 помогите навтроить сеть (нужно для двух ветевух указать разные шлюзы) kot318 Общий по FreeBSD 5 30-09-2009 13:39
Драйвер - Какие драйвера нужно качать под установку XP что подсовываются системе F6 Rock Microsoft Windows 2000/XP 5 15-04-2008 02:18
Какие порты нужно оставить открытыми utp_ss Сетевые технологии 1 02-03-2007 14:30
какие порты нужно открывать для DNS pingUIN Хочу все знать 3 20-02-2007 16:15




 
Переход