Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: получение URLa из IE и Opera Добавлено: 08.07.04 00:59  

Автор вопроса:  vovka
Подскажите как получить какой текуйщий урл в броузере?? Я имею ввиду активного окна. С использованием хуков, название окна получается получить, а адрес нет.
:(

Ответить

  Ответы Всего ответов: 12  

Номер ответа: 1
Автор ответа:
 DaSharm



ICQ: 780477 

Вопросов: 72
Ответов: 1297
 Web-сайт: dasharm.com
 Профиль | | #1
Добавлено: 08.07.04 11:30
запусти Spy++ и пройдись по окнам, я только что сделал такое: в ИЕ без проблем. в Opera Spy++ не смог обнаружить поле ввода URL, нашел какое то окно OperaWindowClass.

Ответить

Номер ответа: 2
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #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-сайт: hw.t-k.ru
 Профиль | | #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-сайт: hw.t-k.ru
 Профиль | | #6
Добавлено: 08.07.04 20:11
колдуй колдун ;)

я конечно тоже гляну... может че-нить и получится... хотя навряд-ли...

Ответить

Номер ответа: 7
Автор ответа:
 DaSharm



ICQ: 780477 

Вопросов: 72
Ответов: 1297
 Web-сайт: dasharm.com
 Профиль | | #7
Добавлено: 08.07.04 20:17
А что мешает использовать поиск по класах окна в цикле?

Ответить

Номер ответа: 8
Автор ответа:
 vovka



Вопросов: 1
Ответов: 5
 Профиль | | #8 Добавлено: 08.07.04 20:31
<b>;DaSharm</b>
ну не могу разобратся в этом, классы/окна
вот и прошу рабочий, что бы на примере разобратся

<b>sne</b>
пол дня с бубном пляшу :)

Ответить

Номер ответа: 9
Автор ответа:
 vovka



Вопросов: 1
Ответов: 5
 Профиль | | #9 Добавлено: 08.07.04 20:32
и еще...
как тут теги работают?? в сообщениях

Ответить

Номер ответа: 10
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #10
Добавлено: 08.07.04 21:32
Я сам не пойму... По-моему они здесь совсем не работают... Как я понял чтобюы работали html теги нужно нажимать на "Ответить", а квадратные, по-крайней мере в Опера, не работают...

ладно, пойду посмотрю как этот код работает...

Ответить

Номер ответа: 11
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #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
    ;Dim iPos As Integer
    ;Dim sClassName As String
    ;Dim GetAddressText As String
    ;Dim lhwnd As Long, lhwndEx As Long
    ;Dim 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
    ;Dim 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
УРА!!!
СПАСИБО ДРУГ!!

выручил

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам