如何阻止用户手动关闭Word的VB6自动实例?

如何阻止用户手动关闭Word的VB6自动实例?,vb6,word-automation,Vb6,Word Automation,我的问题是关于对自动化实例的绝对控制。我正在使用VB6自动生成工作场所中使用的表单。该应用程序处于测试阶段,我已经编写了一本用户手册,向新用户介绍该应用程序;解释GUI的子功能。我使用GUI上的命令按钮在Word实例中打开和关闭用户手册。所有这些都很好,直到用户在应用程序运行时手动关闭Word应用程序。这会杀死Word实例,但我需要阻止用户关闭Word实例,或者让应用程序意识到该实例已消失。我的自动化知识相当浅薄。我从VBA宏中调整子例程。请帮忙 我需要阻止用户关闭Word实例,或者 应用程序意

我的问题是关于对自动化实例的绝对控制。我正在使用VB6自动生成工作场所中使用的表单。该应用程序处于测试阶段,我已经编写了一本用户手册,向新用户介绍该应用程序;解释GUI的子功能。我使用GUI上的命令按钮在Word实例中打开和关闭用户手册。所有这些都很好,直到用户在应用程序运行时手动关闭Word应用程序。这会杀死Word实例,但我需要阻止用户关闭Word实例,或者让应用程序意识到该实例已消失。我的自动化知识相当浅薄。我从VBA宏中调整子例程。请帮忙

我需要阻止用户关闭Word实例,或者 应用程序意识到实例已消失

您可以同时执行这两项操作-使用“Give me events”语法声明Word变量,它将在代码中引发
DocumentBeforeClose
事件

Public WithEvents mWordApp As Word.Application

Sub DoStuff()
    Set mWordApp = New Word.Application
    '// open doc ...
    mWordApp.Visible = True
End Sub

Private Sub mWordApp_DocumentBeforeClose(ByVal Doc As Document, Cancel As Boolean)
    Cancel = MsgBox("Word is closing, keep open?", vbYesNo) = vbYes
End Sub

MSOffice应用程序实例的“…WithEvents…”声明就是这个问题的解决方案。应用程序的事件列表允许程序员从幕后对实例进行全自动控制。谢谢大家

将ControlBox属性设置为false(在窗体设计器中)(使用VB6,而不是VBA)。还有一些方法可以关闭它,但是你有一种控制的错觉,用户是否需要看到正在创建的表单,或者应用程序正在填充数据然后保存表单?基于lardymonkey的注释,你可以最小化实例,或者可能将窗口从屏幕的可见部分移开,但只要任务栏上有一个实例,用户仍然可以进行干预,因此这不是最好的解决方案@不过,lardymonkey可能是在暗示其他东西——也许Word的一个实例根本不需要打开或显示。当用户在主应用程序GUI上的每个控件上移动鼠标时,我使用用户手册(UM)中的书签在文档中跳跃。如果用户在驾驶GUI时打开了手册,文档将跳转到带有书签的部分,用于鼠标悬停的控件。除非用户自己关闭UM,否则其工作正常。当GUI试图关闭Word实例时,这会导致问题;当用户单击UM切换或GUI关闭时。因为用户从桌面关闭了UM,所以当应用程序试图关闭它打开的Word实例时会挂起。我需要更清楚地构建我的问题描述。在阅读了上述回复后,我意识到我的帖子有多么模糊。很抱歉DOC937我想这是我需要的解决方案。我必须将其应用到主GUI代码中,以控制用户。我会尽量在今天的工作中削减开支,然后再给你回复结果。谢谢你,亚历克斯!谢谢大家的帮助。这是我需要的解决方案。它允许我捕获用户可能直接注入桌面对象的任何Office产品实例事件。谢谢你,亚历克斯。