我们有一个运行MS Word(隐藏)的应用程序来打印文档。
如果其中一台打印机出现问题,则Word会在等待假脱机程序返回“排队”消息时挂起。
我们发现,如果我们使Word可见(例如,使用带有GetObject
和oWordApp.visible=true
的Excel中的VBA),则该过程将继续打印其他文档,没有任何问题。
我们希望通过在运行进程中对Word进行VBScript检查,使其更自动化,如果找到它,使其可见,等待几秒钟,隐藏它,然后退出...
但我有一个问题,即如果VBScript GetObject
函数尚未运行,则会对其进行实例化。
如何在不创建实例的情况下使用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
那么我应该使用什么来检查单词是否正在运行而不创建它的实例?
答案 0 :(得分:4)
只需将GetObject("", "Word.Application")
更改为GetObject(, "Word.Application")
即可启动实例
但如果Word 不正在运行,则会引发错误,因此您可以像这样使用它:
msgbox wordIsRunning
function wordIsRunning
dim wdApp
on error resume next
set wdApp = GetObject(, "Word.Application")
wordIsRunning = (err.Number = 0)
set wdApp = nothing
end function
答案 1 :(得分:0)
Word挂起
检查“DisplayAlerts”属性。仅当属性“Visible”设置为“True”时才允许。
任务列表/ FI“IMAGENAME eq winword.exe”
会告诉你,m $ word是否正在运行