Что нового

Как получить адрес ссылки под курсором?

Dimmak

Знающий
Сообщения
185
Репутация
9
В IE при наведении на ссылку указатель меняется со стрелки на руку.
Подскажите, как с этого места получить адрес ссылки под курсором? :scratch:
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Dimmak,
В русской справке: Описание Obj/COM -> COM события -> Нажмите здесь , чтобы посмотреть итоговый скрипт. Посмотрите функцию IEEvent_StatusTextChange().
 
Автор
Dimmak

Dimmak

Знающий
Сообщения
185
Репутация
9
madmasles, спасибо за ответ.
Посмотрел пример и информацию в справке... :whistle:
Можно ли получить текст под курсором в IE с ипользованием библиотеки <IE.au3> или данное действие осуществимо только с использованием COM\Object? :scratch:
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Код:
#include <ie.au3>
Local $oIe = _IEAttach('http://autoit-script.ru/','URL')
Local $text_old
While Sleep(100)
	$s = _IEPropertyGet ( $oIe, 'statustext' )
	If $s And $text_old <> $s Then
		$text_old = $s
		ToolTip($s)
	EndIf
WEnd
 
Автор
Dimmak

Dimmak

Знающий
Сообщения
185
Репутация
9
inververs спасибо!
Именно то, что нужно! :ok:
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Dimmak,
Код:
#include <IE.au3>

Global $oIE, $oEventObject

$oIE = _IECreate('http://autoit-script.ru/')
$hWnd = _IEPropertyGet($oIE, 'hwnd')
$oEventObject = ObjEvent($oIE, 'IEEvent_', 'DWebBrowserEvents')
While WinExists($hWnd)
    Sleep(500)
WEnd
$oIE = 0
$oEventObject = 0

Func IEEvent_StatusTextChange($s_Text)
    If StringInStr($s_Text, '://') Then
        ToolTip($s_Text, 0, 0)
    Else
        ToolTip('No link event', 0, 0)
    EndIf
EndFunc   ;==>IEEvent_StatusTextChange
 
Автор
Dimmak

Dimmak

Знающий
Сообщения
185
Репутация
9
..Еще вариант:
Код:
#include <IE.au3>

_IECreate( 'http://autoit-script.ru/' )
	$hWnd= WinWait( '[CLASS:IEFrame]' )
		$hCtrl= ControlGetHandle( $hWnd, '', '[CLASS:msctls_statusbar32; INSTANCE:1]' )

	Local $bool, $s, $cursor
While 1
    $cursor= MouseGetCursor()
		If $bool Then
			If $cursor<> 16 Then
				$bool= False
					ToolTip( '' )
			EndIf
		Else
			If $cursor= 16 Then
				$s= ControlGetText( $hWnd, '', $hCtrl )
					If StringLeft( $s, 4 )= 'http' Then
						ToolTip( $s )
							$bool= True
					EndIf
			EndIf
		EndIf
	Sleep( 100 )
WEnd
:IL_AutoIt_1:
 
Верх