[TC] Помощь в написании скрипта
Здравствуйте, всем!
Пишу скрипт в wordPad, для того чтобы он сказал последний открытый документ.
Пишу так, как прочёл в "Все что вы хотели знать о написании скриптов для JFW".
У меня получился такой скрипт:
Script LastFile ()
SpeechOff ()
{Alt+F}
Pause ()
NextLine ()
NextLine ()
NextLine ()
NextLine ()
NextLine ()
NextLine ()
NextLine ()
SpeechOn ()
SayLine ()
SpeechOff ()
{escape}
{escape}
Pause ()
SpeechOn ()
EndScript
Последний открытый документ в WordPad у меня Книга.txt.
После срабатывания скрипта я хотел услышать Книга.txt, а слышу "Объект".
Подскажите что в скрипте не так.
С уважением Юрий
Доброго времени суток, Юрий.
Из сообщения от 03.10.2009 19:03:
Вы посылаете приложению WordPad комбинацию клавиш,
соответствующую нелокализованной версии,
т. е. открываете меню "File" (английское).
В локализованной версии вместо этого Вы получаете пункт из меню "Вставка",
которое открывается горячей клавишей "А" (русская)
находящейся в кириллической раскладке на клавише "F" (латинская).
Чтобы избежать зависимости от локализации,
используя данную методику доступа к меню,
открывайте меню с помощью ActivateMenuBar (),
а затем открывайте подменю "файл" эмуляцией нажатия стрелки вниз,
используя "лишний" NextLine () .
Script LastFile ()
SpeechOff ()
; Проверяем меню на активность
; Если открыто -- закрываем
If MenusActive () Then
ActivateMenuBar ()
EndIf
ActivateMenuBar () ; Активизируем меню
NextLine () ; Открываем пункт меню "Файл"
NextLine ()
NextLine ()
NextLine ()
NextLine ()
NextLine ()
NextLine ()
NextLine ()
SpeechOn ()
SayLine ()
SpeechOff ()
ActivateMenuBar () ; Деактивизируем открытое меню
Pause ()
SpeechOn ()
EndScript
Для практического решения Вашей задачи можете использовать
более оптимальный, хотя и менее очевидный способ:
Include "msaaConst.jsh"
;Const
; OBJID_MENU = 0xFFFFFFFDL
Script LastFile2 ()
Var
int ChildID
SayString(GetObjectFromEvent(getTopLevelWindow(getFocus()), ObjID_Menu, 0,
ChildID).accChild(1).accChild(1).accName(10))
EndScript
Почтовик разобьет длинную строку SayString ,
поэтому в диспетчере скриптов исправьте ее.
Кроме того, если Вас не обнаружится файл msaaConst.jsh,
закомментируйте строку его включения,
и раскомментируйте строки с объявлением соответствующей константы.
С уважением, Руслан Усачев