информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Сетевые кракеры и правда о деле ЛевинаПортрет посетителяАтака на Internet
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Очередное исследование 19 миллиардов... 
 Оптимизация ввода-вывода как инструмент... 
 Зловреды выбирают Lisp и Delphi 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
если вы видите этот текст, отключите в настройках форума использование JavaScript
ФОРУМ
все доски
FAQ
IRC
новые сообщения
site updates
guestbook
beginners
sysadmin
programming
operating systems
theory
web building
software
hardware
networking
law
hacking
gadgets
job
dnet
humor
miscellaneous
scrap
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
[Win32] у меня заработало только так + еще вопрос 30.01.02 21:56  Число просмотров: 981
Автор: + <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


---
<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