Как мне запретить пользователю вручную закрывать VB6 автоматический экземпляр Word? - PullRequest
0 голосов
/ 10 сентября 2018

Мой вопрос об абсолютном контроле над автоматизированными экземплярами. Я использую VB6 для автоматизации генерации форм, используемых на нашем рабочем месте. Приложение находится в бета-версии, и я написал руководство пользователя, чтобы представить приложение новым пользователям; объяснение подфункций GUI. Я использую командную кнопку в графическом интерфейсе, чтобы открыть и закрыть руководство пользователя в экземпляре Word. Все это нормально, пока пользователь не закроет приложение Word вручную, пока приложение работает. Это убивает экземпляр Word, но мне нужно либо запретить пользователю закрывать экземпляр Word, либо приложение должно понять, что экземпляр пропал. Мои знания в области автоматизации довольно мелкие. Я адаптирую подпрограммы из макросов VBA. Пожалуйста, помогите.

Ответы [ 2 ]

0 голосов
/ 11 сентября 2018

Объявление "... WithEvents ..." экземпляра приложения MSOffice является решением этой проблемы. Список событий для приложения позволяет программисту полностью автоматизировать управление экземпляром из-за занавеса. Спасибо всем!

0 голосов
/ 10 сентября 2018

Мне нужно либо остановить пользователя от закрытия экземпляра Word, либо приложение понимает, что экземпляр исчез

Вы можете сделать и то и другое - объявите переменную Word, используя синтаксис «Give me events», и это вызовет событие 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
...