Работа с окнами (3)

(По материалам Freedom Scientific Developer Network)
Дата публикации:2005
Twitter Facebook Vkontakte

Продолжение описания встроенных функций языка сценариев JAWS для работы с окнами приложений.

Функция GetWindowClass

Описание: Возвращает имя класса окна. Большинство стандартных окон (не SDM окон) имеют имя класса окна и наименование типа окна. Имена классов окон уникальны для определённого окна в определённом приложении.

Возвращаемое значение: String, имя класа окна.

Параметр 1:

Handle, дескриптор интересующего окна. Этот параметр является обязательным.

Эта функция доступна в следующих версиях:

  1. PAC Mate 1.10 и более поздних
  2. JAWS 4.51 и более поздних

Функция GetWindowHierarchyX

Описание: Эта функция возвращает позицию указанного окна в иерархии окон относительно первого окна того же логического уровня, то есть функция подсчитывает количество окон на одном логическом уровне и возвращает номер (позицию) указанного окна.

Возвращаемое значение: Int, позиция окна, относительно первого окна того же логического уровня.

Параметр 1:

Handle, дескриптор интересующего окна. Этот параметр является обязательным.

Эта функция доступна в следующих версиях:

  1. PAC Mate 1.10 и более поздних
  2. JAWS 4.51 и более поздних

Функция GetWindowHierarchyY

Описание: Эта функция возвращает позицию указанного окна в иерархии относительно первого окна-предка, то есть перебираются (подсчитываются) все порождающие окна по восходящей (родитель текущего окна, родитель родителя текущего окна, родитель родителя родителя текущего окна и т.д.).

Возвращаемое значение:Int, позиция окна относительно самого первого существующего окна-предка.

Параметр 1:

Handle, дескриптор исходного окна. Этот параметр является обязательным.

Эта функция доступна в следующих версиях:

  1. PAC Mate 1.10 и более поздних
  2. JAWS 4.51 и более поздних

Функция GetWindowLeft

Описание: Возвращает координату левой стороны указанного окна. Координата определяется по отношению ко всему экрану.

Возвращаемое значение: Int, координата левой стороны окна.

Параметр 1:

handle, дескриптор интересующего окна. Этот параметр является обязательным.

Эта функция доступна в следующих версиях:

  1. PAC Mate 1.10 и более поздних
  2. JAWS 4.51 и более поздних

Функция GetWindowName

Описание: Возвращает заголовок указанного окна, такого, как главное окно приложения, окно диалога или окно документа. Не все окна имеют заголовки.

Возвращаемое значение: String, заголовок окна или пустая строка, если у окна нет заголовка.

Параметр 1:

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

Эта функция доступна в следующих версиях:

  1. PAC Mate 1.10 и более поздних
  2. JAWS 4.51 и более поздних

Функция GetWindowRect

Описание: Возвращает координаты прямоугольной области вокруг окна, дескриптор которого передан в качестве параметра.

Возвращаемое значение: Int, TRUE - если координаты прямоугольной области были успешно определены.

Параметр 1:

Handle, дескриптор окна, координаты прямоугольной области которого необходимо получить. Можно использовать функцию GetFocus, чтобы передать дескриптор окна, содержащего фокус ввода. Этот параметр является обязательным.

Параметр 2:

Int, координата левой стороны прямоугольной области окна. В этом параметре функция возвращает полученное значение. Этот параметр является обязательным.

Параметр 3:

Int, координата правой стороны прямоугольной области окна. В этом параметре функция возвращает полученное значение. Этот параметр является обязательным.

Параметр 4:

Int, координата верхней стороны прямоугольной области окна. В этом параметре функция возвращает полученное значение. Этот параметр является обязательным.

Параметр 5:

Int, координата нижней стороны прямоугольной области окна. В этом параметре функция возвращает полученное значение. Этот параметр является обязательным.

Эта функция доступна в следующих версиях:

  1. PAC Mate 1.10 и более поздних
  2. JAWS 4.51 и более поздних

Функция GetWindowRight

Описание: Возвращает координату правой стороны указанного окна. Координата определяется относительно экрана.

Возвращаемое значение: Int, координата правой стороны окна.

Параметр 1:

handle, дескриптор интересующего окна. Этот параметр является обязательным.

Эта функция доступна в следующих версиях:

  1. PAC Mate 1.10 и более поздних
  2. JAWS 4.51 и более поздних

Функция GetWindowStyleBits

Описание: Эта функция возвращает битовый флаг стиля окна. См. константы с префиксом WS в файлах winUser.h. (имеются в виду файлы, входящие в среду разработки Visual C++ или аналогичные, в которых описываются константы, используемые при создании программ для операционных систем Microsoft Windows).

Возвращаемое значение: Int, флаг стиля окна, представляющий собой комбинацию битов.

Параметр 1:

Handle, дескриптор окна, стиль которого надо выяснить. Этот параметр является обязательным.

Эта функция доступна в следующих версиях:

  1. PAC Mate 1.10 и более поздних
  2. JAWS 4.51 и более поздних

Функция GetWindowSubtypeCode

Описание: Возвращает Код подтипа окна для указанного окна. Эта функция очень похожа на функцию GetWindowTypeCode, но пытается предоставить более конкретную информацию. Если такая информация недоступна, то возвращается то же значение, что и при вызове GetWindowTypeCode. Например, вызов GetWindowTypeCode с дескриптором панели задач, вернёт WT_TABCONTROL, а вызов GetWindowSubtypeCode вернёт WT_TASKBAR (более конкретный тип элемента управления). (Более подробно см. документацию к функции GetWindowTypeCode).

Возвращаемое значение: Int, число, означающее подтип указанного окна.

Параметр 1:

Handle, дескриптор интересующего окна. Этот параметр является обязательным.

Эта функция доступна в следующих версиях:

  1. PAC Mate 1.10 и более поздних
  2. JAWS 4.51 и более поздних

Функция GetWindowText

Описание: Возвращает текст, содержащийся в окне.

Возвращаемое значение: String, полученный текст.

Параметр 1:

Handle, дескриптор окна, содержащего текст, который надо получить. В качестве параметра может быть использовано значение, возвращаемое функцией GetFocus. Этот параметр является обязательным.

Параметр 2:

Int, TRUE - если надо получить только выделенный текст, FALSE - если надо получить весь текст из окна. Этот параметр является обязательным.

Эта функция доступна в следующих версиях:

  1. PAC Mate 1.10 и более поздних
  2. JAWS 4.51 и более поздних

Функция GetWindowTextEx

Описание: Возвращает текст, содержащийся в окне. Эта функция похожа на функцию GetWindowText, но позволяет ещё извлекать текст из всех дочерних окон.

Возвращаемое значение: String, полученный текст.

Параметр 1:

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

Параметр 2:

Int, TRUE - если надо получить только выделенный текст, FALSE - если надо получить весь текст. Этот параметр является обязательным.

Параметр 3:

Int, TRUE - если надо получить текст в том числе и из дочерних окон, FALSE - если надо получить текст только из указанного окна. Этот параметр является обязательным.

Эта функция доступна в следующих версиях:

  1. PAC Mate 1.10 и более поздних
  2. JAWS 4.51 и более поздних

Функция GetWindowTop

Описание: Возвращает координату верхней стороны указанного окна. Координата определяется относительно экрана.

Возвращаемое значение: Int, координата верхней стороны окна.

Параметр 1:

handle, дескриптор интересующего окна. Этот параметр является обязательным.

Эта функция доступна в следующих версиях:

  1. PAC Mate 1.10 и более поздних
  2. JAWS 4.51 и более поздних

Функция GetWindowType

Описание: Возвращает наименование типа окна. Большинство стандартных окон (не окон SDM) имеют наименование типа окна и имя класса окна. Примерами типов окна могут быть: статический текст, поле редактирования, опции выбора (checkbox), радиокнопка, и т.д. Одни и те же имена типов обычно используются в различных приложениях Windows.

Возвращаемое значение: String, тип окна.

Параметр 1:

Handle, дескриптор интересующего окна. Этот параметр является обязательным.

Эта функция доступна в следующих версиях:

  1. PAC Mate 1.10 и более поздних
  2. JAWS 4.51 и более поздних

Функция GetWindowTypeCode

Описание: Возвращает число, соответствующее типу указанного окна. Числовые значения типов окон являются одинаковыми для английской и неанглийской версий Jaws. Многие числовые значения типов окна имеют сопоставленные им константы, которые определены в файле HJCONST.JSH. Функция GetWindowType возвращает строковые соответствия (аналогичные этим константам), а не числовые значения типа окна.

Возвращаемое значение: Int, числовое значение типа указанного окна.

Параметр 1:

Handle, дескриптор интересующего окна. Этот параметр является обязательным.

Эта функция доступна в следующих версиях:

  1. PAC Mate 1.10 и более поздних
  2. JAWS 4.51 и более поздних

Функция HandleCustomAppWindows

Описание: Вы можете использовать эту функцию при разработке скрипта для приложения вместо того, чтобы полностью переписывать функцию FocusChangedEvent). Окно приложения (AppWindow) - это окно верхнего уровня, и чаще всего вам ничего не надо будет менять в обработке этого окна. Некоторые диалоги Мастеров (wizard dialogs) и кое-что ещё могут оказаться проблемными и потребовать особой логики обработки перехода фокуса на эти окна. Функция FocusChangedEvent содержит в себе вызов функции HandleCustomAppWindows и если получает от этой функции TRUE, то это означает, что обработка окна приложения выполнена, а если получает FALSE, то выполняется стандартная обработка окна приложения.

Возвращаемое значение: Int, функция должна вернуть TRUE, если она выполнила вашу логику обработки, и FALSE, если необходима обычная логика обработки, заложенная в функции FocusChangedEvent для окна приложения (appWindow).

Параметр 1:

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

Эта функция доступна в следующих версиях:

  1. JAWS 4.51 и более поздних (однако анонсирована она была для версии 5.00)

Пример

В примере приведён код функции HandleCustomAppWindows (), которая вместо стандартного чтения заголовка приложения и выделенного текста в нем, подсчитывает количество символов в заголовке окна, когда пользователь переключается на это приложение. В качестве подопытного приложения возьмем Блокнот (notepad.exe). После того как вы поместите скрипт в файл скриптов для Блокнота и успешно скомпилируете скрипт, можете, переключаясь между окнами приложений при помощи комбинации Alt+Tab, слушать, что сообщает JAWS, когда фокус ввода переходит на Блокнот.

int function HandleCustomAppWindows (handle hAppWin)
var
int TitleLen
let TitleLen = StringLength (GetWindowName (hAppWin))
SayString ("Количество символов в заголовке: "+IntToString (TitleLen))
return TRUE
EndFunction

Функция HandleCustomRealWindows

Описание: Вы можете использовать эту функцию при разработке скриптов для приложения вместо того, чтобы полностью переписывать функцию FocusChangedEvent. Это может быть полезно в диалогах Мастеров (wizard dialogs) и других местах, где озвучивание имени диалога или документа является бессмысленным или малоинформативным.

Возвращаемое значение: Int, функция должна возвратить TRUE, если она выполнила вашу логику обработки, и FALSE, если необходимо выполнить логику обработки, заложенную по умолчанию в функции FocusChangedEvent() для реального окна (RealWindow).

Параметр 1:

Handle, в этом параметре функция получает дескриптор окна, которое является реальным окном. Этот параметр является обязательным.

Эта функция доступна в следующих версиях:

  1. JAWS 4.51 и более поздних (однако анонсирована она была для версии 5.00)

Функция HandleCustomWindows

Описание: Вы можете использовать эту функцию при разработке скрипта для приложения вместо того, чтобы заново программировать функцию FocusChangedEvent или функцию SayFocusedWindow. Это

Возвращаемое значение: Int, функция должна вернуть TRUE, если выполнила вашу логику обработки, и FALSE, если необходимо выполнить логику обработки, заложенную по умолчанию в функциях FocusChangedEvent и SayFocusedWindow или в скрипт SayWindowPromptAndText.

Параметр 1:

Handle, через этот параметр функция получает дескриптор текущего окна. Обратите внимание, что в FocusChangedEvent мы передаём FocusWindow. В скрипте SayWindowPromptAndText мы используем GetCurrentWindow, которая работает с активным курсором. Этот параметр является обязательным.

Эта функция доступна в следующих версиях:

  1. JAWS 4.51 и более поздних (однако она была анонсирована для версии 5.00)

Функция HasFocusRect

Описание: Определяет, имеет ли указанное окно прямоугольный фокус. Чтобы эта функция работала как положено, в файл конфигурации для конкретного приложения необходимо в секцию [OSM] добавить строку:

 TrackFocusRect=1

Возвращаемое значение: Int, 1 или 0.

Параметр 1:

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

Эта функция доступна в следующих версиях:

  1. PAC Mate 1.10 и более поздних
  2. JAWS 4.51 и более поздних

Функция HasTitleBar

Описание: Определяет, есть ли у окна заголовок. Если окно имеет заголовок, то функция возвращает True. Если у окна нет заголовка, то возвращается значение False. Заголовки обычно бывают у диалоговых окон и главных окон приложений.

Возвращаемое значение: Int, TRUE (1) или FALSE (0).

Параметр 1:

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

Эта функция доступна в следующих версиях:

  1. PAC Mate 1.10 и более поздних
  2. JAWS 4.51 и более поздних

Функция HelpBalloonEvent

Описание: В Windows XP есть два вида подсказки, всплывающей в виде пузырьков. Первый вид - это подсказка панели инструментов (tooltip), появление которой вызывает событийную функцию ToolTipEvent. Второй тип подсказок - это Help Balloon, появление которого вызывает срабатывание данной событийной функции.

Возвращаемое значение: Void

Параметр 1:

Handle, дескриптор окна, содержащего Help Balloon. Этот параметр является обязательным.

Параметр 2:

String, текст, содержащийся в help balloon. Этот параметр является обязательным.

Эта функция доступна в следующих версиях:

  1. PAC Mate 1.10 и более поздних
  2. JAWS 4.51 и более поздних


Распространение материалов сайта означает, что распространитель принял условия лицензионного соглашения.
Идея и реализация: © Владимир Довыденков и Анатолий Камынин,  2004-2019