[prg] реализация функции DateAdd в сценариях Jaws.
Здравствуйте, industry.comp.tiflocomp.programming!
Стоит задача перевести с гринвича день и час на местное время. Она была
решена средствами сценариев Jaws, но хотелось бы ее оптимизировать
посредством функции DateAdd из jscript или vbscript.
У меня не получается создать соответствующий объект с помощью
CreateObject ("Scripting....").
Спасибо за рекомендации!
Здравствуйте, Leonid.
Это может оказаться не лучшим решением, потому что, насколько я помню,
ScriptControl в Windows везде 32-разрядный, так что его не удавалось
корректно инициализировать из 64-разрядного процесса. То есть скрипты не
могли использовать WSH в 64-разрядных версиях JAWS. Может быть вы на это и
напоролись, если работаете на 64-разрядной системе.
В принципе, реализация должна выглядеть примерно так:
string Function DateAdd (string sInterval, int iNumber, string sDate)
var
object oScriptControl
let oScriptControl = CreateObject("ScriptControl")
If !oScriptControl Then
Return
Else
let oScriptControl.Language = "vbscript"
Return oScriptControl.Eval("DateAdd(\""+sInterval+"\", "+iNumber+",
\""+sDate+"\")")
EndIf
EndFunction
Теоретически можно написать внешний скрипт на VBS, которому в качестве
аргументов передавать параметры, он внутри будет всё считать, после чего
возвращать вам через com-объект JAWS. Соответственно вы будете дёргать этот
скрипт с параметрами и получать ответ. Такая конструкция в принципе должна
работать на системе любой разрядности, хотя и выглядит не очень изящно.
Успехов. Никита.