看不出这个 id 对你有什么帮助。我怀疑你在 visio 中遇到错误。你试过吗
on error resume next
并在每行可能给出错误之后
if err.number <> 0 then
wscript.echo err.description
err.clear
end if
如果省略参数似乎会出现问题,因此请全部使用它们。有关值,请参见http://msdn.microsoft.com/en-us/library/office/ms409271(v=office.12).aspx。在退出使用之前document.saved = true
,您可以先检查结果文件是否存在。
编辑:检查进程是否正在运行,是否必须调整服务名称(检查您的 téaskmanager)
set service = GetObject ("winmgmts:")
for each Process in Service.InstancesOf ("Win32_Process")
If lcase(Process.Name) = "visio.exe" then
wscript.echo "visio still running"
wscript.quit
End If
next
wscript.echo "visio no longer running"
EDIT2:获取活动 visio 应用程序的 processid(如果运行多个 Visio 实例,则 GetObject 返回活动实例。当程序作为加载项运行或通过双击形状时,活动实例是运行程序的那个。否则,它是最近运行的实例或被带到前面的实例。如果没有 Visio 实例正在运行,GetObject 会导致错误)cfr http://webmail.vh.com.tw/微软/开发中%20Microsoft%20Visio%20Solutions/27.htm
set appObj = GetObject(, "visio.application")
if appObj Is Nothing Then
wscript.echo "There is no active Visio."
else
wscript.echo "ProcessID: " & appObj.ProcessID
end if