Автоматический Enable тулбара в IE8
От: yakovchuck  
Дата: 22.04.09 06:54
Оценка:
Всем доброго времени суток,

Есть программа, которая встраивает дополнительный тулбар в IE. Но проблема в том что для того чтобы тулбар прорезался в браузере, в нём необходимо зайти в View->ToolBars и там активизировать.
Вопрос в том как этот процесс сделать автоматически? Т.Е. при первом запуске IE после установки моей программы чтобы тулбар сразу бы появлялся на панеле (без всяких уведомлений пользователю, как в IE8)

Заранее спасибо за любую помощь
Re: Автоматический Enable тулбара в IE8
От: dudkin  
Дата: 23.04.09 07:03
Оценка:
Здравствуйте, yakovchuck, Вы писали:

Y>Всем доброго времени суток,


Y>Есть программа, которая встраивает дополнительный тулбар в IE. Но проблема в том что для того чтобы тулбар прорезался в браузере, в нём необходимо зайти в View->ToolBars и там активизировать.

Y>Вопрос в том как этот процесс сделать автоматически? Т.Е. при первом запуске IE после установки моей программы чтобы тулбар сразу бы появлялся на панеле (без всяких уведомлений пользователю, как в IE8)

Y>Заранее спасибо за любую помощь


Все делают это через BHO.
Re[2]: Автоматический Enable тулбара в IE8
От: _gc Россия  
Дата: 24.04.09 02:04
Оценка:
D>Все делают это через BHO.

Не все. После инсталляции можно вот такой скрипт запускать:

var IE = new ActiveXObject("InternetExplorer.Application");
var guid = "{ваш гуид}";
IE.ShowBrowserBar(guid, true, 1);
IE.Quit();
IE = null;
Re[3]: Автоматический Enable тулбара в IE8
От: dudkin  
Дата: 27.04.09 21:13
Оценка:
Здравствуйте, _gc, Вы писали:

D>>Все делают это через BHO.


_gc>Не все. После инсталляции можно вот такой скрипт запускать:


_gc>
_gc>var IE = new ActiveXObject("InternetExplorer.Application");
_gc>var guid = "{ваш гуид}";
_gc>IE.ShowBrowserBar(guid, true, 1);
_gc>IE.Quit();
_gc>IE = null;
_gc>


Можно и так. Тоже самое делают из BHO — при первом запуске ShowBrowserBar.
Re[3]: Автоматический Enable тулбара в IE8
От: yakovchuck  
Дата: 29.04.09 07:29
Оценка:
Здравствуйте, _gc, Вы писали:

D>>Все делают это через BHO.


_gc>Не все. После инсталляции можно вот такой скрипт запускать:


_gc>
_gc>var IE = new ActiveXObject("InternetExplorer.Application");
_gc>var guid = "{ваш гуид}";
_gc>IE.ShowBrowserBar(guid, true, 1);
_gc>IE.Quit();
_gc>IE = null;
_gc>


Большое спасибо, я только не понял что это за скрипт. У меня инсталлятор на NSIS написан
Re[4]: Автоматический Enable тулбара в IE8
От: yakovchuck  
Дата: 29.04.09 11:53
Оценка:
SHDocVw::IWebBrowser2Ptr pIE;
HRESULT hr = CoCreateInstance(CLSID_InternetExplorer, NULL, CLSCTX_LOCAL_SERVER, IID_IWebBrowser2, (LPVOID*)&pIE);
_variant_t bar("{B2DE56E2-907A-4080-AE06-5C2A7BD4364E}");
VARIANT hide;
hide.vt = VT_BOOL;
hide.boolVal = VARIANT_TRUE;
_variant_t res(1);
pIE->Visible = TRUE;
HRESULT r = pIE->ShowBrowserBar(&bar, &hide, &res);


Пробую такой код запускать при запуски программы, как я понимаю это делает тоже самое что и скрипт, но тулбар не появляется всё-равно.
Re[5]: Автоматический Enable тулбара в IE8
От: Nihasa Россия  
Дата: 12.05.09 06:21
Оценка:
Здравствуйте, yakovchuck, Вы писали:

...

Y>Пробую такой код запускать при запуски программы, как я понимаю это делает тоже самое что и скрипт, но тулбар не появляется всё-равно.


Я вызываю функцию со следующим кодом из DllRegisterServer и всё работает:

IWebBrowser2* webBrowser = NULL;
HRESULT hr = ::CoCreateInstance(CLSID_InternetExplorer, NULL, CLSCTX_LOCAL_SERVER, IID_IWebBrowser2, (void**)&webBrowser);
if (SUCCEEDED(hr))
{
    _variant_t vClsID;
    _variant_t vTrue;
    _variant_t vNotUsed;
        
    vClsID.vt = VT_BSTR;
    vClsID.bstrVal = SysAllocString(L"{мой_гуид}");
    vTrue.vt = VT_BOOL;
    vTrue.boolVal = true;
    vNotUsed.vt = VT_INT;
    vNotUsed.intVal = 1;
        
    hr = webBrowser->ShowBrowserBar(&vClsID, &vTrue, &vNotUsed);

    SysFreeString(vClsID.bstrVal);
    webBrowser->Release();
    return S_OK;
}


Попутно хотел задать вопрос: как заставить тулбар появляться на новой строке в IE6/7? В данный момент от появляется сразу за крайним снизу тулбаром на той же строке.
Re[6]: Автоматический Enable тулбара в IE8
От: yakovchuck  
Дата: 19.05.09 09:41
Оценка:
Здравствуйте, Nihasa, Вы писали:

N>Попутно хотел задать вопрос: как заставить тулбар появляться на новой строке в IE6/7? В данный момент от появляется сразу за крайним снизу тулбаром на той же строке.


В GetBandInfo нужно добавить

pdbi->dwModeFlags = pdbi->dwModeFlags | DBIMF_BREAK;
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.