Отправляет email-рассылки с помощью сервиса Sendsay

[TC] Ответ на звонок в Unigram

Всем доброго дня. Подскажите, каким образом с помощью JAWS можно ответить на входящий звонок в Unigram?
Пользуюсь:
JAWS 2024
Unigram 10.4.4 X64
Скрипты: Unigram revision 209 (rus)

Ответить   Fri, 19 Apr 2024 15:17:52 +0600 (#3704133)

 

Ответы:

Приветствую, Евгений Неретин!

Меня научили так: Когда есть входящий вызов, давим Windows+A, попадая в
центр уведомлений, там находим табом и стрелками этот входящий звонок и
enter.

Ответить   Fri, 19 Apr 2024 13:45:18 +0400 (#3704135)

 

Здравствуйте, Georgy.

отвечаю на письмо от 19 апреля 2024 г., 12:45:18:

предлагаю скрипт для начала, отклонения и завершения разговора.
этот скрипт помещаем в default.jss или myExtensions.jss
в файл default.jkm прописываем такие строки:
; для начала разговора.
JAWSKey+Control+Shift+s=AcceptOrRejectACall(1)
; для отклонения разговора.
JAWSKey+Control+Shift+o=AcceptOrRejectACall(2)
; так-как при разговоре появляется еще одно окно, то надо в него переместиться, чтобы завершить разговор, для этого существует третяя комбинация клавиш для вызова скрипта. здесь есть несколько кнопок, между которыми можно перемещаться клавишей табуляция.
JAWSKey+Control+Shift+w=AcceptOrRejectACall(3)
; если скрипт был правильно размещен в одном из вышепреведенных файлах скриптов, то скрипт должен отрабатывать из любого окна windows.
; ниже размещен сам скрипт.

Script AcceptOrRejectACall (int Call)
var
object UnUIA = CreateObjectEx ("freedomsci.UIA", false, "UIAScriptAPI.x.manifest"),
object oCall = UnUIA.GetRootElement(),
object oConditionWindow = FSUIAContentViewCondition (),
object oFindWindow = oCall.FindAll(TreeScope_Children, oConditionWindow),
object AndCondition,
object oButton ,
int iCount = oFindWindow.Count -1,
int i,
string ButtonName,
string WinName,
handle hWnd
if Call ==1 then
sayinteger(Call)
let ButtonName = "Звук"
let WinName = "Новое уведомление"
elif Call ==2 then
sayinteger(Call)
let ButtonName = "Отклонить"
let WinName = "Новое уведомление"
elif Call ==3 then
sayinteger(Call)
let ButtonName = "Завершить"
let WinName = "Unigram"
endif
for i=0 to iCount
if oFindWindow(i).Name == WinName then
let hWnd = oFindWindow(i).nativeWindowHandle
let oFocus = UnUIA.GetElementFromHandle(hwnd)
if oFindWindow(i).Name == WinName then
let AndCondition = UnUIA.CreateAndCondition(UnUIA.CreateStringPropertyCondition (UIA_NamePropertyId , ButtonName), UnUIA.CreateIntPropertyCondition (UIA_ControlTypePropertyId , UIA_ButtonControlTypeId))
let oButton = oFocus.FindFirst(TreeScope_Descendants|TreeScope_Children, AndCondition)
delay(1)
;sayinteger(oFindWindow(i).controlType)
;saystring(oFindWindow(i).name)
endif
endif
endFor
if Call ==3 then
SetFocus(hWnd)
oButton .SetFocus()
return
endif
oButton .SetFocus()
if !oButton then return endif
var object oAction = oButton.GetLegacyIAccessiblePattern()
if !oAction then return endif
oAction.DoDefaultAction()
EndScript

Ответить   Fri, 19 Apr 2024 16:26:18 +0300 (#3704136)

 

Mai omentaina, Анатолий Ивашков!

Очевидно, это будет работать только в русском интерфейсе. И может
сломаться, если разработчики решат изменить названия кнопок.

Ответить   Sat, 20 Apr 2024 13:08:35 +0200 (#3704166)