|
Приложение A. Ответы на домашние заданияОтвет на домашнее задание # 1Script 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 Ответ к домашнему заданию # 3Script 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" Ответ к домашнему заданию # 5Script 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 Ответ к домашнему заданию # 9Script 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-2024 |
Социальные сети