0

У меня есть VBScript, который проверяет, скрыта ли MS Word скрыто, делает его видимым, а затем скрывает его снова.VBScript и командный файл не работают при запуске планировщика заданий

здесь код сценария, который прекрасно работает, когда я дважды щелкните файл в проводнике:

dim oWord 
Dim wshShell, btn 
Set wshShell = WScript.CreateObject("WScript.Shell") 

set oWord = getobject(, "Word.Application") 

if isobject(oWord) then 
    on error goto 0 
    wshShell.Popup "Word is running, making visible", 7, "ALPS Push print", &H0 + &H40 
    oWord.visible=true 
    wshShell.Popup "MS Word is now visible" & vbcrlf & vbcrlf & "Waiting 30 seconds then hiding it", 30, "ALPS Push print", &H0 + &H30 
    oWord.visible=false 
else  
    wshShell.Popup "Word is not running" & vbcrlf & vbcrlf & "Quitting", 7, "ALPS Push print", &H0 + &H40 
end if 

Он работает найти, когда я запускаю его, но когда он работает под управлением планировщика заданий он не так что я создал партию файл, чтобы запустить его

wscript C:\dev\checkALPS.vbs 

Теперь, когда я пытаюсь запустить его из планировщика задач, она по-прежнему не удается с сообщением об ошибке ниже

--------------------------- 
Windows Script Host 
--------------------------- 
Script: C:\dev\checkALPS.bat 
Line: 7 
Char: 1 
Error: ActiveX component can't create object: 'getobject' 
Code: 800A01AD 
Source:  Microsoft VBScript runtime error 

Что я могу сделать для этого?

+1

Работает ли ваша задача с ограниченными привилегиями? Вы используете 64-битную ОС? Если это так, убедитесь, что WSCRIPT.EXE, который вы используете в своей задаче/bat, является тем, который вы хотите (\ System32 для 64-разрядных или \ SysWOW64 для 32-разрядных). – Bond

+1

Работает для меня. Я подозреваю, что что-то не так с настройкой запланированной задачи. Что вы настроили в параметрах безопасности задачи? В сообщении об ошибке говорится, что процесс Word не выполняется в контексте пользователя, в котором выполняется задача. –

+0

задача выполнена с наивысшими привилегиями под учетной записью администратора. Экземпляр Word создается приложением .NET, работающим под той же учетной записью. –

ответ

1

У меня была подобная проблема, я обошел ее, используя приложение cscript.exe, чтобы активировать vbscript как консольное приложение, а не приложение Windows. Существует вероятность того, что существует ограничение на домен или компьютер, который не позволяет выполнять приложения Windows через wscript. В качестве альтернативы попробуйте активировать один и тот же скрипт через «Cscript.exe».

Так что код будет:

cscript C:\dev\checkALPS.vbs 

И методы объекта прибудет не активируются выключением Wscript исполняемого файла. Поэтому вам нужно активировать его через wscript.

dim oWord 
Dim wshShell, btn 
Set wshShell = WScript.CreateObject("WScript.Shell") 

set oWord = Wscript.GetObject(, "Word.Application") 

if isobject(oWord) then 
    on error goto 0 
    wshShell.Popup "Word is running, making visible", 7, "ALPS Push print", &H0 + &H40 
    oWord.visible=true 
    wshShell.Popup "MS Word is now visible" & vbcrlf & vbcrlf & "Waiting 30 seconds then hiding it", 30, "ALPS Push print", &H0 + &H30 
    oWord.visible=false 
else  
    wshShell.Popup "Word is not running" & vbcrlf & vbcrlf & "Quitting", 7, "ALPS Push print", &H0 + &H40 
end if 

Дайте этому качели и дайте мне знать, как это работает.

+0

Как заставить его работать без окна? –

+0

@oO. Ознакомьтесь с разделом http://stackoverflow.com/tags/vbscript/info. В частности, в разделе «Выполнение сценариев локально». – Rich