Что нового

[Мышь, клавиатура] Перехват нажатия ссылок во встроенном браузере

pboy

Новичок
Сообщения
18
Репутация
0
Есть браузер, встроенный в окно скрипта при помощи _IECreateEmbedded. Как сделать так, чтобы при нажатии в нём на ссылку страница открывалась не в этом встроенном браузере и не в новом окне IE, а в (совершенно другом) браузере, установленном в системе по умолчанию?
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
pboy,
Смотрите в справке 5-ый пример к функции _IEHeadInsertEventScript.
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
На любую ссылку или на определенную?
 
Автор
P

pboy

Новичок
Сообщения
18
Репутация
0
На любую, так как ссылки и их количество постоянно меняются.
 

alex33

Скриптер
Сообщения
1,457
Репутация
186
pboy сказал(а):
Есть браузер, встроенный в окно скрипта при помощи _IECreateEmbedded. Как сделать так, чтобы при нажатии в нём на ссылку страница открывалась не в этом встроенном браузере и не в новом окне IE, а в (совершенно другом) браузере, установленном в системе по умолчанию?
Код:
Opt("GUICloseOnESC", 0)
#include <IE.au3>
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>
Global $sCode, $oIE

$sCode = "<html><body><table width=100% height=100%><tr><td align=center>" & _
		"<a href='http://google.ru/'>Google</a>
" & _
		"<a href='http://yandex.ru/'>Yandex</a>
" & _
		"<a href='http://mail.ru/'>MailRu</a>" & _
		"</td></tr></table></body></html>"

$oIE = _IECreateEmbedded()
Global $gui = GUICreate("test event", 640, 580, (@DesktopWidth - 640) / 2, (@DesktopHeight - 580) / 2, $WS_OVERLAPPEDWINDOW + $WS_CLIPSIBLINGS + $WS_CLIPCHILDREN)
Global $obj = GUICtrlCreateObj($oIE, 10, 40, 600, 360)
GUICtrlSetState($obj, $GUI_FOCUS)
GUISetState(@SW_SHOW)
_IENavigate($oIE, "about:blank")
_IEAction($oIE, "stop")
$oIE.document.open()
$oIE.document.write($sCode)
$oIE.document.close()
$oLinks = _IELinkGetCollection($oIE)
For $oLink In $oLinks
	$sLinkId = _IEPropertyGet($oLink, "uniqueid")
	_IEHeadInsertEventScript($oIE, $sLinkId, "onclick", "return false;")
	_IEHeadInsertEventScript($oIE, $sLinkId, "oncontextmenu", "return false;")
	ObjEvent($oLink, "_Evt_")
Next

While 1
	Switch GUIGetMsg()
		Case $GUI_EVENT_CLOSE
			ExitLoop
	EndSwitch
WEnd
GUIDelete()

Func _Evt_onClick()
	Local $o_link = @COM_EventObj
	ConsoleWrite($o_link.href & @CRLF)
	ShellExecute($o_link.href)
EndFunc   ;==>_Evt_onClick
 
Верх