|
Язык сценариев Jaws имеет в своём арсенале более десятка функций, позволяющих организовать взаимодействие с пользователем в виде списков выбора (функции, скрипта или произвольного пункта), сообщений и полей ввода текста. Всё это помогает разработчику скриптов запрашивать у пользователя определённую информацию или предоставлять ему выбор из различных вариантов.
Функция ActivateRunDialogОписание: Вызывает диалог "Запуск программы", в котором можно непосредственно ввести имя файла, документа или ссылки в интернет, и операционная система либо выполнит файл, либо загрузит указанный документ, либо перейдёт по ссылке. Возвращаемое значение: Параметры: отсутствуют Эта функция доступна в следующих версиях:
Функция DlgSelectControlsОписание: Выводит список элементов управления, с которыми можно произвести одно из следующих действий: щелчок правой кнопкой мыши, щелчок левой кнопкой мыши, двойной щелчок левой кнопкой мыши и перейти к элементу. Можно изменить заголовок этого окна, а также количество и состав кнопок, определённых по умолчанию. Возвращаемое значение: Int. Число, соответствующее действию, которое произвёл пользователь (щелчок, двойной щелчок и т.п.). Ниже приведен список констант из файла HjConst.jsh, соответствующих определённым возвращаемым значениям:
Параметр 1:String, Список отображаемых элементов. Элементы списка должны быть разделены вертикальной чертой (|). Этот параметр является обязательным. Параметр 2:Int. Номер выбранного элемента. В этом параметре функция возвращает номер выбранного элемента. Этот параметр является обязательным. Параметр 3:String, Новый заголовок окна. Этот параметр является обязательным. Параметр 4:Int, Маска, которая определяет, какие кнопки следует оставить в диалоге. Доступные кнопки представлены в файле HjConst.jsh и имеют префикс bt_. Этот параметр является обязательным. Константы, описывающие кнопки приведены ниже (маска является комбинацией этих констант):
Параметр 5:Int, Кнопка по умолчанию, определяется через маску. Этот параметр является обязательным. Эта функция доступна в следующих версиях:
ПримерСледующий пример приведён как иллюстрация работы данной функции. Набор кнопок состоит из трех кнопок: правый и левый щелчки, а также двойной щелчок. Кнопкой по умолчанию назначается кнопка левого щелчка. Include "HjConst.jsh" Script ExampleUserDialog () Var Int ret, Int nIndex, String sList let sList = "Первый пункт |Второй пункт|Третий пункт" let ret =DlgSelectControls (sList, nIndex, "ВВам нужно выбрать...", bt_RightSingleClick + bt_LeftSingleClick + bt_LeftDoubleClick, bt_LeftSingleClick) Pause() If ret == iD_RightSingleClick Then SayString ("Правый щелчок по пункту с номером ") ElIf ret == iD_LeftSingleClick Then SayString ("Левый щелчок по пункту с номером ") ElIf ret == iD_LeftDoubleClick Then SayString ("Двойной щелчок по пункту с номером ") EndIf SayInteger(nIndex) EndScript Функция dlgSelectFunctionToRunОписание: Выводит список функций для выбора одной из них, её выполнения и отображения результата её работы. Кнопка Execute обновляет отображаемый в списке результат работы выбранной функции. Это очень похоже на функцию Возвращаемое значение: Параметр 1:String, Строка, содержащая список функций, разделенных таким же символом, что и список скриптов в функции Параметр 2:String, Заголовок окна этого диалога. Этот параметр является обязательным. Параметр 3:Int. True - если необходимо, чтобы список функций был отсортирован по алфавиту, false - если в этом нет нужды. Этот параметр является обязательным. Эта функция доступна в следующих версиях:
ПримерВ следующем примере выводится диалог со списком из трёх функций, отсортированных по алфавиту. Можно передвигаться по списку, при этом будут озвучены имена функций и результаты их работы. Include "HjConst.jsh" Script ListOfFunctions() Var string sList let sList="GetCurrentSchemeName|GetSystemDefaultLang|GetJFWVersion" dlgSelectFunctionToRun (sList, "Список функций для выполнения", TRUE) EndScript Функция DlgSelectItemInListОписание: Выводит на экран диалог, который содержит набор пунктов меню. Если будет нажата кнопка Ок, то функция вернет индекс выбранного пункта. Возвращаемое значение: Int. Ноль, если пользователь отказался от выбора (нажал Cancel), или номер выбранного пункта в противном случае. Параметр 1:String, Набор пунктов меню, разделенных символом с кодом "/007". Этот параметр является обязательным. Параметр 2:String, Строка, которая будет показана в заголовке данного диалога. Этот параметр является обязательным. Параметр 3:Int. Если TRUE, то список пунктов меню будет отсортирован. Этот параметр является обязательным. Параметр 4:Int. Номер пункта меню, на котором будет установлен фокус ввода при вызове данного диалога ( для Jaws 5.0 и выше). Этот параметр является необязательным. Эта функция доступна в следующих версиях:
ПримерВ примере представлен скрипт, который выводит диалог из четырёх пунктов меню и после выбора одного из пунктов сообщает его номер. Обратите внимание, что номер выбранного пункта соответствует его порядку в переменной sList, передаваемой в качестве параметра, а не расположению пунктов в диалоге (так как в диалоге они отсортированы по алфавиту). Script DlgMenuFruits () Var Int iRet, String sList let sList = "Яблоко\007 Апельсин\007Груша\007Финики" let iRet =DlgSelectItemInList (sList, "Фрукты, сэр!", TRUE, 1) SayInteger(iRet) EndScript Функция DlgSelectScriptToRunОписание: Выводит на экран диалог, содержащий набор скриптов, которые могут быть выполнены из этого диалога. Для выполнения выбранного скрипта следует нажать клавишу Execute. Возвращаемое значение: Параметр 1:String, Список скриптов, разделенный символом с кодом "\007". Этот параметр является обязательным. Параметр 2:String, Строка, которая будет отображаться в заголовке диалога. Если в качестве параметра передается пустая строка (""), то в заголовке диалога будет стоять "Perform Script". Этот параметр является обязательным. Параметр 3:Int. Если TRUE, то список скриптов будет отсортирован. Этот параметр является обязательным. Эта функция доступна в следующих версиях:
ПримерЗдесь представлен скрипт, выводящий диалог со списком из трёх элементов, содержащих названия скриптов. Выбрав скрипт и нажав Execute можно получить результат работы выбранного скрипта. Script SelectScript() Var String sList let sList="SayActiveCursor\007SayCursorType\007SaySystemTime" DlgSelectScriptToRun (sList, "", TRUE) EndScript Функция DlgSysTrayОписание: Выводит на экран диалог, содержащий список значков, расположенных в системной панели (System Tray). Возвращаемое значение: Int. Целое число, показывающее, какое действие следует выполнить, чтобы активировать выбранный элемент в системной панели. Это может быть щелчок левой кнопкой мыши (Left Mouse Button), щелчок правой кнопкой мыши (Right Mouse Button) или двойной щелчок левой кнопкой мыши (double click of the left mouse button). Параметр 1:String, Список значков в системной панели. Этот параметр является обязательным. Параметр 2:Int. Количество значков в системной панели. Этот параметр является обязательным. Эта функция доступна в следующих версиях:
Функция ExMessageBoxОписание: Выводит на экран стандартное сообщение (Message box) Windows. Это весьма похоже на действие функции MessageBox, за исключением того, что теперь можно указывать заголовок сообщения и тип окна сообщения, то есть количество кнопок и вид отображаемой иконки. (Для тех, кто знаком с Win32 API, не составит труда узнать в этой функции родную функцию Windows API MessageBox).Функция возвращает номер кнопки, которая была нажата пользователем. Возвращаемое значение: Int. Целое число, показывающее, какая кнопка была нажата пользователем. Параметр 1:String, Текст сообщения, выводимый в окне сообщения. Этот параметр является обязательным. Параметр 2:String, Текст заголовка окна сообщения. Этот параметр является обязательным. Параметр 3:Int. Комбинация констант, определяющих тип окна сообщения. Значения констант находятся в файле HJConst.jsh. Константы следует разделять вертикальной чертой (|), например: MB_YESNOCANCEL|MB_DEFBUTTON1 устанавливает кнопку Yes (Да) в качестве выбранной по умолчанию. Этот параметр является обязательным.Эта функция доступна в следующих версиях:
ПримерВ этом примере приведён фрагмент скрипта, в котором на экране отображается сообщение с двумя кнопками "Да" и "Нет". В зависимости от того, какую кнопку нажал пользователь, озвучивается соответствующее сообщение. Include "HjConst.jsh" ;... Script offer () Var string title, string message, int type ; текст сообщения let message = "Вы согласны слетать на Марс?" ;заголовок окна сообщения let title = "Горящие путевки" ;тип диалога: две кнопки и по умолчанию выбрана кнопка "Да" let type = MB_YESNO | MB_DEFBUTTON1 ; При нажатии "Да" возвращается IDYES If ( IDYES ==ExMessageBox (message, title, type)) Then SayString ("Вы согласились.") Else SayString("Вы отказались.") EndIf EndScript Функция InHJDialogОписание: Проверяет, активен ли один из диалогов, вызываемых функциями JAWS. К таким диалогам относятся JAWSFind, GraphicsLabeler, DlgSelectItemInList и DlgSysTray. Возвращаемое значение: Int. TRUE - если такой диалог активен, FALSE - в противном случае. Параметры: отсутствуют Эта функция доступна в следующих версиях:
Функция InputBoxОписание: Выводит на экран окно простого диалога, содержащего четыре элемента управления. Один элемент управления - это поле редактирования, в которое пользователь может ввести текстовую информацию. Другой элемент управления - это статический текст, который поясняет, какую информацию должен ввести пользователь. Кроме того, диалог содержит две кнопки: Ок и Cancel. После того как пользователь ввёл текст и нажал Enter или кнопку Ок, введённый текст возвращается функцией в своём первом параметре. Возвращаемое значение: Int. 1 - если нажата кнопка Ок, 0 - если нажата кнопка Cancel. Параметр 1:String, Текст подсказки, выводимый рядом с полем редактирования. Этот параметр является обязательным. Параметр 2:String, Текст заголовка окна диалога. Этот параметр является обязательным. Параметр 3:String, В этом параметре функция возвращает текст, введённый пользователем в поле редактирования, если пользователь нажал кнопку Ок. Если нажата кнопка Cancel, то этот параметр будет содержать нулевую строку. Этот параметр является обязательным. Эта функция доступна в следующих версиях:
ПримерВ этом примере на экран выводится диалог для ввода фразы, которая произносится синтезатором, если пользователь нажал кнопку Ок. Script InputBoxExample () Var Int iRet, String sText let iRet = InputBox ("Введите текст и нажмите кнопку Ок:", "Пример InputBox", sText) If iRet Then SayString("Введён текст:"+ sText) EndIf EndScript Функция IsSelectItemDlgОписание: Сначала проверяет, виден ли фокус ввода в приложении JFW. Затем проверяет Control Id, чтобы определить, является ли окно диалогом, создаваемым функцией Возвращаемое значение: Int. 0 - если не тот диалог, 1 - если это нужный диалог. Параметры: отсутствуют Эта функция доступна в следующих версиях:
Функция IsSelectScriptDlgОписание: Сначала проверяет виден ли фокус в приложениях JFW. Потом проверяет control ID, чтобы определить, активен ли диалог SelectScriptList control. Возвращаемое значение: Int. 0 - если false и 1 - если true. Параметры: отсутствуют Эта функция доступна в следующих версиях:
ПримерПример содержит два скрипта, которым необходимо назначить две различные комбинации клавиш. Один скрипт выводит на экран диалог со списком скриптов. Если в этот момент вызвать второй скрипт, то он сообщит, что активен диалог выбора скрипта. Если второй скрипт вызвать в любой другой момент (когда диалог не является активным), то скрипт сообщит об этом. Это бывает необходимо, чтобы не допустить выполнение каких-либо других скриптов, пока пользователь не выбрал скрипт в нужном диалоге. Include "HjConst.jsh" Script IsScriptDialog() ; Определяет активен ли диалог выбора скрипта If IsSelectScriptDlg ()Then SayString("Вы в диалоге выбора скрипта") Else SayString("Диалога для выбора скрипта нет") EndIf EndScript ;Выводит диалог со списком из трех скриптов Script SimpleDialog () Var String sList let sList = "SaySystemTray\007SayAppVersion\007SayActiveCursor" DlgSelectScriptToRun (sList, "", TRUE) EndScript Функция MessageBoxОписание: Функция используется для вывода сообщения (message box) на экран. Это может быть использовано в конструкции If...Then...Else..., чтобы при определённом условии вывести на экран сообщение. Возвращаемое значение: Параметр 1:String, Строка, заключённая в двойные кавычки, или переменная типа Эта функция доступна в следующих версиях:
Функция SmartMinimizeОписание: Закрывает активное окно. Если активным является окно диалога, то вызов этой функции аналогичен нажатию кнопки Ок (или кнопки по умолчанию). Если у активного окна есть в правом верхнем углу (в строке заголовка) кнопка с крестиком (Закрыть), то вызов этой функции аналогичен щелчку по указанной кнопке. Функция также полезна для закрытия некоторых окон, которые не реагируют на нажатие клавиши Escape или щелчки по кнопке Закрыть в верхнем правом углу заголовка. Возвращаемое значение Параметры: отсутствуют Эта функция доступна в следующих версиях:
Функция StartJAWSTaskListОписание: Позволяет пользователю сворачивать, разворачивать, запускать приложения и переключаться между ними. Возвращаемое значение: Int. 0 - если JAWSTaskList.dll не может быть загружена, 1 - если эта функция успешно вызвана из dll. Параметры: отсутствуют Эта функция доступна в следующих версиях:
Функция TimedMessageBoxОписание: Позволяет выводить на экран сообщение, в течение определённого времени ожидающего действий пользователя. Возвращаемое значение: Параметр 1:Int. Комбинация констант с префиксом MB_ из файла HjConst.jsh или просто 0 (для установок по умолчанию), определяющих вид и поведение окна сообщения. Можно использовать ICONERROR или другие константы, определяющие вид иконки, чтобы наделить сообщение общепринятыми знаками и звуковыми сигналами. Этот параметр является обязательным.(Следует заметить, что поскольку тип возвращаемого значения void, то бессмысленно использовать константы, определяющие количество кнопок в сообщении. Кроме того, почему-то нерабочими оказались попытки получить окно сообщения с любыми константами, кроме нуля). Параметр 2:String, Текст, который будет выведен в окне сообщения. Этот параметр является обязательным. Параметр 3:String, Строка текста, которая будет выведена в качестве заголовка окна сообщения. Этот параметр является обязательным. Параметр 4:Int. Время в миллисекундах, в течение которого сообщение будет находиться на экране. Этот параметр является обязательным. Эта функция доступна в следующих версиях:
ПримерЭтот пример показывает, как создать окно, которое будет ожидать ответа пользователя в течение одной минуты. Include "HjConst.jsh" Script Message() Var String sMessage, String sTitle Let sMessage = "Нажмите кнопку Ок, чтобы закрыть это окно. Или же оно исчезнет само собой через 1 минуту." Let sTitle = "Пример сообщения" TimedMessageBox (0, sMessage, sTitle, 60000) EndScript |
|||||||||
Распространение материалов сайта означает, что распространитель принял условия лицензионного соглашения. Идея и реализация: © Владимир Довыденков и Анатолий Камынин, 2004-2024 |
Социальные сети