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

[TC] jaws + com

здравствуйте, все.

может кто видел где в сети инфу о ком объектах для jaws.
на тифлокомпе есть статья о б этом, но там статья о написании скрибтов к ком,
а нужно о написании ком для jaws.

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

С уважением, Mus:
mavx@y*****.ru

Ответить   Tue, 2 Jan 2007 19:09:56 +0300 (#626018)

 

Ответы:

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

Если речь идет о том, как использовать JAWS в качестве OLE-сервера, то это невозможно,
так как JAWS - не предназначен для работы в
качестве OLE-сервера (да и не нужно ему это в принципе).

Есть FSDN, но он касается только скриптов.
Кое-что о том, что вас интересует, можно прочесть тут (в частности, там есть
ActiveX вариант библиотеки JFWAPI):
http://jaws.tiflocomp.ru/docs/jfwapi.php
http://jaws.tiflocomp.ru/docs/jfwapi2.php

А что вы хотите получить от JAWS сверх того, что есть в скриптах и в jfwapi?

Успехов. Анатолий.

Ответить   "i_chay" Tue, 2 Jan 2007 20:59:00 +0400 (#626024)

 

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

Вы писали вторник 2 января 2007 г. 19:59

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

Ответить   Tue, 2 Jan 2007 21:15:54 +0300 (#626052)

 

Привет, Михаил!

Вы писали 2 января 2007 г., 20:15:54:

эту

TDBGrit,

По моему MSAA здесь не поможет, это не стандартный компонент, и он скорее всего
не поддерживает MSAA.
MSAA это не панацея и не волшебная палочка,а если так сказать удобный ключик
для откручивания гаек. Без ключика также можно открутить гайку, но с ключём удобнее,
а если собственно той самой гайки нет.
То не поможет никакой ключ.
Можно вручную , если есть исходники компонента внедрить MSAA, но это не тривиальная
задача.
И это может сработать только в твоём компоненте, а не в чужих.
MSAA имплементирована в стандартные элементы управления (common controls), но
с ними итак JAWS нормально работает.
А не стандартные, на то и не стандартные, чтобы мы имели головную боль.

Ответить   Wed, 3 Jan 2007 08:33:20 +0200 (#626088)

 

Здравствуйте, Олег Кутищев.

Вы писали среда 3 января 2007 г. 9:33

А можно ли это узнать?

удобнее,

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

но

Не знаю правда, не знаю нет, но мне говорили, что дельфи в стандартных компонентах
использует стандартные же классы windows, присваивая им только другие имена.
Например классу sysListView32 присвоено имя TListView. (пишу по памяти).

И заодно ещё один вопрос - можно ли как-то сделать видимыми для джоза флажки
в компонентах TCheckListBox и ему подобных. Пытался обнаружить их всеми способами,
которые пришли в голову, но безуспешно.

Ответить   Wed, 3 Jan 2007 14:30:41 +0300 (#626245)

 

Здравствуйте!
Подскажите пожалуйста есть ли возможность автоматически разбить тексть по главам,
чтобы каждая глава была отдельным файлом.
С уважением Василий Морарь.
morar-vas***@m*****.ru

Ответить   Thu, 4 Jan 2007 09:59:26 +0300 (#626326)

 

Привет, Михаил!

Вы писали 3 января 2007 г., 13:30:41:

Нужно, чтобы приложение было OLE Automation server, и тогда можно через объект
прочесть нужные свойства, но, таким занимаются серьёзные компании, например,
Microsoft, Word, Excel, Internet Explorer и т.д.
И в этих приложениях таблицы нормально читаются в JAWS.
А всякая мелочь, этим не занимается, и мы пролетаем как фанера над Парижем.

Ответить   Thu, 4 Jan 2007 18:56:59 +0200 (#626472)

 

Здравствуйте, Михаил.
Если вас интересует использование MSAA вообще (а не в скриптах JAWS), то
все необходимые ссылки есть в соответствующем разделе на
http://jaws.tiflocomp.ru/docs/index.php#msaa

также там выложен архив со всем необходимым, более удобный для тех, кто не желает
получать наслаждение от "медленно и печально"
загружающихся web-страниц
M$.

Успехов. Анатолий.

Ответить   "i_chay" Mon, 8 Jan 2007 10:30:13 +0400 (#627438)

 

добрый вечер.
вышла новая версия программы для записи дисков Small CD-Writer 1.4.
те то пользуется этой программой могут скачать ее по ссылке:
http://www.avtlab.ru/scdwriter.zip
размер 397 килобайт
в Small CD-Writer 1.4, как пишет автор, исправлены некоторые недочеты
прежней версии 1.33.
С уважением к вам Васильев Андрей.
Город Ухта.

Ответить   Fri, 26 Jan 2007 20:47:17 +0300 (#633309)

 

здравствуйте, все и анатолий.

Вы писали:
А что вы хотите получить от JAWS сверх того, что есть в скриптах и в jfwapi?

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

задача.
создать ком объект с которым jaws мог бы установить связь и передавать ему
некие значения (bool, int, str) и получать обратно результат обработки этих
значений.
скрибтовый язык jaws имеет простенький интерфейс для работы с ком. по этому
такая задача впринципе выполнима. меня же интересует каким должен быть ком
объект с которым должен работать jaws. т.е. какими свойствами он должен
обладать?
hide? agregatet? ole server? dual? transaction type? sinchronization type? и
так далее.
вот какую инфу мне хотелось бы найти. ну не эксперементировать же? согласен
даже на буржуйском это почитать.

С уважением, Mus:
mavx@y*****.ru

Ответить   Wed, 3 Jan 2007 12:25:18 +0300 (#626109)

 

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

Вы правы в том, что вместо плагинов можно использовать ActiveX. JAWS использует
так называемое "позднее" связывание , то есть
интерфейс IDispatch должен быть.
На мой взгляд, наименее сложный вариант и наиболее быстрый -- это использовать
технологию Windows Scriptlet (по-иному: Windows
Script Component). В этом случае вам не придется
задумываться о параметрах ActiveX.
Ограничения - вы будете программировать на JScript или VBScript (то есть не будете
иметь прямого доступа к функциям WinAPI).
Аналогичный механизм предоставляет python (здесь сам скриптовый движок более
функционален, чем, например, JScript):
http://jaws.tiflocomp.ru/docs/jfwpyth.php

В следующем сообщении я приведу малополезный пример ActiveX, созданный на JScript,
и пример обращения к нему из JAWS.
Успехов. Анатолий.

на мой взгляд зря.

и

Александр Мелентьев, Антон Туляков, Анатолий
Попко.

Ответить   "i_chay" Wed, 3 Jan 2007 16:47:39 +0400 (#626165)

 

Нижеприводимый текст, заключенный между звездочками, нужно скопировать в обычный
текстовый файл и сохранить под именем
JFWMath.wsc.
* * *
<?xml version="1.0"?>
<component>

<registration
description="JFWMath"
progid="JFWMath.WSC"
version="1.00"
classid="{fc99ad49-5b07-4d72-a4b1-cd6acef1ca37}"

</registration>

<public>
<method name="Calculate">
<PARAMETER name="s"/>
</method>
</public>

<implements type="Behavior" id="Behavior"/>

<script language="JScript">
<![CDATA[

var description = new JFWMath;

function JFWMath()
{

this.Calculate = Calculate;
}

function Calculate(s)
{
var result = eval (s);
return result;
}

</script>
</component>

* * *
Теперь в проводнике можно поместить курсор на этот файл, вызвать контекстное
меню и выбрать пункт "Подключить".

; пример скрипта JAWS
Script test ()
var
object o,
string result

let o = CreateObject ("JFWMath.WSC")
let result = o.Calculate("Math.PI")
saystring ("Число пи = ")
SayString (result)
EndScript

Ответить   "i_chay" Wed, 3 Jan 2007 16:52:07 +0400 (#626167)

 

Привет, mus!

Вы писали 3 января 2007 г., 11:25:18:

Есть activeX server позволяющие работать с dll.

Задачи можно решать очень сложные.
Но, для этого надо использовать COM/activeX. Но, эти технологии не простые, в
интернете есть много книг по этим технологиям.
Поломав голову некоторое время, с ними можно разобраться.
И спокойно в Дельфи создавать ком серверы и работать с ними из JAWS.
Когда мне это очень понадобилось, разобрался и написал нужные ком серверы на
Дельфи.
Хоть это сложно, но вполне реально.

Ответить   Wed, 3 Jan 2007 15:45:19 +0200 (#626178)

 

здравствуйте, все и олег.

Вы писали:
Задачи можно решать очень сложные.
Но, для этого надо использовать COM/activeX.

вот - вот и я про это.

Но, эти технологии не простые, в
интернете есть много книг по этим технологиям.

зачем в интернете, они и уменя есть, целый талмуд.

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

както доводилось разок.
и работать с ними из JAWS.

хмм, хмм, а вот тут хотелось бы по подробнее.

Когда мне это очень понадобилось, разобрался и написал нужные ком серверы на
Дельфи.

если не жалко дайте исходничек, обязуюсь в третие руки не передавать. очень
уж хочится увидить ком объект с которым нормально работает jaws.

С уважением, Mus:
mavx@y*****.ru

Ответить   Wed, 3 Jan 2007 18:10:26 +0300 (#626203)

 

Привет, mus!

Вы писали 3 января 2007 г., 17:10:26:

А в чем проблема с работающим OLE Automation server, Internet explorer, Word,
Excel, Access, вот и Анатолий давал, и на jaws.tiflocomp.ru
Также можно найти примеры.
А в Дельфи, с настройками по умолчанию, создаётся, правда мастер для этого не
очень Джозабельный, но, если приспособиться, то можно разобраться.
Сейчас уже точно не помню, ибо где то год назад создавал ОЛЕ сервер.

Ответить   Thu, 4 Jan 2007 18:45:26 +0200 (#626467)

 

здравствуйте, олег.

вы писали:
А в чем проблема с работающим OLE Automation server, Internet explorer,
Word,
Excel, Access,

гыгыгы, вот бы, взглянуть на исходный текст этих приложений. извините,
бугага!!!

вот и Анатолий давал, и на jaws.tiflocomp.ru
Также можно найти примеры.

повторяю, мне нужно знать какими свойствами должен обладать мой ком объект
для нормальной работы с jaws. мне не интересно как к этому объекту написать
скрипты, поверте я это сумею. мне не надо объяснять как в делфи создать
нормальный, рабочий ком объект, мне уже доводилось их писать и вполне
успешно. меня неустраивает jfwapi.dll, и api выложеные во второй статье
тоже. я хотел бы найти некую спецификацию по созданию оле серверов для jaws.
это не подразумевает что я в этом полный баран, хотя и гуру из меня тоже не
получится.

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

вы писали:
А в Дельфи, с настройками по умолчанию, создаётся, правда мастер для этого
не
очень Джозабельный, но, если приспособиться, то можно разобраться.
Сейчас уже точно не помню, ибо где то год назад создавал ОЛЕ сервер.

хы, хорошё бы поумолчанию, вот дс видать своё умолчание имеет.
а вот с jaws делфя, равно как и дс в мастере действительно недружит, прямо
до ужаса.

С уважением, Mus:
mavx@y*****.ru

Ответить   Thu, 4 Jan 2007 23:31:34 +0300 (#626586)

 

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

Повторяю, он должен поддерживать "позднее" связывание или по некоторой терминологии
дуальный интерфейс (по-моему, в Delphi 6 это
включено по умолчанию). Все остальные свойства COM зависят от того, где вы собираетесь
их использовать, кроме как для работы с
JAWS.

Скорее всего, такой спецификации нет. Ориентируйтесь на создание OLE для VisualBasic
или VBA -- если в этих средах ваш OLE будет
работать без ошибок, то, скорее всего, и в JAWS будет тоже.

Чтобы вывод напрашивался сам собой, вы хоть исходник пришлите, в котором нормально
вызываются методы вашего OLE.
Успехов. Анатолий.

Ответить   "i_chay" Fri, 5 Jan 2007 08:45:03 +0400 (#626671)

 

Привет, mus!

Вы писали 4 января 2007 г., 22:31:34:

Такого в природе нет. Используется стандартная технология OLE Automation.
Здесь надо внести ясность, строго говоря COM server не является OLE Automation
server.
Так, что создавай стандартный ОЛЕ сервер.
А я еще не видел ни одного OLE Automation, который бы не работал с JAWS.

Ответить   Fri, 5 Jan 2007 11:49:27 +0200 (#626762)

 

Здравствуйте, Все!
Что касается борландовского компонента TDbGrid, то, по-моему, там всё
несколько проще, хотя как именно надо решать эту проблему я тоже не знаю.
Компонент представляет собой двумерную таблицу. Компонент имеет встроенный
курсор, с его помощью можно перемещаться из ячейки в ячейку этой таблицы.
Проблема (по крайней мере у меня) в том, что Джоус не озвучивает содержимое
ячейки при перемещении курсора. Мне приходится сначала поместить курсор в
одну из ячеек, а потом нажать комбинацию Ins + uparrow, т.е. заставить
прочитать Джоус текущую строку. При этом Джоус читает не всю строку таблицы,
а только содержимое выделенной ячейки. Кстати, такая же ситуация наблюдается
и в простом TGrid.

Алексей.

Ответить   Wed, 3 Jan 2007 22:28:13 +0300 (#626265)

 

Привет, Alexey!

Вы писали 3 января 2007 г., 21:28:13:

Это характерно для большинства таблиц.
Есть две ситуации.
1. Когда контейнер grid состоит из полей редактирования tEdit, тогда описанная
тобою ситуация.
2. Когда при перемещении по таблице просто выделяется на экране текущая ячейка,
и текст ячейки озвучивается как обычное выделение.

В JAWS проблема с таблицами решена в приложениях Microsoft IE, Access, Word,
Excel, благодаря, тому, что эти приложения являются серверами OLE Automation.
Твак, что чтобы сделать своё приложение с таблицами доступным, надо самостоятельно
реализовывать OLE Automation.

Ответить   Thu, 4 Jan 2007 11:54:55 +0200 (#626361)

 

здравствуйте, все.

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

С уважением, Mus:
mavx@y*****.ru

Ответить   Thu, 4 Jan 2007 14:14:56 +0300 (#626382)

 

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

Простите, я как-то не понял, что такое "поиск Джоус"... Что касается
многократно упоминавшейся jfwapi.dll, то то ли у меня какая-то не та dll, то
ли я не совсем понимаю о чем речь, но по-моему, можно просто при перемещении
курсора в таблице разрабатываемого приложения посылать с помощью функции из
этой самой dll Джоусу текст текущей ячейки. Уж само-то приложение наверняка
"знает", что именно хранится в данной ячейке... :) Правда, это не решает
проблему с невидимыми (или не полностью видимыми) ячейкками...

Кстати я скачал jfwapi не с Тифлокомпа, а с
http://www.blindprogramming.com
Знатоки программирования, объясните мне пожалуйста, почему для подключения
jfwapi.dll к проекту в среде Borland C++ Builder, надо использовать не
обычную jfwapi.lib, а некую jfwapi.omf, нечто специальное для Builder 6?

Алексей.

Ответить   Fri, 5 Jan 2007 03:14:27 +0300 (#626652)

 

Здравствуйте, Алексей.

Средства разработки от Borland используют свой формат объектных файлов (собственно,
как и большинство независимых компиляторов).
Поэтому в зависимости от того, с каким компилятором вы работаете, вы должны использовать
lib-файлы в соответствующем формате (для
Microsoft это coff, для Borland - omf).
Для конвертации coff в omf в состав продуктов от Borland входит утилита
coff2omf.exe
jfwapi.lib - это библиотека в формате coff.
jfwapi.omf - это библиотека в формате omf (перед подключением в проект ее следует
переименовать jfwapi.lib)

На blindprogramming лежит старый вариант jfwapi, который не содержит одной функции
и содержит несколько ошибок. Более полный
вариант входит в дистрибутив JAWS 7.00 для флэш-диска. Вариант без ошибок используется
в игре "Зеркало".
А сам исходный код библиотеки ищите на jaws.tiflocomp.ru/docs/.

Успехов. Анатолий.

Ответить   "i_chay" Fri, 5 Jan 2007 08:45:17 +0400 (#626670)

 

здравствуйте, алексей.

Вы писали:
Простите, я как-то не понял, что такое "поиск Джоус"...

поиском окна jaws, равно как и любых других окон занимается функция:
FindWindow(nil, nil);
нужное подставить.

С уважением, Mus:
mavx@y*****.ru

Ответить   Fri, 5 Jan 2007 09:57:59 +0300 (#626720)

 

Привет, Mus.
Original Message > было бы вообще замечательно найти чтото типа
мсдны для jaws, или api.

Так есть же jfwapi. По моему на тифлокомпе читал частичное описание и там же
в свое время нарыл ссылочку на полное описание, dll и библиотеку для
линковки. Правда это только для vc++ или для макро ассемблера. Если нужно,
после всех праздников уточню конкретно и пришлю на майл.

Эдик. Новокузнецк.
winks***@r*****.ru

Ответить   Fri, 5 Jan 2007 01:10:54 +0700 (#626502)