Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 任务计划程序运行VBScript和批处理文件时失败_Batch File_Vbscript_Scheduled Tasks_Wsh_Windows Scripting - Fatal编程技术网

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

Batch file 任务计划程序运行VBScript和批处理文件时失败,batch-file,vbscript,scheduled-tasks,wsh,windows-scripting,Batch File,Vbscript,Scheduled Tasks,Wsh,Windows Scripting,我有一个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 wshS

我有一个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 object方法不会在WSScript可执行文件之外激活。因此,您需要通过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

挥动一下,让我知道它是怎么工作的

您的任务是否以受限权限运行?您是否使用64位操作系统?如果是,请确保您在任务/bat中使用的WSCRIPT.EXE是您想要的(\System32代表64位或\SysWOW64代表32位)。适用于我。我怀疑计划任务的配置有问题。您在任务的安全选项中配置了什么?错误消息表明,任务作为用户运行的上下文中没有运行Word进程。该任务被设置为以最高权限在Admin帐户下运行。Word实例是由在同一帐户下运行的.NET应用程序创建的。如何使其在没有窗口的情况下运行?@oO。查看该部分。特别是在“本地执行脚本”下。