|
|
Приложение A. Ответы на домашние заданияОтвет на домашнее задание # 1
Script LastFourFiles ()
SpeechOff ()
; В нижеследующей комбинации клавиш буква Ф должна быть латинской для англоязычного меню
; и русской для русскоязычного
;Иногда комбинации клавиш с русскими буквами могут не работать
{Alt+F}
Pause ()
NextLine ()
NextLine ()
NextLine ()
NextLine ()
NextLine ()
NextLine ()
NextLine ()
SpeechOn ()
SayLine ()
NextLine ()
SayLine ()
NextLine ()
SayLine ()
NextLine ()
SayLine ()
SpeechOff ()
{escape}
{escape}
Pause ()
SpeechOn ()
EndScript
Ответ на домашнее задание # 2Script SpeakWindowState () JAWSCursor () SaveCursor () RouteJAWSToPC () JAWSPageUp () JAWSEnd () PriorWord () SayWord () RestoreCursor () PCCursor () EndScript Обратите внимание, что в этом примере мы активизировали Jaws курсор, прежде чем использовать функцию SaveCursor. Поскольку Jaws курсор является активным курсором, когда выполняется функция SaveCursor, функция RestoreCursor вернет в первоначальное положение именно Jaws курсор. Функция PCCursor () в конце снова включит PC курсор. Это необходимо, поскольку скрипт, когда работал, включил Jaws курсор (На самом деле, необходимо в начале скрипта проверить, а был ли активным именно PC курсор, когда был вызван скрипт. Иначе получится, что скрипт будет всегда в конце своей работы включать PC курсор, даже когда в этом нет необходимости. - Прим. сост.). Ниже приводится ответ на "Отлично"
Script SpeakWindowState ()
InvisibleCursor ()
SaveCursor ()
RouteInvisibleToPC ()
JAWSPageUp ()
JAWSEnd ()
PriorWord ()
If GetWord () == "Restore Symbol" Then
SayString ("Maximized")
ElIf GetWord () == "Maximize Symbol" Then
SayString ("Restored")
Else
SayString ("Couldn't find the symbol")
EndIf
RestoreCursor ()
PCCursor ()
EndScript
Ответ к домашнему заданию # 3
Script PlaybackPosition ()
SaveCursor ()
RouteInvisibleToPC ()
InvisibleCursor ()
JAWSPageUp ()
NextLine ()
NextLine ()
NextLine ()
JAWSHome ()
SayString ("Current time is")
SayWord ()
SayString ("seconds out of")
NextWord ()
NextWord ()
SayWord ()
SayString ("seconds")
RestoreCursor ()
EndScript
Ответ к домашнему заданию # 4Include "JAWSWINS.JSH" Include "JAWSWINS.JMH" Include "HJCONST.JSH" Include "HJGLOBAL.JSH" Ответ к домашнему заданию # 5
Script CheckAndReset ()
Var
String TotalTime ;Хранит полное время звучания звукового файла
SaveCursor ()
RouteInvisibleToPC ()
InvisibleCursor ()
JAWSPageUp ()
NextLine ()
NextLine ()
NextLine ()
JAWSEnd ()
PriorWord ()
Let TotalTime = GetWord ()
JAWSHome ()
If GetWord () == "0.00" Then
SayString ("At the beginning of the recording")
ElIf GetWord () != "0.00" && GetWord () < TotalTime Then
SayString ("Playback only partially complete")
ElIf GetWord () == TotalTime Then
SayString ("Playback is complete.")
JAWSCursor ()
RouteJAWSToPC ()
JAWSHome ()
Pause ()
LeftMouseButton ()
Pause ()
InvisibleCursor ()
If GetWord () == "0.00" Then
SayString ("Rewind complete")
Else
SayString ("Rewind failed. Please check your batteries.")
EndIf
EndIf
EndScript
Обратите внимание, что Jaws может произносить некоторые дополнительные фразы, такие как "Seek to Start" или "Seek to End" когда он выполняет перемотку. Все правильно. Ответ к домашнему заданию # 6String Function SayAllCaps (string CurrentWord) If CurrentWord < "a" || CurrentWord > "zzzzz" Then Return "" EndIf If (StringContains (CurrentWord, "a")) || (StringContains (CurrentWord, "b")) || (StringContains (CurrentWord, "c")) || (StringContains (CurrentWord, "d")) || (StringContains (CurrentWord, "e")) || (StringContains (CurrentWord, "f")) || (StringContains (CurrentWord, "g")) || (StringContains (CurrentWord, "h")) || (StringContains (CurrentWord, "i")) || (StringContains (CurrentWord, "j")) || (StringContains (CurrentWord, "k")) || (StringContains (CurrentWord, "l")) || (StringContains (CurrentWord, "m")) || (StringContains (CurrentWord, "n")) || (StringContains (CurrentWord, "o")) || (StringContains (CurrentWord, "p")) || (StringContains (CurrentWord, "q")) || (StringContains (CurrentWord, "r")) || (StringContains (CurrentWord, "s")) || (StringContains (CurrentWord, "t")) || (StringContains (CurrentWord, "u")) || (StringContains (CurrentWord, "v")) || (StringContains (CurrentWord, "w")) || (StringContains (CurrentWord, "x")) || (StringContains (CurrentWord, "y")) || (StringContains (CurrentWord, "z")) || (StringContains (CurrentWord, "1")) || (StringContains (CurrentWord, "2")) || (StringContains (CurrentWord, "3")) || (StringContains (CurrentWord, "4")) || (StringContains (CurrentWord, "5")) || (StringContains (CurrentWord, "6")) || (StringContains (CurrentWord, "7")) || (StringContains (CurrentWord, "8")) || (StringContains (CurrentWord, "9")) || (StringContains (CurrentWord, "0")) Then Return "" EndIf Return "All Caps" EndFunction Script SayWord() If (IsSameScript ()) Then SayString (SayAllCaps (GetWord ())) SpellWord() AddHook (HK_SCRIPT, "SpellWordHook") Else SayWord () EndIf EndScript Ответ к домашнему заданию # 7Edit 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, а не Vars
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
Назад ("Создаем сложные файлы скриптов (5/5)")
Далее ("Приложение B. Описание меню диспетчера скриптов") |
|||||||||
|
Распространение материалов сайта означает, что распространитель принял условия лицензионного соглашения. Идея и реализация: © Владимир Довыденков и Анатолий Камынин, 2004-2025 | ||||||||||
Социальные сети