2014-02-21 94 views
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位操作系統上?如果是這樣,請確保您在任務/ bat中使用的WSCRIPT.EXE是您想要的(\ System32 for 64-bit或\ SysWOW64 for 32-bit)。 – Bond

+1

適合我。我懷疑計劃任務的配置有問題。你在任務的安全選項中配置了什麼?該錯誤消息表明,在任務正在運行的用戶的上下文中沒有運行Word進程。 –

+0

該任務設置爲在Admin帳戶下以最高權限運行。 Word實例由在同一個帳戶下運行的.NET應用程序創建。 –

回答

1

我有這個類似的問題,我繞過它利用cscript.exe應用程序來激活作爲控制檯應用程序而不是Windows應用程序的VBScript。有可能是域或計算機上不允許通過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

如何讓它在沒有窗口的情況下運行? –

+0

@oO。查看http://stackoverflow.com/tags/vbscript/info部分。具體在「本地執行腳本」下。 – Rich

相關問題