作为服务运行时,使用VB6调用WordApplication.Open失败

时间:2013-12-07 16:57:10

标签: com vb6 ms-word

我正在使用此代码打开Word文档:

Dim Word as Object, Doc as Object
Set Word = CreateObject("Word.application")
if not (Word is nothing) then
  set Doc = Word.Documents.Open("C:\temp\testfile.doc")
  if not (doc is nothing) then
    doc.close false
    set doc = nothing
  end if
  Word.Quit
  set Word = nothing
End if

我把它编译成了一个exe,它在交互式运行时或在我的测试机器(带有Office 2007的Windows Server 2008 R2)上运行时工作正常。但是在具有相同操作系统和相同Word版本的其他服务器上,只有在以交互方式运行exe时才能正常工作。只要我将其作为服务运行,该行

set Doc = Word.Documents.Open("C:\testfile.doc")

因“需要对象”错误而失败。

我尝试了以下内容:

  • 使用服务帐户本地系统
  • 将服务配置为使用与我登录时相同的用户帐户
  • 使用设置Doc = Word.Documents.Add打开一个新的空文档可以正常工作
  • 我使用/ r参数运行Word以修复它,并使用/ RegServer
  • 运行
  • 检查/关闭病毒扫描程序(作为MS Security Essentials)

没有成功。 有没有人有想法?

1 个答案:

答案 0 :(得分:0)

您可能需要启用服务才能与桌面进行交互。查看this question

中的屏幕截图