我有一个 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
我该怎么做才能让它正常工作?
我也遇到过类似的问题,我通过利用 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
尝试一下,让我知道它是如何工作的。
我有类似的问题,我寻找答案但无济于事。最后,我决定使用任务计划程序进行反复试验,因为我知道问题出在任务计划程序上。我对“常规”选项卡中的“安全”选项进行了一些更改。我选中了“以最高权限运行”选项。我取消选中它并再次运行该任务。这次成功了,没有任何问题。我希望它可以帮助有类似问题的人。