:: Visual Foxpro, Foxpro for DOS
Как узнать, что документ Word закрыт?
Артём

Сообщений: 143
Дата регистрации: 23.04.2001
Следующий код оставляет открытыми 2 документа. Я хочу дописывать в них информацию (например, с целью экономии бумаги).
Как узнать, что пользователь закрыл документ руками?
Придумал только искать по имени среди открытых документов.

И еще, как закрыть сам Word?



oWord = CREATEOBJECT("Word.Application")
m.cDocPath = 'C:\____TMP\test_word\'
m.fn1 = 'file_1.docx'
m.fn2 = 'file_2'
WITH oWord
? .Documents.count()
.WindowState = 1
* .WindowState = 2 && Minimize Word.
.Visible=.T. && Make Word visible.
.Documents.Add
.ActiveDocument.SaveAs( cDocPath + m.fn1)
.Selection.TypeText('file_1')
? .Documents.count()
.Documents.Add
.ActiveDocument.SaveAs( cDocPath + m.fn2)
.Selection.TypeText('file_2')
.Documents[2].Activate
.Selection.TypeText('file_1')
.ActiveDocument.Bookmarks("\StartOfDoc").Select
.ActiveDocument.Save()
.Documents[1].Activate
.Selection.TypeText('file_2')
.ActiveDocument.Bookmarks("\StartOfDoc").Select
.ActiveDocument.Save()
? .Documents.count()
? .Documents[1].name
? .Documents[2].name
? .Documents( m.fn1)
*.Documents[1].Close() && закрывать умею
*.Documents[1].Close()
*RELEASE( oWord)
* = NULL && не работает
ENDWITH



Исправлено 2 раз(а). Последнее : Артём, 23.04.24 20:56
Ratings: 0 negative/0 positive
Re: Как узнать, что документ Word закрыт?
akvvohinc

Сообщений: 4577
Откуда: Москва
Дата регистрации: 11.11.2008
Артём
Как узнать, что пользователь закрыл документ руками?
Когда вы добавляете документ, сохраняйте ссылку на него в переменной (oDoc1).
Если юзер закроет этот документ, то проверка типа любого его свойства, например, oDoc1.Name, вернёт 'U'.
Ratings: 0 negative/1 positive
Re: Как узнать, что документ Word закрыт?
alex;

Сообщений: 3477
Откуда: Москва
Дата регистрации: 23.11.2004
В Word можно открыть среду VBA через Alt+F11.
А в ней через F2 открыть Object Browser и в нем посмотреть все методы и свойства классов.
[attachment 36798 vba.JPG]
Метод Quit закрывает Word. У него три необязательных параметра.
Переменная oWord хранит сслыку на объект Word.Application.
И удаление переменной через RELEASE oWord никак на Word.Application не скажется, вы просто потеряете связь с объектом.
Обращения к объектам ворда надо обернуть в TRY.
Тогда если документы закрыты возникнет ошибка и ее можно будет обработать.
Еще рекомендуется устанавливать oWord.DisplayAlerts=.F., чтобы не выскакивали окна подтверждений действий.
Иначе выполнение программы остановиться и не поймешь причину.
Ratings: 0 negative/1 positive
Re: Как узнать, что документ Word закрыт?
akvvohinc

Сообщений: 4577
Откуда: Москва
Дата регистрации: 11.11.2008
Артём
И еще, как закрыть сам Word?
oWord.quit
Ratings: 0 negative/1 positive
Re: Как узнать, что документ Word закрыт?
of63

Сообщений: 26040
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
> Как узнать, что пользователь закрыл документ руками?
"Руками"... А еще какие способы бывают? (по выключению питания компа редактирующего? да бывает)

Никогда не узнаете как.
Ratings: 0 negative/0 positive
Re: Как узнать, что документ Word закрыт?
sphinx
Автор

Сообщений: 31958
Откуда: Екатеринбург
Дата регистрации: 22.11.2006
Показали уже как. Мы не про отключение питания и пр.


------------------
"Veni, vidi, vici!"(с)
Ratings: 0 negative/0 positive
Re: Как узнать, что документ Word закрыт?
of63

Сообщений: 26040
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Было, что Офисные В и Е командами QUIT (или еще какие-то) не отключаются, в диспетчере задач можете смотреть. Не вижу смысла их именно "убивать", в и Э, так устроены - там общий механизм может, обслуживающий все открытые файлы их типа... хз.

Можно подумать о фразе вопрошающего "оставляет открытыми" (файлы эксель)
() Пусть покопает, открыты фалы или нет, кем, и нам скажет

() Бывает, что спросишь, что имеено хочется, сделать с этим файлом (он скажет "открыть на запись", тогда надо придумывать ответ), а если просто посмотреть, ему некомфортно смотреть экраны "занятости" файла - другое... если... )



Исправлено 1 раз(а). Последнее : of63, 07.05.24 23:12
Ratings: 0 negative/0 positive
Re: Как узнать, что документ Word закрыт?
sphinx
Автор

Сообщений: 31958
Откуда: Екатеринбург
Дата регистрации: 22.11.2006
Иди в Курилку. Или спать. Предупреждения вечно не будут.


------------------
"Veni, vidi, vici!"(с)
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 17 (Гостей: 17)

© 2000-2025 Fox Club 
Яндекс.Метрика