Отправляет email-рассылки с помощью сервиса Sendsay

Screen reader JAWS for Windows Russian

[JFWRus] О джозабильности The Bat

Доброго времени суток! Слышал я, что новые версии бата очень плохо
джозятся. На сколько это так и можно ли заставить джоз корректно
отрабатывать бат без написания скриптов?

Ответить   yuniks Sat, 3 Jun 2006 02:19:19 +0400 (#556906)

 

Ответы:

Здравствуйте, yuniks.

Вы писали суббота 3 июня 2006 г., 2:19:19:

Это не так ни на сколько! Даже могу сказать, что 3-и версии несколько
лучше работают с джозом, чем, например, 1.62. Скриптами не пользуюсь.
Единственно только, необходимо немного поднастроить сам bat, чтобы
комфортно читать сообщения.

Ответить   Михаил Духонин Mon, 5 Jun 2006 21:37:48 +0400 (#557763)

 

Здравствуйте, yuniks.

Вы писали 3 июня 2006 г., 1:19:19:

версия которую я пользую 3.60
джозиться вполне хорошо

пробовал версии 3.71 и 3.80

там в меню настроек бата джавс не читает флажки вообще как будто их нет

Ответить   Tue, 6 Jun 2006 14:19:39 +0300 (#558024)

 

Привет!

Вы писали 3 июня 2006 г., 1:19:19:

О том, что надо отключить mail ticker уже написали.
И я еще использую следующий скрипт, для того, чтобы при создании нового письма,
по клавише [F8] вызывать адресную книгу и выбирать адрес.
В строке ввода адреса последняя графическая кнопка, служит для выбора в поле
ввода адреса из адресной книги.
Её надо назвать с помощью Маркировщика графики, я называю: address, а потом,
чтобы каждый раз её не щёлкать Джос курсором, то использую скрипт, который щелкает
на этой кнопке, его надо повесить на [F8].
include "hjconst.jsh"
include "common.jsm"

Script ClickAddress ()

if !MenusActive ()
&& !DialogActive ()
&& GetWindowClass (GetFocus ()) == "TFieldInEdit"
&& GetWindowClass (GetParent (GetFocus ())) == "TAddressGrid"
then

;SaveCursor ()
InvisibleCursor ()
RouteInvisibleToPc ()
if FindGraphic (GetFocus (), "address", S_bottom , S_RESTRICTED))
then
RoutePCToInvisible ()
Endif
else
TypeCurrentScriptKey ()
endif

EndScript

этот скрипт надо вставить в файл скриптов для thebat.

Ответить   Sat, 10 Jun 2006 18:14:29 +0300 (#559559)

 

Здравствуйте,

щелкает

Олег, для большей универсальности, если конечно данная кнопка имеет индентификатор,
имеет смысл сделать немного иначе. С помощью функции EnumtrateChildWindows найти
дочернее окно с индентификатором, который можно получить для Вашей кнопки, а
затем эмулировать назатие на неё. В таком случае назвать можно любой меткой и
не потребуется менять скрипт при другом имени кнопки. Более того, её можно будет
вообще не помечать. Для передачи фокуса на саму кнопку имеет смысл использовать
SetFocus поскольку при таком подходе Вы будете иметь созможность получить хендлер
окна. Ещё раз подчеркну, что всё это соответствует действительности только в
том случае, если кнопка имеет индентификатор. Проверить это у меня нет возможности
в силу отсутствия на машине бата.

Если же индентификатора нет, что бывает крайне редко, то можно найти какое-нибудь
окно по другим признакам, а потом добежать от него при помощи функций NextWindow
или PriorWindow до необходимой кнопки. Даже в таком случае, это будет универсальнее
и быстрее, чем поиск графики. В крайнем случае можно посчитать какое по счёту
будет окно от первого дочернего окна и соответствующее количество раз вызвать
NextWindow.

До свидания.

***
Это сообщение No4111
было разослано для 320 участников дискуссионного листа
[JFWRus] Re[2]: О джозабильности The Bat

Ответить   Sat, 10 Jun 2006 21:29:42 -0700 (#559595)

 

Привет, Serge!

Вы писали 11 июня 2006 г., 7:29:42:

Ничего у неё нет. Ни дескриптора, ни идентификатора.

Ответить   Sun, 11 Jun 2006 09:02:31 +0300 (#559730)

 

Здравствуйте,

Олег, тут возможно два варианта:
1. Дескриптор у неё таки есть, поскольку все элементы управления в окошках являются
окнами, имеющими дескриптор, назначаемый операционной системой, а не программистом.
В таком случае до этого элемента управления можно добежать при помощи NextWindow,
от родительского окна, что будет гораздо быстрее и универсальнее.
2. у данной графики нет дескриптора, но в таком случае она не является кнопкой
в принципе, более того не является элементом управления, поскольку не является
окном, а является всего-лишь графической картинкой, функциональность которой
сделана при помощи кол бэк функции диалогав котором данная графическая картинка
расположена. В таком случае похоже, что Ваш способ - единственно возможный, но
это означает, что Вы ввели меня в заблуждение, назвав данную картинку кнопкой,
которой она на самом деле не является.

До свидания.

***
Это сообщение No4113
было разослано для 320 участников дискуссионного листа
[JFWRus] Re[4]: О джозабильности The Bat

Ответить   Sun, 11 Jun 2006 11:55:10 -0700 (#559754)

 

Привет, Сергей!

Вы писали 11 июня 2006 г., 21:55:10:

Именно, это просто, как я писал "graphicXXX", и для неё используется функция||
FindGraphic.
Иначе использовал бы другие функции.
Возможно не правильно выразился, это graphic (графический элемент).

А Анатолий под Мышью имел в виду, Thebat, а не синтезатор "Говорящая мышь".
Вот видишь, Сергей к чему приводят Огненные лисички, Дяди Коли и прочие Огненные
стенки, эти вольные
(не общепринятые) переводы названий программ нас путают.
Вот почему нужно придерживаться общепринятой терминологии и не выдумывать собственной.

Хотя этим сам погрешил, неточновыразившись, назвав графический элемент, графической
кнопкой.
А в Thebat действительно идентификаторы (control ID) равны дескрипторам (handle).
Все неточности разрешились.
Эта тема закрывается.
Вопрос был о Thebat, а ответ о скрипте для Thebat. А мы отошли совсем в другую
сторону, в сторону лингвистики.
Если будет собственно о Thebat, или о скриптах для Thebat,тогда пожалуйста.

Ответить   Sun, 11 Jun 2006 19:00:34 +0300 (#559869)

 

Здравствуйте,

Путаница действительно произошла. Но основана она на том, что я просто не имел
возможности потестировать сам бэт. Я нигде не упомянул именно говорящую мышь,
просто я честно говоря не понял и не поверил сразу в утверждение Анатолия по
поводу бата. Прошу у него прощения за своё недоверие, но я даже не мог предположить,
что кто-то переназначит индентификаторы окна на их дескрипторы, поскоьку это
дополнительная возня и я усомнился, что кто-то будет этим заниматься, поэтому
возникло с моей стороны неправильное восприятие, точнее говоря непонимание его
утверждения... Ну что же буду теперь знать, спасибо за информацию.

Если моё письмо выглядело как неправильное понимание мыши, то уж извините мне
нечёткие формулировки, но не говорящую мышь я имел в виду...

И параллельно сразу вопрос по этому поводу - а такой прикол они сделали во всех
элементах управления или в каких-либо конкретных? Во всех окнах или в конкретном
окне? Надо поискать и поставить себе бэт для экспериментов, поскольку на такой
подход я нарываюсь впервый раз и это стоит посмотреть поближе и под лупой.

До свидания.

***
Это сообщение No4121
было разослано для 318 участников дискуссионного листа
[JFWRus] О возникшей путанице.

Ответить   Mon, 12 Jun 2006 00:23:01 -0700 (#560090)

 

Здравствуйте участники рассылки.

Итак на юридической улице получился праздник. Вам предлагается набор скриптов
и инструкция для консультанта плюс. Как всегда эта инструкция не для коммерческого
использования, а более подробная информация будет находится по адресу http://62.140.240.99/page/bluefog/JFWRus/
Заходите смотрите, читайте, пишите.

До свидания.

***
Это сообщение No4120
было разослано для 318 участников дискуссионного листа
[JFWRus] Новые инструкции от сволочного Туманяна.

Ответить   Mon, 12 Jun 2006 00:59:06 -0700 (#560089)

 

Здравствуйте, Сергей.
Олег пишет:

Вы пишите:

Это не совсем кнопка (может, в новых версиях что-то и поменялось).
Кроме того, у мыши была (может, и осталась) неприятная особенность: идентификаторы
контролов равны дескрипторам (Handle), а
последние, как известно, величины непостоянные.
С уважением, Анатолий.

***
Это сообщение No4114
было разослано для 320 участников дискуссионного листа
[JFWRus] Re[3]: О джозабильности The Bat

Ответить   "i_chay" Sun, 11 Jun 2006 13:07:07 +0500 (#559762)

 

Здравствуйте,

Я чего-то не понял, какое отношение мышь имеет к дескрипторам или индентификаторам
окон, которыми являются числа, назначаемые окошками при вызове функций CreateWindow
или CreateWindowEx (дескрипторы) или программистом через назначение параметра
hmenu в вышеупомянутых функциях или уже после создания окна или элемента управления
также являющегося окном при помощи функций SetWindowLong или SetWindowLongPtr
(индентификаторы)? Поясните мне пожалуйста свою глубокую мысль, пожалуйста...
Или Вы хотите сказать, что мышь вызывает для каждого попавшегося ей окна SetWindowLong
с параметром дескриптора окна? По-моему это мягко говоря, не соответствует действительности.
В общем уточните пожалуйста своё утверждение, чтобы оно стало понятным.

До свидания.

***
Это сообщение No4116
было разослано для 320 участников дискуссионного листа
[JFWRus] Re[4]: О джозабильности The Bat

Ответить   Sun, 11 Jun 2006 16:20:06 -0700 (#559823)

 

Здравствуйте, Сергей.
Вы пишите:

Уточняю. Постараюсь сделать это так, чтобы остаться в рамках тематики дискуссионного
листа.
Если контрол создается динамически, а не из файла ресурсов, то появляется проблема
генерации уникального ID для этого контрола:
HWND CreateWindow(
...
HMENU hMenu, // handle to menu or child-window identifier
...
);

For a child window, hMenu specifies the child-window identifier, an integer value
used by a dialog box control to notify its
parent about events. The application determines the child-window identifier;
it must be unique for all child windows with the same
parent window.

Скорее всего, разработчики TheBat! используют значение дескриптора окна (handle)
для генерации оригинального ID контрола, а проще
говоря, присваивают одно другому. Скорее всего, это делается упомянутой вами
функцией SetWindowLong (в качестве смещения
указывается
GWL_ID Sets a new identifier of the window.
)
Когда вы рекомендуете в поисках нужного контрола использовать функции языка сценариев
Jaws GetNextWindow/GetPriorWindow, то для
TheBat! это может быть неэффективно, потому что, кроме имени класса (который
тоже не уникален), у вас нет константного признака
для интересующего контрола.
Успехов. Анатолий.

***
Это сообщение No4118
было разослано для 318 участников дискуссионного листа
[JFWRus] Re[5]: О джозабильности The Bat

Ответить   "i_chay" Mon, 12 Jun 2006 12:13:14 +0500 (#560029)

 

Добрый день, i_chay.

И вообще это проблема не разработчиков бата, а борланда, так как у него так всегда
и
везде.

--
С уважением, Сергей.

***
Это сообщение No4119
было разослано для 318 участников дискуссионного листа
[JFWRus] Re[6]: О джозабильности The Bat

Ответить   Mon, 12 Jun 2006 12:26:11 +0400 (#560059)

 

Здравствуйте,

[... уточняющее разъяснение поскипано...]

Спасибо, я уже понял эту мысль. Необычно, хотя я кажется понял зачем они это
делают. Похоже, что обработка событий от само рисуемого списка по сообщению
WM_MEASUREITEM у них перенесена внутрь колл бэк функции списка, а поскольку у
структуры, которая передаётся внутрь данного сообщения нет поля дескриптора окна,
то не остаётся другого пути это сообщение перенаправить от родительского окна
обратно как только произвести данную замену индентификатора. Если бы только данное
решение не создавало таких проблем, было бы вообще отлично.

сценариев

Константный признак есть - местоположение данного окна в цепочке окон, являющимися
дочерними у соответствующего родительского окна. Просто необходимо вызвать определённое
количество раз функцию NextWindow после вызова функции GetFirstChild. Ведь местоположение
в цепочке окон не меняется, у бата, я надеюсь... Конечно теоретически возможна
смена местоположения в цепочке, но уж это я думаю они вряд ли делают, слишком
много проблем возникает при таком подходе, проще не показывать конкретные окна
или элементы управления, чем их удалять из цепочки.

Во всяком случае вызов NextWindow происходит явно быстрее, чем поиск графики,
а главное намного универсальнее, даже при вызове этой функции несколько раз,
поскольку нет побитного сравнения или расчёта хэш-таблицы изображения, уж не
знаю как именно они подошли в челюстях к этому вопросу. Поиск графики с моей
точки зрения можно использовать только в самых крайних случаях, когда не остаётся
других путей решения проблемы, да и то желательно прочитать название графической
метки из файла jgf на случай того, если человек задумает поменять графическую
метку, благо эти файлы являют собой инишки.

До свидания.

***
Это сообщение No4123
было разослано для 318 участников дискуссионного листа
[JFWRus] Re[6]: О джозабильности The Bat

Ответить   Mon, 12 Jun 2006 14:23:32 -0700 (#560256)