[TC] требуется скрипт

Приветствую!
Возникла необходимость с определенной периодичностью совершать клик мышкой по
определенной точке на экране.
Подскажите как в джозе можно реализовать такой скрипт?
Заранее благодарен!
С уважением, Владислав!
За последние 60 дней 479 выпусков (несколько раз в день)
Сайт листа:
http://www.tiflocomp.ru
Открыт:
22-01-2004
Пре-модерация: Нет
Адрес для писем в лист: industry.comp.tiflocomp-list@subscribe.ru
Приветствую!
Возникла необходимость с определенной периодичностью совершать клик мышкой по
определенной точке на экране.
Подскажите как в джозе можно реализовать такой скрипт?
Заранее благодарен!
С уважением, Владислав!
Спасибо за помощь!
А как я могу получить эти самые точки, т.е. x и y?
Доброго времени суток, Влад.
Из сообщения от 16.04.2009 23:10:
установите курсор в необходимое место ,
т. е. приготовьтесь проделать операцию нажатия вручную.
Комбинация Alt+Del выдаст Вам тип текущего курсора
и координаты X, Y текущей позиции курсора.
Либо пользуйтесь другими функциями jaws, устанавливающими курсор на
необходимый элемент,
или возвращающими дескриптор оного.
Но это уже более сложный путь,
хотя и более правильный :).
Я показал Вам только принцип.
С уважением, Руслан Усачев
RUsach***@t*****.by
привет Руслан!
ц
установите курсор в необходимое место ,
Комбинация Alt+Del выдаст Вам тип текущего курсора
и координаты X, Y текущей позиции курсора.
не всё так просто.
включаю JAWS курсор.
становлюсь для примера на ваше письмо
на фразу
"Доброго времени суток, Влад."
на букву Д
и проделываю всё что вы предложили.
данные такие:
JAWS курсор активен 213 на 510
тоесть JAWS нам честно сообщает где мы находимся от верхнего и левого краёв
экрана.
и всё бы хорошо,
но окна далеко не всегда имеют статичное положение.
их могут зрячие двинуть мышкой,
может быть различное разрешение монитора и т.д.
выясняем например классс с именем
или ид окна,
чтобы можно было в нужный момент получить ручку окна.
так же выясняем расстояния от левого и верхнего краёв текущего окна до
установленного . указателя мышки.
теперь достаточно в нужный момент получить ручку и позиционировать JAWS
курсор на выясненные расстояния.
теперь конкретно на примере вашего письма
его окно имеет нулевой Id
значит в дереве окон прийдётся использовать метод поиска окна по классу и
имени.
класс
Internet Explorer_Server
имя
обломись,
имени нет,
но да ладно, обойдёмся.
заранее выясняем что буква "Д"имеет координаты относительно краёв окна такие
10 и 26
(сразу отвечаю что это технология NK,
ну или если не выражаться,
, то просто дополнительные скриптыMagicSquare, что пришлось написать при
работе в проекте NK(скрипты для плагинов Sonar))
и так скрипт:
Script SayPosition ()
var
handle hWindow
let hWindow=FindWindow (GetAppMainWindow (GetCurrentWindow ()), "Internet
Explorer_Server", "")
if MoveToWindow (hWindow ) then
MoveTo (10+GetWindowLeft (hWindow ),26+GetWindowTop (hWindow ))
SayChunk ()
PCCursor ()
EndIf
EndScript
и теперь неважно в каком месте экрана откроется ваше окно, и куда его
двинут, главное чтобы оно было на экране.
мышка всегда станет на одно и тоже место внутри окна.
ну а далее вам думать,
кликать читать или проверять что написано.
копировать это и компилить конечно можно,
но предварительно просмотреть концы строк на предмет невидимых символов,
добавленых оутлуком.
и ещё пару слов о скриптинге:
TypeCurentScriptKey
не всегда спасает,
иногда приходится пользовать альтернативы типа
{нажатие клавиши}
или вызов нужной функции или скрипта.
так что если вам посоветовали а у вас неполучилось,
не спешите ругать советчика,
а попробуйте другие методы.
JAWS програмирование - это програмирование в котором помимо знания языка
скриптов,
приходится иногда просто перебирать варианты.
конечно, чем лучше знаешь язык, тем вариантов меньше.
успехов
Виктор Горелов
Доброго времени суток, Влад.
Из сообщения от 16.04.2009 21:48:
Схематично это может выглядеть следующим образом:
Globals
int ScFuncID ; идентификатор для ScheduleFunction
; скрипт для включения режима "кликания"
Script PeriodicalMouseClickOn ()
PMClick()
EndScript
; собственно ScheduleFunction
Void Function PMClick ()
; параметры - x,y-координаты мыши и тип курсора (1 - jaws)
ClickAtPoint (203,303, 1)
;beep() можно использовать для отладки
Let ScFuncID = ScheduleFunction ("PMClick", 30)
; 30 - интервал времени в десятых долях секунды
EndFunction
; скрипт выключения режима "кликания"
Script PeriodicalMouseClickOff ()
UnScheduleFunction (ScFuncID)
EndScript
Далее добавляйте по вкусу сохранение позиции и типа курсора,
возвращение сохраненных значений,
если надо, и другие "бантики" :).
С уважением, Руслан Усачев
RUsach***@t*****.by