Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Свое меню в WebBrowser / 15 сообщений из 15, страница 1 из 1
24.12.2010, 18:18
    #37034540
TpaBka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Свое меню в WebBrowser
Загружаю в WebBrowser документ Word
Все пока что нравится, но вот только WebBrowser в упор отказывается отображать моё меню (CommandBar) (т.е. вообще какое-то меню).
Причем следующий код отрабатывается без ошибок

Код: plaintext
1.
2.
3.
4.
5.
6.
Dim DocWord As Word.Document

Set DocWord = Me.WebBrowser1.Document

DocWord.Application.CommandBars.Add Name:="MyMenu", _
        Position:= 1 , Temporary:=True
DocWord.Application.CommandBars("MyMenu").Visible = True
Открываю параллельно Word, смотрю, меню создается, а вот галочка на отображение = False
Пробовал даже записать макрос в Wordе и запускать из VB –эффект тот же.(False)

Единственное что получилось отобразить в WebBrowser это «Стандартное меню», но мне такой вариант не подходит:
Код: plaintext
WebBrowser1.ExecWB OLECMDID_HIDETOOLBARS, OLECMDEXECOPT_DONTPROMPTUSER

Может кто-то сталкивался с данной проблемой?
Дайте, пожалуйста, совет что делать.
Спасибо
...
Рейтинг: 0 / 0
24.12.2010, 22:50
    #37034834
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Свое меню в WebBrowser
Визуальная часть CommandBars остались в ворде, не обессудь. Да и задумка их не предполагает: раз WebBrowser на форме, зачем ему какие-то меню? Кому надо, сами налепят на той же форме.
...
Рейтинг: 0 / 0
24.12.2010, 23:54
    #37034909
TpaBka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Свое меню в WebBrowser
а это ведь работает:
Код: plaintext
WebBrowser1.ExecWB OLECMDID_HIDETOOLBARS, OLECMDEXECOPT_DONTPROMPTUSER
...
Рейтинг: 0 / 0
25.12.2010, 00:17
    #37034934
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Свое меню в WebBrowser
Прячет тулбары?
...
Рейтинг: 0 / 0
25.12.2010, 00:19
    #37034938
TpaBka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Свое меню в WebBrowser
AntonariyПрячет тулбары?
Если спрятан то показывает
и на оборот
...
Рейтинг: 0 / 0
25.12.2010, 00:31
    #37034950
TpaBka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Свое меню в WebBrowser
А да только "Сдандартый" можно
Конечно можно наверно сделать типа свой тулбар из "Сдандартого" поудалять ненужные кнопки и повстовлять свои но Я до токго пока ещё не дошол :)
И при выгрузки все вернуть
Я расчитывал на более простое решение
...
Рейтинг: 0 / 0
29.12.2010, 04:09
    #37040106
TpaBka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Свое меню в WebBrowser
Короче добился от меню такого вида, который хотел (путем добавления в меню форматирования кнопки печати):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
Private Sub Form_Load()
Set DocWord = Nothing

Call WebBrowser1.Navigate2(VB.App.Path & DocP)

Set DocWord = Me.WebBrowser1.Document

If DocWord.Application.CommandBars("Formatting").Controls( 1 ).ID <>  2521  Then
WebBrowser1.Document.CommandBars("Formatting").Controls.Add Type:=msoControlButton, ID:= _
        2521 , Before:= 1 , Temporary:=True
End If

End Sub

Private Sub WebBrowser1_NavigateComplete2(ByVal pDisp As Object, URL As Variant)
WebBrowser1.ExecWB OLECMDID_HIDETOOLBARS, OLECMDEXECOPT_DONTPROMPTUSER
WebBrowser1.Document.CommandBars("Standard").Visible = False
End Sub

Private Sub WebBrowser1_OnQuit()
If DocWord.Application.CommandBars("Formatting").Controls( 1 ).ID =  2521  Then
DocWord.Application.CommandBars("Formatting").Controls( 1 ).Delete
End If

WebBrowser1.Navigate "about:blank"
End Sub

Private Sub Form_Unload(Cancel As Integer)
Set DocWord = Nothing
End Sub

Понятно, что очень сыро, но результат разрушает мифы типа:
AntonariyВизуальная часть CommandBars остались в ворде, не обессудь. Да и задумка их не предполагает: раз WebBrowser на форме, зачем ему какие-то меню? Кому надо, сами налепят на той же форме.

Я кстати натыкался на подобные ответы в форумах по делфи
А чуть не забыл, IE >= 5!
вот что пишут на Майкрософте ( http://support.microsoft.com/kb/243058/)

Но у меня появились уже большие сомнения на счет WebBrowser (до него Я уже отказался от OLE контейнера и FramerControl)

И так Вопрос № 2 по WebBrowser
Как убрать это окно диалога

(Этот документ изменился. Сохранить изменения)

Диалог появляется после того, как, отредактировать загруженный документ word в WebBrowserе и затем вызвать метод WebBrowser1.Navigate2 (т.е сменить шаблон документа word )

Интересное наблюдение:
1 Если тупо закрыть форму с отредактированным шаблоном, то диалог не появится.
2 При первом вызове метода Navigate2 диалог тоже не выпадает

Пока что нашел только такие советы:
Править реестр!

Если кто-то знает, как и что править в реестре из VB что бы не было этого окна
или же, как обойтись меньшей кровью,
напишите плиз!
...
Рейтинг: 0 / 0
29.12.2010, 09:25
    #37040213
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Свое меню в WebBrowser
TpaBka,

В статье с микрософта, говорится о том что Что следует учесть при использовании элемента управления WebBrowser в приложениях пакета Microsoft Office 2003 или более ранних версий OfficeЭлемент управления WebBrowser не поддерживает объединение меню. Если элементы меню документа должны выводиться в меню Visual Basic, следует использовать элемент управления OLE-контейнера., а судя по расширению doc у тебя именно 2003 или ниже офис.

Теперь к вопросу о диалоге, в той-же статье написано как получать доступ к исходному приложению или получать ссылку при событии WebBrowser1_NavigateComplete2 или Чтобы получить ссылку на объект документа Office, используйте свойство Document объекта имея ссылку на документ получаешь ссылку на приложение и говоришь ему что-бы не выводил глупых вопросов манипулируя свойством DisplayAlerts
...
Рейтинг: 0 / 0
29.12.2010, 12:50
    #37040613
TpaBka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Свое меню в WebBrowser
К сожалению
Код: plaintext
DocWord.Application.DisplayAlerts = wdAlertsNone 
- не убирает диалог
Возможно из за того что он принадлежит не ворду а браузеру
А следующий код:
Код: plaintext
DocWord.Close False
или даже так:
Код: plaintext
WebBrowser1.Document.Close False
вызывает ошибку 4605 (Метод или свойство недоступны, поскольку данный документ находится в другом приложении)
...
Рейтинг: 0 / 0
29.12.2010, 15:19
    #37041045
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Свое меню в WebBrowser
TpaBkaВозможно из за того что он принадлежит не ворду а браузеруВозможно поможет WebBrowser.Silent = true
Но лучше DocWord.Saved = True.
...
Рейтинг: 0 / 0
29.12.2010, 17:31
    #37041388
TpaBka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Свое меню в WebBrowser
AntonariyВозможно поможет WebBrowser.Silent = true
Но лучше DocWord.Saved = True.
Нет не то
Вообще Мне надо, что бы шаблон ворда по умолчанию не сохранял изменения
...
Рейтинг: 0 / 0
29.12.2010, 18:55
    #37041550
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Свое меню в WebBrowser
Вообще-то то. Saved = true не сохраняет документ, а делает отметку, что он сохранен, то есть не изменен с момента последнего редактирования.
...
Рейтинг: 0 / 0
04.01.2011, 16:27
    #37045808
TpaBka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Свое меню в WebBrowser
Мда
Чё то не получается у меня избавится от этого гнусного диалога
Может, кому-то пригодится как вариант:
Код: plaintext
1.
2.
WebBrowser1.Navigate2 ………'- здесь WB начинает смену шаблона и появляется диалог 
SendKeys "{RIGHT}"
SendKeys "{ENTER}"  '-То есть отменяем сохранения в шаблоне 
Кстати видел интересный глюк в 7-е
Команда SendKeys почему-то не хочет работать.
Почему?
...
Рейтинг: 0 / 0
04.01.2011, 20:56
    #37046064
Ципихович Эндрю
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Свое меню в WebBrowser
TpaBkaМда
Кстати видел интересный глюк в 7-е
Команда SendKeys почему-то не хочет работать.
Почему?

Как то же обсуждали эти две строки
SendKeys "{DELETE}" 'имитация нажатия на кнопку DELETE
SendKeys "{ENTER}" 'имитация нажатия на кнопку ENTER
У меня на ХР тоже не работают и не ругается, просто проходит и ничего не делает, чудо SP3 на свой Ворд 2003 поставил, не помогло!!!!
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
07.12.2016, 11:06
    #39361651
MsDatabaseru
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Свое меню в WebBrowser
отключает гнусный диалог

Me.WebBrowser1.Navigate "about:blank"
Me.WebBrowser1.Document.DesignMode = "off"

...

Me.WebBrowser1.Document.write HTML
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Свое меню в WebBrowser / 15 сообщений из 15, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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