2014-02-21 36 views
1

我們有一個運行MS Word(隱藏)來打印文檔的應用程序。如何檢查MS Word是否使用VBScript運行

如果其中一臺打印機出現問題,則Word會在等待假脫機程序返回「排隊」消息時掛起。

我們發現,如果我們讓Word可見(例如,通過在Excel中使用VBA,例如GetObjectoWordApp.visible=true),那麼該過程將繼續打印其他文檔而不會出現問題。

我們想使這更自動通過在運行過程中一個VBScript檢查的Word,如果它發現它,使它可見,等待幾秒鐘,隱藏它,並退出...

但是我有一個問題,VBScript GetObject函數實例化Word,如果它尚未運行。

我應該如何檢查使用VBScript運行的單詞而不創建它的實例?

這裏是我在我的VBScript文件中的代碼:

dim oWord, WScriptShell 

set oWord = getobject("", "Word.Application") 
set WScriptShell = CreateObject("WScript.Shell") 

if isobject(oWord) then 'and oWord.Documents.count>0 
    wscript.echo("Word is running") 
    oWord.visible=true 
    WScript.Sleep 1000 
    oWord.visible=false 
else 
    wscript.echo("Word not running") 
end if 

所以我應該用它來檢查,如果字,而無需創建它的一個實例運行的是什麼?

回答

4

只要改變GetObject("", "Word.Application")GetObject(, "Word.Application"),並沒有啓動一個實例。

msgbox wordIsRunning 

function wordIsRunning 
    dim wdApp 
    on error resume next 
    set wdApp = GetObject(, "Word.Application") 
    wordIsRunning = (err.Number = 0) 
    set wdApp = nothing 
end function 
0

Word掛起

檢查 「DisplayAlerts」 屬性。只有屬性「Visible」設置爲「True」時才允許。

任務列表/ FI 「IMAGENAME EQ WINWORD.EXE」

會告訴你,做M $運行Word或不

+0

所以我應該包括'任務列表/ FI「IMAGENAME EQ WINWORD.EXE」'在我的VBScript:
但是如果Word是運行,所以你可以使用它像這樣,這將引發一個錯誤? –

+0

不,那是windows的shell命令/程序。你可以使用WScript.Shell來運行它 – Zam

相關問題