Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
 |  |  |  |  |  |
[Win32] спасибо 31.01.02 14:27 Число просмотров: 981
Автор: paganoid Статус: Member Отредактировано 31.01.02 14:29 Количество правок: 1
|
> Dim WithEvents ie As SHDocVw.InternetExplorer
>
> Private Sub Form_Load()
> Set ie = New SHDocVw.InternetExplorer
> ie.Navigate "www.yahoo.com"
> End Sub
>
...
> ---
спасибо, все заработало. Не понимаю правда, почему вместо InternetExplorer IWebBrowser не катил, ну да ладно.
ProgID тоже нашел ("InternetExplorer.Application" хыхы), т.е. можно создавать без подключения Reference .
|
<programming>
|
[Win32] Вопрос 29.01.02 02:34
Автор: Vital Статус: Незарегистрированный пользователь
|
Есть ли какие-нибудь функции Win32, позволяющие наряду
с обычными окнами Windows, работать с окнами сайтов, открываемыми
в броузере. А то все обычные функции не различают сайтовые окна и
считают, что это одно окно с классом Internet Explorer_Server.
Спасибо,
Vital
|
 |
[Win32] Otvet 29.01.02 04:41
Автор: + <Mikhail> Статус: Elderman
|
> Есть ли какие-нибудь функции Win32, позволяющие наряду > с обычными окнами Windows, работать с окнами сайтов, > открываемыми > в броузере. А то все обычные функции не различают сайтовые > окна и > считают, что это одно окно с классом Internet > Explorer_Server. > > Спасибо, > Vital Esli I tebia pravilno ponial togda primer na VB (potomuchto bolee nagliadno) Nadeus` chto u tebia ne budet problem napisat` etot zhe kode na C/C++.
Dim obj As Shell32.Shell
Dim ie As InternetExplorer
Set obj = New Shell32.Shell
For Each ie In obj.Windows
' sdes` ty poluchil reference na tvoi vse shell windows
' v tvoem sluchae popup IE windows tebe nuzhno vybrat` chto ty hochesh
MsgBox ie.LocationURL
' i tak dalee poshel ...
Next
---
|
 |  |
[Win32] Otvet 29.01.02 17:52
Автор: Vital Статус: Незарегистрированный пользователь
|
> Esli I tebia pravilno ponial togda primer na VB (potomuchto > bolee nagliadno) Nadeus` chto u tebia ne budet problem > napisat` etot zhe kode na C/C++. > > Dim obj As Shell32.Shell
> Dim ie As InternetExplorer
> Set obj = New Shell32.Shell
> For Each ie In obj.Windows
> ' sdes` ty poluchil reference na tvoi vse shell windows
> ' v tvoem sluchae popup IE windows tebe nuzhno vybrat`
> chto ty hochesh
> MsgBox ie.LocationURL
> ' i tak dalee poshel ...
> Next
> ---
Слушай с переводом в С++ у меня возникли проблемы,
ты не мог бы перевести, а то я запутался.
Заранее благодарен.
|
 |  |  |
[Win32] Otvet 29.01.02 21:34
Автор: + <Mikhail> Статус: Elderman
|
#include "stdafx.h"
#import "shdoc401.dll"
#import "shdocvw.dll"
void main(void)
{
HRESULT hr;
::CoInitialize(0);
{
::Shell32::IShellDispatchPtr pShell;
hr = pShell.CreateInstance(L"Shell.Application.1");
if(SUCCEEDED(hr))
{
IDispatch* pDisp;
hr = pShell->raw_Windows(&pDisp);
if(SUCCEEDED(hr))
{
::SHDocVw::IShellWindows *pWindows;
hr = pDisp->QueryInterface((::SHDocVw::IShellWindows**) &pWindows);
if(SUCCEEDED(hr))
{
ULONG cf;
BSTR wsURL = NULL;
long lc;
::SHDocVw::IWebBrowser *pBrowser;
IDispatch* pdispBrowser;
hr = pWindows->get_Count(&lc);
if(lc)
{
for(long lcount = 0; lcount < lc; ++lcount)
{
hr = pWindows->raw_Item(_variant_t(lcount), &pdispBrowser);
if(S_OK == hr)
{
hr = pdispBrowser->QueryInterface((::SHDocVw::IWebBrowser**)&pBrowser);
if(SUCCEEDED(hr))
{
//we got interface pointer
//...
pBrowser->get_LocationURL( &wsURL );
if(wsURL)
{
::MessageBox(0, (char*)_bstr_t(wsURL),"LocationURL of web browser window.", MB_OK);
::SysFreeString(wsURL);
}
pBrowser->Release();
}
pdispBrowser->Release();
}
}
}
pWindows->Release();
}
pDisp->Release();
}
};
}
::CoUninitialize();
return;
}
---
|
 |  |
[Win32] эээ... 29.01.02 10:14
Автор: paganoid Статус: Member
|
под какую версию Windows этот пример?
У меня (NT4 SP6) в реестре Shell32.Shell не зарегистрирован. Соответсна, пример не работает.. Какая dll/reference/windows ?
|
 |  |  |
[Win32] eee... 29.01.02 21:50
Автор: + <Mikhail> Статус: Elderman
|
> > под какую версию Windows этот пример? > У меня (NT4 SP6) в реестре Shell32.Shell не
A s chego ty vzial chto progid = "Shell32.Shell"???
Voobcheto progid = "Shell.Application"
> зарегистрирован. Соответсна, пример не работает.. Какая > dll/reference/windows ?
eta baida idet s IE.
Shell Doc Object and Control Library - IE 4.01
SHDOC401.DLL
shdocvw.dll
|
 |  |  |  |
[Win32] у меня заработало только так + еще вопрос 30.01.02 10:46
Автор: paganoid Статус: Member
|
> > > > под какую версию Windows этот пример? > > У меня (NT4 SP6) в реестре Shell32.Shell не > > A s chego ty vzial chto progid = "Shell32.Shell"???
хм. даж не знаю :)
> Voobcheto progid = "Shell.Application" > > зарегистрирован. Соответсна, пример не работает..
заработало (в бейсике) только так
Dim obj As Shell
Dim ie As InternetExplorer
Set obj = CreateObject("Shell.Application")
For Each ie In obj.Windows
' sdes` ty poluchil reference na tvoi vse shell windows
' v tvoem sluchae popup IE windows tebe nuzhno vybrat` chto ty hochesh
MsgBox ie.LocationURL
' i tak dalee poshel ...
Next
---
Shell32.Shell так и не нашел..
кстати, пробегает только по окнам Explorer, но не IE почамуйта..
> Какая > > dll/reference/windows ? > > eta baida idet s IE. > Shell Doc Object and Control Library - IE 4.01 > SHDOC401.DLL
этого не нашел
> shdocvw.dll
этого нашел
Слушай, а помоги мне плиз еще в одной маленькой фишке, с этим связанной. Надо создать IWebBrowser и сделать ему Navigate кудайнить. Если я просто делаю
Dim ie As IWebBrowser
Set ie = New WebBrowser
ie.Navigate "http://www.da.ru"
---
кричит про ошибку программирования объектов. Если же этот контрол располагаю на форме, проблем не наблюдается. Ему надо какие-нить hwnd/или что там прописывать?
|
 |  |  |  |  |
[Win32] у меня заработало только так + еще вопрос 30.01.02 21:56
Автор: + <Mikhail> Статус: Elderman
|
> > > > > > под какую версию Windows этот пример? > > > У меня (NT4 SP6) в реестре Shell32.Shell не > > > > A s chego ty vzial chto progid = "Shell32.Shell"??? > > хм. даж не знаю :) > > > Voobcheto progid = > "Shell.Application" > > > зарегистрирован. Соответсна, пример не работает.. > > заработало (в бейсике) только так > > > Dim obj As Shell
> Dim ie As InternetExplorer
> Set obj = CreateObject("Shell.Application")
> For Each ie In obj.Windows
> ' sdes` ty poluchil reference na tvoi vse shell windows
> ' v tvoem sluchae popup IE windows tebe nuzhno vybrat`
> chto ty hochesh
> MsgBox ie.LocationURL
> ' i tak dalee poshel ...
> Next
> ---
> > Shell32.Shell так и не нашел.. > кстати, пробегает только по окнам Explorer, но не IE > почамуйта.. > > > Какая > > > dll/reference/windows ? > > > > eta baida idet s IE. > > Shell Doc Object and Control Library - IE 4.01 > > SHDOC401.DLL > > этого не нашел > > > shdocvw.dll > > этого нашел > > > Слушай, а помоги мне плиз еще в одной маленькой фишке, с > этим связанной. Надо создать IWebBrowser и сделать ему > Navigate кудайнить. Если я просто делаю > > > Dim ie As IWebBrowser
> Set ie = New WebBrowser
> ie.Navigate "http://www.da.ru"
> ---
> > кричит про ошибку программирования объектов. Если же этот > контрол располагаю на форме, проблем не наблюдается. Ему > надо какие-нить hwnd/или что там прописывать? Naprimer variant takoi:
Dim WithEvents ie As SHDocVw.InternetExplorer
Private Sub Form_Load()
Set ie = New SHDocVw.InternetExplorer
ie.Navigate "www.yahoo.com"
End Sub
Private Sub ie_BeforeNavigate2(ByVal pDisp As Object, URL As Variant, Flags As Variant, TargetFrameName As Variant, PostData As Variant, Headers As Variant, Cancel As Boolean)
MsgBox "before navigate to: " & CStr(URL)
End Sub
---
|
 |  |  |  |  |  |
[Win32] спасибо 31.01.02 14:27
Автор: paganoid Статус: Member Отредактировано 31.01.02 14:29 Количество правок: 1
|
> Dim WithEvents ie As SHDocVw.InternetExplorer
>
> Private Sub Form_Load()
> Set ie = New SHDocVw.InternetExplorer
> ie.Navigate "www.yahoo.com"
> End Sub
>
...
> ---
спасибо, все заработало. Не понимаю правда, почему вместо InternetExplorer IWebBrowser не катил, ну да ладно.
ProgID тоже нашел ("InternetExplorer.Application" хыхы), т.е. можно создавать без подключения Reference .
|
|
|