Страница: 1 |
Страница: 1 |
Вопрос: получение URLa из IE и Opera
Добавлено: 08.07.04 00:59
Автор вопроса: vovka
Подскажите как получить какой текуйщий урл в броузере?? Я имею ввиду активного окна. С использованием хуков, название окна получается получить, а адрес нет.
:(
Ответы
Всего ответов: 12
Номер ответа: 1
Автор ответа:
DaSharm
ICQ: 780477
Вопросов: 72
Ответов: 1297
Web-сайт:
Профиль | | #1
Добавлено: 08.07.04 11:30
запусти Spy++ и пройдись по окнам, я только что сделал такое: в ИЕ без проблем. в Opera Spy++ не смог обнаружить поле ввода URL, нашел какое то окно OperaWindowClass.
Номер ответа: 2
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #2
Добавлено: 08.07.04 11:44
С ИЕ проблемм нет, это даже, кажется, есть в библиотеко кодов...
Номер ответа: 3
Автор ответа:
vovka
Вопросов: 1
Ответов: 5
Профиль | | #3
Добавлено: 08.07.04 17:59
если не затрудник, код может показать?? или скачать готовый пример
перелазил весь интернет, не могу найти
заранее благодарю
Номер ответа: 4
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #4
Добавлено: 08.07.04 18:34
http://vbnet.ru/faq/showtopic.asp?id=81
Номер ответа: 5
Автор ответа:
vovka
Вопросов: 1
Ответов: 5
Профиль | | #5
Добавлено: 08.07.04 20:07
[b]sne[/b]
Благодарю, но он работает не полностью
к тоже сам автор это признал
мне б рабочий
Номер ответа: 6
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #6
Добавлено: 08.07.04 20:11
колдуй колдун
я конечно тоже гляну... может че-нить и получится... хотя навряд-ли...
Номер ответа: 7
Автор ответа:
DaSharm
ICQ: 780477
Вопросов: 72
Ответов: 1297
Web-сайт:
Профиль | | #7
Добавлено: 08.07.04 20:17
А что мешает использовать поиск по класах окна в цикле?
Номер ответа: 8
Автор ответа:
vovka
Вопросов: 1
Ответов: 5
Профиль | | #8
Добавлено: 08.07.04 20:31
<b>aSharm</b>
ну не могу разобратся в этом, классы/окна
вот и прошу рабочий, что бы на примере разобратся
<b>sne</b>
пол дня с бубном пляшу
Номер ответа: 9
Автор ответа:
vovka
Вопросов: 1
Ответов: 5
Профиль | | #9
Добавлено: 08.07.04 20:32
и еще...
как тут теги работают?? в сообщениях
Номер ответа: 10
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #10
Добавлено: 08.07.04 21:32
Я сам не пойму... По-моему они здесь совсем не работают... Как я понял чтобюы работали html теги нужно нажимать на "Ответить", а квадратные, по-крайней мере в Опера, не работают...
ладно, пойду посмотрю как этот код работает...
Номер ответа: 11
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #11
Добавлено: 08.07.04 21:59
Вот глянул я и... у меня почему-то "WorkerA", это не какой не WorkerA, а "WorkerW"... Видать Юникод версия что-ли... не знаю
Но после модификации получилось вот такое (код взят http://vbnet.ru/faq/showtopic.asp?id=81):
Option Explicit
Private Declare Function shellexecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Long) As Long
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Private Declare Function SendMessageLong& Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long)
Private Declare Function SendMessageByString Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String) As Long
Const WM_USER = &H400
Const EM_LIMITTEXT = WM_USER + 21
Private Const WM_GETTEXT = &HD
Private Const WM_GETTEXTLENGTH = &HE
Private Const EM_GETLINECOUNT = &HBA
Private Const EM_LINEINDEX = &HBB
Private Const EM_LINELENGTH = &HC1
Private Sub Command1_Click()
On Error GoTo CallErrorA
 im iPos As Integer
 im sClassName As String
 im GetAddressText As String
 im lhwnd As Long, lhwndEx As Long
 im WindowHandle As Long
lhwnd = 0
sClassName = ("IEFrame"
lhwnd = FindWindowEx(lhwnd, 0, sClassName, vbNullString)
sClassName = ("WorkerA"
lhwndEx = FindWindowEx(lhwnd, 0, sClassName, vbNullString)
If lhwndEx = 0& Then
sClassName = ("WorkerW"
lhwnd = FindWindowEx(lhwnd, 0, sClassName, vbNullString)
Else
lhwnd = lhwndEx
End If
sClassName = ("ReBarWindow32"
lhwnd = FindWindowEx(lhwnd, 0, sClassName, vbNullString)
sClassName = ("ComboBoxEx32"
lhwnd = FindWindowEx(lhwnd, 0, sClassName, vbNullString)
sClassName = ("ComboBox"
lhwnd = FindWindowEx(lhwnd, 0, sClassName, vbNullString)
sClassName = ("Edit"
lhwnd = FindWindowEx(lhwnd, 0, sClassName, vbNullString)
WindowHandle& = lhwnd
 im buffer As String, TextLength As Long
TextLength& = SendMessage(WindowHandle&, WM_GETTEXTLENGTH, 0&, 0&
buffer$ = String(TextLength&, 0&
Call SendMessageByString(WindowHandle&, WM_GETTEXT, TextLength& + 1, buffer$)
MsgBox buffer$
Exit Sub
CallErrorA:
MsgBox Err.Description
Err.Clear
End Sub
ЗЫ
По идее тут все было написано верно...
Номер ответа: 12
Автор ответа:
vovka
Вопросов: 1
Ответов: 5
Профиль | | #12
Добавлено: 08.07.04 22:19
УРА!!!
СПАСИБО ДРУГ!!
выручил