Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут
закрыты.
Читайте
требования к создаваемым темам.
-
Antonariy
-
- Повелитель Internet Explorer

-

-
- Сообщения: 4824
- Зарегистрирован: 28.04.2005 (Чт) 14:33
- Откуда: Мимо проходил
-
Antonariy » 26.02.2006 (Вс) 10:40
- Код: Выделить всё
Dim WithEvents doc as HTMLDocument
Sub Command1_Click()
Dim ie as New InternetExplorer
ie.Visible = True
ie.navigate "ya.ru"
While ie.ReadyState <> READYSTATE_COMPLETE
DoEvents
Wend
ie.Document.parentWindow.showModalDialog "ya.ru"
End Sub
Как получить в doc ссылку на HTMLDocument диалога с целью отлова событий?
Лучший способ понять что-то самому — объяснить это другому.
-
marvan
-
- Бывалый

-
-
- Сообщения: 269
- Зарегистрирован: 22.06.2004 (Вт) 13:26
- Откуда: Москва
-
marvan » 26.02.2006 (Вс) 13:49
Наверно, нельзя.
Это тоже самое, что:
- Код: Выделить всё
MsgBox "Как отловить клик по этому тексту?"
-
Antonariy
-
- Повелитель Internet Explorer

-

-
- Сообщения: 4824
- Зарегистрирован: 28.04.2005 (Чт) 14:33
- Откуда: Мимо проходил
-
Antonariy » 26.02.2006 (Вс) 14:27
Способ я нашел, только он немного через ж. Я подумал, может кто предложет что-нибудь отличное от моего.
Лучший способ понять что-то самому — объяснить это другому.
-
marvan
-
- Бывалый

-
-
- Сообщения: 269
- Зарегистрирован: 22.06.2004 (Вт) 13:26
- Откуда: Москва
-
marvan » 27.02.2006 (Пн) 10:29
Antonariy писал(а):Способ я нашел, только он немного через ж. Я подумал, может кто предложет что-нибудь отличное от моего.
Если не секрет, то как?
-
Antonariy
-
- Повелитель Internet Explorer

-

-
- Сообщения: 4824
- Зарегистрирован: 28.04.2005 (Чт) 14:33
- Откуда: Мимо проходил
-
Antonariy » 27.02.2006 (Пн) 12:16
- Код: Выделить всё
Dim WithEvents doc as HTMLDocument
Sub Command1_Click()
Dim ie as New InternetExplorer
Dim doc1 As IHTMLDocument
ie.Visible = True
ie.navigate "ya.ru"
While ie.ReadyState <> READYSTATE_COMPLETE
DoEvents
Wend
Set doc1 = New HTMLDocument
doc1.write "<html><body></body></html>"
Set doc = doc1
Kill App.path & "\mainframe.htm"
WriteFile App.path & "\mainframe.htm", Replace(StrConv(LoadResData("mainframe", "custom"), vbUnicode), "***", "ya.ru")
ie.Document.parentWindow.showModalDialog (App.path & "\mainframe.htm", doc)
End Sub
Private Sub doc_ondataavailable()
Dim h As Long
Dim d As HTMLDocument
h = GetForegroundWindow
Set d = IEDOMFromhWnd(h) 'Функция из статьи http://www.vbstreets.ru/VB/Articles/66050.aspx
'здесь должно бы происходить окончательное присвоение переменной необходимого документа, но вместо этого происходит ошибка "Отказано в доступе"
Set doc = d.frames(0).document
End Sub
Public Sub WriteFile(path As String, conts As String)
Dim r() As Byte
r = StrConv(conts, vbFromUnicode)
Open path For Binary As #1
Put #1, , r
Close #1
End Sub
'содержимое mainframe.htm
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<script language="javascript">
var doc=window.dialogArguments;
</script>
</head>
<body bottommargin="0" leftmargin="0" rightmargin="0" topmargin="0" scroll="no" onload="doc.fireEvent('ondataavailable')">
<iframe width="100%" height="100%" frameborder="0" marginheight="0" marginwidth="0" vspace="0" hspace="0" scrolling="auto" src="***">
</iframe>
</body>
</html>
Лучший способ понять что-то самому — объяснить это другому.
Вернуться в Visual Basic 1–6
Кто сейчас на конференции
Сейчас этот форум просматривают: PetalBot, Yandex-бот и гости: 18