информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Сетевые кракеры и правда о деле ЛевинаСтрашный баг в WindowsПортрет посетителя
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Фишинговая атака на Python-разработчиков 
 ФБР нашла русский след в атаках... 
 Массовый взлом SharePoint 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
[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 .
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2025 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach