
- •Часть I: начало работы со скриптами
- •3.3 В Jaws for Windows появилась возможность загружать файлы
- •Void, если вам не нужно, чтобы ваша функция возвращала какое-либо
- •Insert Function Call - выводит диалог вставки функции, который
- •Insert PerformScript (вставить выполнение скрипта) - при выборе этой
- •InvisibleCursor() - активизирует невидимый курсор.
- •InvisibleCursor() ; активизируется невидимый курсор
- •InvisibleCursor () ; активизируется невидимый курсор
- •InvisibleCursor(), нажимайте Enter, чтобы вставить ее в наш скрипт.
- •Часть II
- •Include "hjglobal.Jsh"
- •IntVar на 1)
- •If (nAttributes & attrib_highlight) Then
- •Visual Basic.
- •If GetExcelVersion Then
- •If (nAttributes & attrib_highlight) then
- •1. Используйте комментарии, комментарии и еще раз комментарии!
- •InvisibleCursor() - активизирует невидимый курсор.
- •2. Диспетчер скриптов проверяет .Jsd файл на наличие строк
- •Include файлы проверяются, когда они включаются. Всегда ставьте
- •If (IsSameScript ()) Then
- •Import Macro File: используется для импорта файла макроса из ранних версий
- •If (GetAttributes() & attrib_underline) then ... (более подробное описание
- •VerbosityLevel - контролирует количество информации, произносимой jfw,
If (IsSameScript ()) Then
SayString (SayAllCaps (GetWord ()))
SpellWord()
AddHook (HK_SCRIPT, "SpellWordHook")
Else
SayWord ()
EndIf
EndScript
Ответ к домашнему заданию # 7
Edit Window:
SayTypeAndText - Edit
Focus - Это ручка окна, поэтому она всегда изменяется
ControlID - 59648
Class - Edit
Type - RichEdit
SubTypeCode - 3
Real Name - Document WordPad (assuming you have not loaded a file)
Filename Window:
SayTypeAndText - Filename Edit
Focus - Это ручка окна, поэтому она всегда изменяется
ControlID - 1152
Class - Edit
Type - Edit
SubTypeCode - 3
Real Name Open
Обратите внимание, что если вы посмотрите в HJCONST.JSH, вы
найдете, что код подтипа для 3 равен окну редактирования. В этих
случаях код подтипа не предоставляет никакой дополнительной
информации, кроме класса. Обратите внимание также, что два окна
имеют разные контрольные идентификаторы, даже несмотря на то,
что оба они являются окнами редактирования.
Ответ к домашнему заданию # 8
;This is the script file for SPAMKILLER.EXE, created by Michael Glen
;This file was last updated on July 4, 1776.
Include "SPAMKILLER.JSH" ;Header file
Include "SPAMKILLER.JSM" ;Message file
Include "HJCONST.JSH"
Include "HJGLOBAL.JSH"
Globals
Int GlobalSpamInteger,
String GlobalSpamString,
Handle GlobalSpamHandle
Const
SpammerOne = 1
SpammerTwo = 2
SpammerThree =3
Ответ к домашнему заданию # 9
Script IsThisOpenEdit ()
If GetWindowName (GetRealWindow (GetFocus ())) == "Open" Then
SayString ("In the Open dialog,")
If GetWindowClass (GetFocus ()) == "Edit" Then
SayString ("and in the filename field.")
Else
SayString ("but not in the filename field.")
EndIf ;Are we in the edit field?
Else
SayString ("Not in the Open dialog")
EndIf ;Are we in the Open dialog?
EndScript
Ответ к домашнему заданию # 10
Каждая ошибка показана ниже строкой, начинающейся с *** после
строки, содержащей ошибку.
Script SayDefaultButton (Int Button )
***Скрипты не используют параметры, параметры используют только функции
vars
***Var, а не Varsa
string DefaultButtonName,
***Последняя или единственная переменная не должна оканчиваться запятой
if (DialogActive ())
***В конце строки должно быть Then
let DefaultButtonName == GetDefaultButtonName
***в этом типе утверждения, где вы присваиваете значение, должен быть только один знак равенства
If (DefaultButtonName != " ") then
***Между кавычками пробелов быть не должно.
if (GetVerbosity () = 0) then
***В этом утверждении должно быть два знака равенства.
SayString ("msg70") ;"default button is"
***Внутри скобок кавычек быть не должно.
EndIf ()
***После Endif скобок не требуется.
SayString (DefaultButtonName))
***В конце строки лишняя закрывающая скобка.
Else ()
***После утверждения Else скобок ставить не нужно.
SayString (msg444) : "Can not determine default button in this dialog box "
***Комментарий должен начинаться с точки с запятой, а не с двоеточия.
End If
***В операторе Endif пробелов быть не должно.
Else ()
***После оператора Else скобки не ставятся.
SayString (msg71 ;"not in a dialog box"
***После MSG71 должна быть закрывающая скобка.
EndIf ()
***После EndIf скобки не ставятся.
End Script
***В EndScript пробелов быть не должно.
Скрипт, в таком виде, в каком он должен быть, и в каком виде он
присутствует в default.jss, приводится ниже.
Script SayDefaultButton ()
var
string DefaultButtonName
if (DialogActive ()) then
let DefaultButtonName = GetDefaultButtonName ()
if (DefaultButtonName != "") then
if (GetVerbosity () == 0) then
SayString (msg70) ;"default button is"
EndIf
SayString (DefaultButtonName)
else
SayString (msg444) ; "Can not determine default button in this dialog box ")
EndIf
else
SayString (msg71) ;"not in a dialog box"
EndIf
EndScript
Описание меню диспетчера скриптов
Ниже приводится краткое описание различных пунктов, доступных в
спускающихся меню, в линейке меню диспетчера скриптов. Описываются
только элементы, уникальные для диспетчера скритов или те, которые
выполняют необычные функции. Другие, которые являются стандартными для
приложений Windows, просто обозначены как "Стандартные функции". Многие
из описанных функций имеют клавиши быстрого запуска, которые
перечислены в меню и которые вам, вероятно, захочется узнать.
Меню Файл
New: Стандартная функция.
Open: стандартная функция.
Open Default File: открывает файл скриптов Jaws по умолчанию DEFAULT.JSS.
Close: стандартная функция.
Save: сохраняет файл, а также компилирует и сохраняет бинарную JSB
версию, сохраняя .JSS файл.
Save As: стандартная функция.
Save Without Compile: сохраняет любой файл, и не компилирует .JSS файл.