zbruy
07-09-2009, 18:39
Собственно, в AutoIt я полный нуб, но в него уже влюбился. А нужно мне организовать посыл заданной комбинации кнопок, для перемещения по веб странице в фоне(свернуто совсем или зафризена на декстопе). Мыслей много как, но вот кодю пока гадко, поатому не осилю сам. Все на что хватило ума:
MouseClick("left",258,167,1);выделяю окошко для таба, а то по умолчанию табать начинает с меню IE
Sleep(1500);эт чтоб страница подгрузиться немного успела
Send("{TAB}");по хорошему давать задержку после каждого нажати, но так тож канает и немного времени экономит
Send("{TAB}")
Sleep(500)
Send("{TAB}")
Send("{TAB}")
Sleep(500)
Send("{TAB}")
Send("{TAB}")
Sleep(500)
Send("{TAB}")
Send("{TAB}")
Sleep(500)
Send("{TAB}")
Send("{TAB}")
Sleep(1500)
Send("{ENTER}")
Sleep(4000)
и по-новой=)
Если есть возможность прямого обращения к кнопке на сайте, то через него можно(каждая кнопка это ссылка на новую страницу, и возможно просто забивать его как адрес), аля определяем адрес кнопки копируем его в строку адреса переходим. Или даже тупое повторение моего кода, только для зафризенного окна, пробовал так:
WinWaitActive(такое-то окно, '', 3)
$hWnd = WinGetHandle(такое-то окно)
WinSetState($hWnd, '', @SW_DISABLE)
ControlSend($hWnd, "","", "{TAB}")
ControlSend($hWnd, "","", "{TAB}")
Sleep(15500)
ControlSend($hWnd, "","", "{TAB}")
ControlSend($hWnd, "","", "{TAB}")
Sleep(500)
ControlSend($hWnd, "","", "{TAB}")
ControlSend($hWnd, "","", "{TAB}")
Sleep(500)
ControlSend($hWnd, "","", "{TAB}")
ControlSend($hWnd, "","", "{TAB}")
Sleep(500)
ControlSend($hWnd, "","", "{TAB}")
ControlSend($hWnd, "","", "{TAB}")
Sleep(500)
ControlSend($hWnd, "","", "ENTER")
WinSetState($hWnd, '', @SW_ENABLE)
Но беда в том, что под фризом, ни только не получается определить зону применения таба(нажатия до выделения нужного элемента увеличиваются в 2 раза), но и страница не может обновиться, а снимать фриз на обновление и ставить вновь как-то глупо. Ведь суть применения задачи, свободная работа на компе с запущенным скриптом. И что-бы одно не мешало другому.
Подошло бы и кликанье в область окна с кнопкой(ток чтоб мышь при этом не занимало) вообщем вот так=)
Буду рад любой помощи, особенно с подробными комментариями.
ЗЫ только к штудированию IE.au3 не засылайте, а то я его смотрел, ток нифига там не понял...
MouseClick("left",258,167,1);выделяю окошко для таба, а то по умолчанию табать начинает с меню IE
Sleep(1500);эт чтоб страница подгрузиться немного успела
Send("{TAB}");по хорошему давать задержку после каждого нажати, но так тож канает и немного времени экономит
Send("{TAB}")
Sleep(500)
Send("{TAB}")
Send("{TAB}")
Sleep(500)
Send("{TAB}")
Send("{TAB}")
Sleep(500)
Send("{TAB}")
Send("{TAB}")
Sleep(500)
Send("{TAB}")
Send("{TAB}")
Sleep(1500)
Send("{ENTER}")
Sleep(4000)
и по-новой=)
Если есть возможность прямого обращения к кнопке на сайте, то через него можно(каждая кнопка это ссылка на новую страницу, и возможно просто забивать его как адрес), аля определяем адрес кнопки копируем его в строку адреса переходим. Или даже тупое повторение моего кода, только для зафризенного окна, пробовал так:
WinWaitActive(такое-то окно, '', 3)
$hWnd = WinGetHandle(такое-то окно)
WinSetState($hWnd, '', @SW_DISABLE)
ControlSend($hWnd, "","", "{TAB}")
ControlSend($hWnd, "","", "{TAB}")
Sleep(15500)
ControlSend($hWnd, "","", "{TAB}")
ControlSend($hWnd, "","", "{TAB}")
Sleep(500)
ControlSend($hWnd, "","", "{TAB}")
ControlSend($hWnd, "","", "{TAB}")
Sleep(500)
ControlSend($hWnd, "","", "{TAB}")
ControlSend($hWnd, "","", "{TAB}")
Sleep(500)
ControlSend($hWnd, "","", "{TAB}")
ControlSend($hWnd, "","", "{TAB}")
Sleep(500)
ControlSend($hWnd, "","", "ENTER")
WinSetState($hWnd, '', @SW_ENABLE)
Но беда в том, что под фризом, ни только не получается определить зону применения таба(нажатия до выделения нужного элемента увеличиваются в 2 раза), но и страница не может обновиться, а снимать фриз на обновление и ставить вновь как-то глупо. Ведь суть применения задачи, свободная работа на компе с запущенным скриптом. И что-бы одно не мешало другому.
Подошло бы и кликанье в область окна с кнопкой(ток чтоб мышь при этом не занимало) вообщем вот так=)
Буду рад любой помощи, особенно с подробными комментариями.
ЗЫ только к штудированию IE.au3 не засылайте, а то я его смотрел, ток нифига там не понял...