Crée un objet Webbrowser adapté à l'intégration dans une GUI AutoIt avec GUICtrlCreateObj()
#include <IE.au3>
_IECreateEmbedded ( )
Succès: | Retourne une référence à un objet Webbrowser. |
Échec: | Définit @error <> 0. |
@error: | 1 ($_IEStatus_GeneralError) - Erreur générale |
Aucune action ne peut être effectuée sur cet objet tant qu'il n'a pas été intégré dans une application parent (par exemple, vous ne pouvez pas effectuer une _IENavigate().
En raison de cette restriction, le navigateur n'est pas automatiquement conneté à 'about:blank' comme un navigateur créé avec _IECreate().
Vous devez donc utiliser _IENavigate() pour connecter ce navigateur à 'about:blank' après qu'il ait été intégré dans une application parent et avant de tenter des opérations sur un document ayant été chargé (par exemple _IEBodyWriteHTML()).
Il y a plusieurs propriétés liées à un objet InternetExplorer (par exemple retournées par _IECreate()) qui ne s'appliquent pas à cet objet.
Il s'agit notamment du statut du texte, de la barre d'adresse et d'autres qui peuvent exister pour un navigateur, mais qui n'existent pas pour un contrôle intégré.
Vous pouvez avoir des problèmes de visibilité d'objet sauf si vous utilisez le style $WS_CLIPCHILDREN de Windows dans GUICreate().
_IEQuit() ne peut pas être utilisée avec cet objet. L'objet sera détruit quand la GUI parente sera détruite.
_IEAttach, _IECreate, _IENavigate
; Intercepte des erreurs COM comme 'Back' et 'Forward' ; en dehors des limites historiques qui n'interrompent pas le script ; (attend les erreurs COM pour les envoyer à la console) #include <GUIConstantsEx.au3> #include <IE.au3> #include <WindowsConstants.au3> Local $oIE = _IECreateEmbedded() GUICreate("Embedded Web control Test", 640, 580, _ (@DesktopWidth - 640) / 2, (@DesktopHeight - 580) / 2, _ $WS_OVERLAPPEDWINDOW + $WS_CLIPSIBLINGS + $WS_CLIPCHILDREN) GUICtrlCreateObj($oIE, 10, 40, 600, 360) Local $idButton_Back = GUICtrlCreateButton("Back", 10, 420, 100, 30) Local $idButton_Forward = GUICtrlCreateButton("Forward", 120, 420, 100, 30) Local $idButton_Home = GUICtrlCreateButton("Home", 230, 420, 100, 30) Local $idButton_Stop = GUICtrlCreateButton("Stop", 340, 420, 100, 30) Global $g_idError_Message = GUICtrlCreateLabel("", 100, 500, 500, 30) GUICtrlSetColor(-1, 0xff0000) GUISetState(@SW_SHOW) ; Affiche la GUI _IENavigate($oIE, "http://www.autoitscript.com") _IEAction($oIE, "stop") ; Attend que l'utilisateur ferme la fenêtre Local $iMsg = GUIGetMsg() While $iMsg <> $GUI_EVENT_CLOSE Select Case $iMsg = $idButton_Home _IENavigate($oIE, "http://www.autoitscript.com") _IEAction($oIE, "stop") _IEAction($oIE, "back") CheckError("Home", @error, @extended) Case $iMsg = $idButton_Back _IEAction($oIE, "back") CheckError("Back", @error, @extended) Case $iMsg = $idButton_Forward _IEAction($oIE, "forward") CheckError("Forward", @error, @extended) Case $iMsg = $idButton_Stop _IEAction($oIE, "stop") CheckError("Stop", @error, @extended) EndSelect $iMsg = GUIGetMsg() WEnd GUIDelete() Exit Func CheckError($sMsg, $iError, $iExtended) If $iError <> 0 Then $sMsg = "Erreur d'utilisation " & $sMsg & " bouton (" & $iExtended & ")" Else $sMsg = "" EndIf GUICtrlSetData($g_idError_Message, $sMsg) EndFunc ;==>CheckError