任务计划程序运行时 VBScript 和批处理文件失败

问题描述 投票:0回答:2

我有一个 VBScript,可以检查 MS Word 是否隐藏运行,使其可见,然后再次隐藏它。

这是当我在资源管理器中双击文件时可以正常工作的脚本代码:

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

我该怎么做才能让它正常工作?

batch-file vbscript scheduled-tasks wsh windows-scripting
2个回答
1
投票

我也遇到过类似的问题,我通过利用 cscript.exe 应用程序将 vbscript 激活为控制台应用程序而不是 Windows 应用程序来绕过它。域或计算机可能存在限制,不允许通过 wscript 执行 Windows 应用程序。作为替代方案,请尝试通过“Cscript.exe”激活相同的脚本。

所以代码是:

cscript C:\dev\checkALPS.vbs

并且 get 对象方法不会从 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
投票

我有类似的问题,我寻找答案但无济于事。最后,我决定使用任务计划程序进行反复试验,因为我知道问题出在任务计划程序上。我对“常规”选项卡中的“安全”选项进行了一些更改。我选中了“以最高权限运行”选项。我取消选中它并再次运行该任务。这次成功了,没有任何问题。我希望它可以帮助有类似问题的人。

© www.soinside.com 2019 - 2024. All rights reserved.