powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Предотвращение закрытия Word'a из проги (+)
6 сообщений из 6, страница 1 из 1
Предотвращение закрытия Word'a из проги (+)
    #32426382
Denis___Ka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет всем!

Хочу сразу предупредить, что способ с помощью documentbeforeclose() меня не очень радует и вот по какой причине:
у меня из проги (на vfp 6.0) создаецца объект Word.Application, а потом в зависимости от ситуации - документ kbmj на основе одного из 3-х моих шаблонов, либо на основе Normal.dot.
Ессно мне очень не хочецца подменять в Normal.dot, переопределива в нем
documentbeforeclose() и еще пару необходимых в следствии этого методов...
создавать ради этого еще один шаблон, но отличающийся от Normal только этимс тоже не хоцца...

так нельзя ли еще как-то предотвратить закрытие word.application и любого из открытых в нем документов...

PS ессно сам я из проги должен смочь всех их убить ...
...
Рейтинг: 0 / 0
Предотвращение закрытия Word'a из проги (+)
    #32427598
Фотография SergeySV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну что я могу сказать, тут вариантов, вернее подходов несколько.
1. Можно вообще не показывать с самого начала свой doc, загружать его в скрытом режиме.
2. (а также в дополнение к первому) пусть пользователь закрывает - хрен с ним, но при каждом обращении к Word в своем коде проверять, запущен ли твой документ и если нет загружать его снова уже в скрытом режиме.
3. Для отлова documentbeforeclose необязательно изменять сам Normal .dot Можно воспользоваться WithEvents с помощью своего класс-модуля:

Модуль-класс - EventClassModule:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Option Explicit

Public WithEvents wordApp As Word.Application

Private Sub wordApp_DocumentBeforeClose(ByVal Doc As Word.Document, Cancel As Boolean)
  ......
  тут твой код
  .......
End Sub



В твоем коде при инициализации:
Код: plaintext
1.
2.
3.
4.
Public myClass As New EventClassModule

Set myClass.wordApp = CreateObject( "Word.Application" )

...
Рейтинг: 0 / 0
Предотвращение закрытия Word'a из проги (+)
    #32429745
Denis___Ka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дело в том, что 2 из документов предназначены для заведения пользователем тела документа (текста с картинками, табличками и т.д.), потом эти тела ;-) подставляюцца в соответствующие оставшиеся 2 шаблона, поэтому скрытыми их сделатть ну ни как нельзя (я шаблоны заполняю скрытыми, а потом отображаю)...
А вот по поводу публичного класса... дело в том, что сама прога у меня на vfp 6.0, а не на vba или vb...
поэтому я и задумался, как, создавая Word.Application из проги на vfp запретить его закрытие (и документов в нем тоже - ессно) до тех пор, пока сама форма, которая создавала этот объект, не будет закрыта пользователем...

К сожалению в форуме по vfp мне ничего не посоветовали.... :-(((
...
Рейтинг: 0 / 0
Предотвращение закрытия Word'a из проги (+)
    #32429764
Фотография SergeySV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А в vfp6 вызывать API функции можно?
...
Рейтинг: 0 / 0
Предотвращение закрытия Word'a из проги (+)
    #32430419
Фотография tpg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторА в vfp6 вызывать API функции можно?\r
дынц
...
Рейтинг: 0 / 0
Предотвращение закрытия Word'a из проги (+)
    #32430654
Фотография SergeySV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мдам... тяжко

Но вообщем какие еще варианты я вижу:

- subclassing на Word (либо главное окно, либо окно документа - надо экспериментировать что лучше)

- глобальный hook и отлов сообещния о закрытии для Word

но для всех этих вариантов нужен оператор AddressOf
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Предотвращение закрытия Word'a из проги (+)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]