VB + MS WORD: Монопольный режим приложения

Создание, использование компонентов ActiveX
RSV
Начинающий
Начинающий
 
Сообщения: 22
Зарегистрирован: 31.08.2007 (Пт) 12:35

VB + MS WORD: Монопольный режим приложения

Сообщение RSV » 31.08.2007 (Пт) 13:02

Уважаемые коллеги, подскажите!

пытаюсь создать приложение, использующее Word в качестве тектового процессора :D . Хочу, чтобы он был независим от др. внешних по отношению к приложению операций юзера, осуществляемых с Word.

Ближе к телу 8) :

Гружу документ Word в VB.NET приложение через контрол WebBrowser.
Хотелось бы, чтобы активируемое при этом приложение Word взаимнооднозначно соответствовало контролу WebBrowser...
Др. словами:
1. При последующей активации Word (например, с рабочего стола, другим приложением) приложение Word, активируемое с помощью WebBrowser, не должно задействоваться.
2. И наоборот, контрол WebBrowser не должен "хватать" ранее загруженное приложение для загрузки адресованного ему документа Word.

По второму пункту я ничего другого не придумал, как непосредственно перед командой WebBrowser.Navigate ставлю
wdApp = new Word.Application ... WebBrowser хватает последнее активированное приложение. Не знаю, правило это или нет...

Заранее благодарен...

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 31.08.2007 (Пт) 13:13

Скачивай файл НЕ вебброузером, иначе WB и Word будут делать так, как сочтут нужным.
Лучший способ понять что-то самому — объяснить это другому.

RSV
Начинающий
Начинающий
 
Сообщения: 22
Зарегистрирован: 31.08.2007 (Пт) 12:35

Сообщение RSV » 03.09.2007 (Пн) 8:14

К сожалению, Гейтс не предусмотрел в NET иного механизма загрузки приложений в контейнер...

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 03.09.2007 (Пн) 8:55

Попробуй изъясняться более грамотно. Что означает пассаж "загрузки приложений в контейнер"? Причем тут приложение? Какой контейнер?
Скачать файл на диск можно через XmlHTTPRequest.
Лучший способ понять что-то самому — объяснить это другому.

RSV
Начинающий
Начинающий
 
Сообщения: 22
Зарегистрирован: 31.08.2007 (Пт) 12:35

Сообщение RSV » 04.09.2007 (Вт) 9:40

Antonariy писал(а):Попробуй изъясняться более грамотно. Что означает пассаж "загрузки приложений в контейнер"? Причем тут приложение? Какой контейнер?


Мне казалось, что в первом посте все грамотно разъснил :oops: .
Отвечаю на вопросы.
Контейнер - это любой контрол, т.е. Control, имеющий свойство Container.
Под прилождением понимается приложение MS Word. В NET этому соответствует объект Application. Последнее переводится как "приложение".
В VB6 существовал OLE-контейнер, в который можно было грузить различные офисные приложения. В NET для этого сделан контрол WebBrowser. Вроде все объяснил... Вот мне бы кто разъяснил по существу вопроса.

Antonariy писал(а):Скачать файл на диск можно через XmlHTTPRequest.


Зачем мне его скачивать? Он и так лежит на диске в доступной папке :) Мне нужно загрузить *.doc, чтобы текст редактировать.
Последнее элементарно. Но потом возникают проблемы, о которых я писал вначале

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 04.09.2007 (Вт) 9:57

Теперь все понятно.
Зачем мне его скачивать? Он и так лежит на диске в доступной папке Мне нужно загрузить *.doc, чтобы текст редактировать.

"Загрузить" обычно используется в смысле "скачать". В твоем случае грамотнее использовать "открыть".

Не знаю всех тонкостей .net, но по-моему должен быть самостоятельный ole-контейнер без прослойки из броузера. Броузер сам использует такой контейнер.
Лучший способ понять что-то самому — объяснить это другому.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 04.09.2007 (Вт) 10:18

Навряд-ли в .NET может быть OLE-контейнер без прослоек.
Lasciate ogni speranza, voi ch'entrate.

RSV
Начинающий
Начинающий
 
Сообщения: 22
Зарегистрирован: 31.08.2007 (Пт) 12:35

Сообщение RSV » 04.09.2007 (Вт) 11:41

Antonariy писал(а):Не знаю всех тонкостей .net, но по-моему должен быть самостоятельный ole-контейнер без прослойки из броузера. Броузер сам использует такой контейнер.


"Зуб даю". В MSDN четко написано - "теперь никаких OLE - забудьте".
В случае WEВ-контрола не используется OLE механизм. Собственно, для этого он был разработан для последней версии NET.

Рыть, на мой взгляд, нужно в др. направлении. Раньше в каких-то офисных программах была опция, определяющая отношение Файл - Приложение (т.е. один к одному или много к одному). В Word 6 этого найти уже не могу. Но одну закономерность я уже выявил.

Если сначала загрузить Word, кликнув иконку, а потом загружать в контрол WebBrowser файл *.doc, то WebBrowser и Word работают, как-будто др. о друге не знают. Т.е. никакого конфликта. При этом в панели задач показано только одна задача Word.
Если сделать в обратной последовательности, т.е. Word загрузить позже, то недолго ждать ошибки при обработке документа *.doc, загруженного ранее в WebBrowser.

Ejara
Начинающий
Начинающий
 
Сообщения: 16
Зарегистрирован: 28.10.2002 (Пн) 1:59
Откуда: Russia

Сообщение Ejara » 07.09.2007 (Пт) 12:08

2RSV

Подскажи плиз как ты открываешь документ Word в контроле.

я открываю так:
WebBrowser1.Navigate("@C:\q.doc")

а он ругается

"Действие отменено
Internet Explorer не удается подключиться к запрошенной веб-странице. Возможно, страница временно недоступна.
"
Бери добро и бросай его в воду.....

RSV
Начинающий
Начинающий
 
Сообщения: 22
Зарегистрирован: 31.08.2007 (Пт) 12:35

Сообщение RSV » 10.09.2007 (Пн) 12:46

Ejara писал(а):2RSV

Подскажи плиз как ты открываешь документ Word в контроле.

я открываю так:
WebBrowser1.Navigate("@C:\q.doc")

а он ругается

"Действие отменено
Internet Explorer не удается подключиться к запрошенной веб-странице. Возможно, страница временно недоступна.
"

Я тоже так открываю. Возможно, на самом деле страница недоступна, т.е. необходимо завершить процесс ее формирования...
Я формирую файл *.doc обычным StreamWriter, а текст в ним методом RichTextBox.RTF

Ejara
Начинающий
Начинающий
 
Сообщения: 16
Зарегистрирован: 28.10.2002 (Пн) 1:59
Откуда: Russia

Сообщение Ejara » 02.10.2007 (Вт) 14:43

Да дело то в том что документ у меня сформирован.
Т.е. мне надо зайти в папку с документом и просмотреть содержимое документа.
Бери добро и бросай его в воду.....


Вернуться в Компоненты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

    TopList