Модераторы: mihanik
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отследить действия в WORD из VB.NET 
:(
    Опции темы
swetik1981
Дата 22.7.2012, 00:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 117
Регистрация: 20.12.2007

Репутация: нет
Всего: нет



Из VB.NET открывается вордовский документ: 

Код

Dim MSWord As New Word.Application 
Dim WordDoc As New Word.Document 
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
 WordDoc = MSWord.Documents.Open("C:\Demo.Doc") 
 MSWord.WindowState = Word.WdWindowState.wdWindowStateNormal 
 MSWord.Visible = True 
End Sub


 После того, как пользователь сделал некоторые изменения в данном документе, мне необходимо передать информацию о них обратно в программу VB.NET. То есть мне надо отследить момент, когда пользователь осуществляет сохранение информации или закрывает документ. Это возможно? 

Это сообщение отредактировал(а) swetik1981 - 22.7.2012, 00:17
PM MAIL   Вверх
dstorm81
Дата 26.7.2012, 17:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


бездельник
***


Профиль
Группа: Завсегдатай
Сообщений: 1178
Регистрация: 18.1.2006
Где: (16RU)

Репутация: нет
Всего: 39



Цитата(swetik1981 @  22.7.2012,  00:13 Найти цитируемый пост)
когда пользователь осуществляет сохранение информации или закрывает документ


навскидку, мне незнакомому с net видится 2 варианта

1)эти действия будут контролироваться со стороны самого вордовского документа посредством этих самых макросов, но, имхо, макросы не всегда смогут сработать корректно отработать... (аварийное закрытие ворда например)

2) проверять самой программой, дать например окну специфическое название и мониторить его открыто/закрыто


а уместен ли такой изврат вообще?
не проще вывести диалоговую форму для заполнения.....подозрение что вы мудрите и усложняете



--------------------
на форуме с 8.12.2002 (http://forum.vingrad.ru/index.php?act=ST&f=10&t=4874&st=0#)

PM   Вверх
LOPUH
Дата 5.8.2012, 20:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Растение
*


Профиль
Группа: Участник
Сообщений: 245
Регистрация: 15.2.2008
Где: Красноярск

Репутация: 3
Всего: 4



Почитайте о событиях в VBA...
PM MAIL   Вверх
diadiavova
Дата 13.8.2012, 00:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 1
Всего: 142



Можно сделать так
Код

Imports Microsoft.Office.Interop
Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim MSWord As New Word.Application
        AddHandler MSWord.DocumentBeforeSave, AddressOf MSWord_DocumentBeforeSave
        Dim WordDoc As New Word.Document
        WordDoc = MSWord.Documents.Open("C:\Demo.doc")
        MSWord.WindowState = Word.WdWindowState.wdWindowStateNormal
        MSWord.Visible = True
    End Sub

    Private Sub MSWord_DocumentBeforeSave(Doc As Microsoft.Office.Interop.Word.Document, ByRef SaveAsUI As Boolean, ByRef Cancel As Boolean)
        Me.Invoke(Sub() TextBox1.Text = Doc.Content.Text)
    End Sub

End Class


Здесь при сохранении документа, его содержимое заносится в текстбокс. 
А вообще, если программа написана не специально для обслуживания ворда, а ворд используется как редактор только лишь, то добавлять в нее ссылки на библиотеки ворда - не есть хорошо. Я бы тут сделал иначе. Открыть документ в ворде можно штатными методами
Код

Process.Start("Путь к ворду", "Путь к файлу документа")

Дальше можно в приложении разместить службу WCF, а для ворда написать надстройку и разместить в ней клиентскую часть службы. Надстройка отслеживает сохранение документа и сообщает приложении, возможно (если нужно) передает при  этом внесенные изменения или, скажем, весь документ для дальнейшей обработки.

Это сообщение отредактировал(а) diadiavova - 13.8.2012, 01:35


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование, связанное с MS Office"
mihanik staruha

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами



  • Несанкционированная реклама на форуме запрещена
  • Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль "Помогите!" таковым не является.
  • Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
  • Оставляйте свои записи в "Книге отзывов о работе администрации"
  • А вот тут лежит FAQ нашего подраздела


Если Вам понравилась атмосфера форума, заходите к нам чаще!
С уважением mihanik и staruha.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование, связанное с MS Office | Следующая тема »


 




[ Время генерации скрипта: 0.0781 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.