Je me remet doucement à la programmation "autoit" après des années d'abstinence
Je vous relate mon problème.
En gros j'essaie depuis ma GUI, j'ai un "GUICtrlCreateObj" qui ouvre une fenêtre sur une caméra IP et je veux sélectionner différent paramètres.
Mon hic, c'est que je n'ai pas de form, mais uniquement qu'un "<select id="select_Language" onchange="set_language(value)" name="select">"
Voici le code de mon programme:
► Afficher le texteMon code
#include <GUIConstantsEx.au3>
#include <IE.au3>
#include <ProgressConstants.au3>
#include <WindowsConstants.au3>
$width = 260
$height = 300
$couleur = 0x0562A7
Global $aUtil_MinMax[4]
$titre = "CAC"
SplashTextOn($titre, "Chargement en cours...", 220, 40, -1, -1, 32)
$ieembedded = ObjCreate("Shell.Explorer.2")
$GUI = GUICreate($titre, $width, $height, -1, -1, $WS_MAXIMIZEBOX + $WS_MINIMIZEBOX + $WS_SIZEBOX)
; couleur fenetre
GUISetBkColor($couleur)
; Adresse
$urllabel = GUICtrlCreateLabel("Adresse:",5,10,50,20)
$urlinput = GUICtrlCreateInput("http://192.168.0.33:8098", 60, 8, $width - 90, 20)
GUICtrlSetTip(-1, "ex: http://192.168.1.21:8081/")
GUICtrlSetFont(-1, 10, -1, -1, "Tahoma")
; Langue
$langlabel = GUICtrlCreateLabel("Langue:",5,35,50,20)
$langinput = GUICtrlCreateCombo("English", 60, 31, $width - 90, 20) ; create first item
GUICtrlSetData(-1, "Deutsch|Française", "Française") ; add other item snd set a new default
GUICtrlSetTip(-1, "ex: Français")
GUICtrlSetFont(-1, 10, -1, -1, "Tahoma")
; Nom
$namelabel = GUICtrlCreateLabel("Nom:",5,60,50,20)
$nameinput = GUICtrlCreateInput("Caméra test", 60, 58, $width - 90, 20)
GUICtrlSetTip(-1, "ex: Caméra 1")
GUICtrlSetFont(-1, 10, -1, -1, "Tahoma")
;;; Valider l'Adresse
$execute = GUICtrlCreateButton("Exécuter", 5, $height - 100, $width - 30, 30)
GUICtrlSetCursor($execute, 0)
; Fenêtre IE
$ieembedded = _IECreateEmbedded()
$iecreateobj = GUICtrlCreateObj($ieembedded, $width - 20, 8, 10, $height - 80)
ObjEvent($ieembedded, "IEEvent_", "DWebBrowserEvents")
;Définition du Footer (StatusBar)
$google_GroupFinal = GUICtrlCreateGroup("", 5, $height - 60, $width - 15, 30)
$google_Statut = GUICtrlCreateLabel("Terminé", 12, $height - 49, 100, 15)
$google_ProgressPage = GUICtrlCreateProgress($width - 20, $height - 54, 10, 24, $PBS_SMOOTH)
;Informations sur le Redimentionnement
GUICtrlSetResizing($urllabel, $GUI_DOCKLEFT + $GUI_DOCKTOP + $GUI_DOCKSIZE)
GUICtrlSetResizing($urlinput, $GUI_DOCKLEFT + $GUI_DOCKTOP + $GUI_DOCKSIZE)
GUICtrlSetResizing($langlabel, $GUI_DOCKLEFT + $GUI_DOCKTOP + $GUI_DOCKSIZE)
GUICtrlSetResizing($langinput, $GUI_DOCKLEFT + $GUI_DOCKTOP + $GUI_DOCKSIZE)
GUICtrlSetResizing($namelabel, $GUI_DOCKLEFT + $GUI_DOCKTOP + $GUI_DOCKSIZE)
GUICtrlSetResizing($nameinput, $GUI_DOCKLEFT + $GUI_DOCKTOP + $GUI_DOCKSIZE)
GUICtrlSetResizing($execute, $GUI_DOCKLEFT + $GUI_DOCKTOP + $GUI_DOCKSIZE)
;GUICtrlSetResizing($ieembedded, $GUI_DOCKLEFT)
GUICtrlSetResizing($iecreateobj, $GUI_DOCKLEFT + $GUI_DOCKTOP + $GUI_DOCKRIGHT + $GUI_DOCKBOTTOM)
GUICtrlSetResizing($google_GroupFinal, $GUI_DOCKRIGHT + $GUI_DOCKBOTTOM + $GUI_DOCKLEFT + $GUI_DOCKHEIGHT)
GUICtrlSetResizing($google_Statut, $GUI_DOCKLEFT + $GUI_DOCKBOTTOM + $GUI_DOCKSIZE)
GUICtrlSetResizing($google_ProgressPage, $GUI_DOCKLEFT + $GUI_DOCKBOTTOM + $GUI_DOCKRIGHT + $GUI_DOCKSIZE)
;;; fin de l'affichage du texte
SplashOff()
GUISetState(@SW_SHOW) ; will display an empty dialog box
InitMinMax($width + 14, $height + 14) ; C'est ici que l'on règle les valeurs Min de la fenêtre.
$ieembedded.navigate("blank")
While 1
$msg = GUIGetMsg()
If $msg = $GUI_EVENT_CLOSE Then ExitLoop
Select
Case $msg = $execute
If GUICtrlRead($urlinput) == '' Then
MsgBox(48, "", "L'adresse local n'a pas été renseigné")
ElseIf GUICtrlRead($nameinput) == '' Then
MsgBox(48, "", "Le nom de la caméra n'a pas été renseigné")
Else
WinSetState($GUI,"",@SW_MAXIMIZE); agrandir la fenêtre
$ieembedded.navigate(GUICtrlRead($urlinput)) ; aller à la page de la caméra
; ici que faire
EndIf
EndSelect
WEnd
Func InitMinMax($x0, $y0)
Local Const $WM_GETMINMAXINFO = 0x24
$aUtil_MinMax[0] = $x0
$aUtil_MinMax[1] = $y0
GUIRegisterMsg($WM_GETMINMAXINFO, 'MY_WM_GETMINMAXINFO')
EndFunc ;==>InitMinMax
Func MY_WM_GETMINMAXINFO($hWnd, $msg, $wParam, $lParam)
Local $minmaxinfo = DllStructCreate('int;int;int;int;int;int;int;int;int;int', $lParam)
DllStructSetData($minmaxinfo, 7, $aUtil_MinMax[0]); min X
DllStructSetData($minmaxinfo, 8, $aUtil_MinMax[1]); min Y
Return $GUI_RUNDEFMSG
EndFunc ;==>MY_WM_GETMINMAXINFO
Func IEEvent_StatusTextChange($TEXT)
GUICtrlSetData($google_Statut, $TEXT)
EndFunc ;==>IEEvent_StatusTextChange
Func IEEvent_ProgressChange($PROGRESS, $PROGRESS_MAX)
If $PROGRESS_MAX > 0 Then
GUICtrlSetData($google_ProgressPage, ($PROGRESS * 100) / $PROGRESS_MAX)
EndIf
EndFunc ;==>IEEvent_ProgressChange
#include <IE.au3>
#include <ProgressConstants.au3>
#include <WindowsConstants.au3>
$width = 260
$height = 300
$couleur = 0x0562A7
Global $aUtil_MinMax[4]
$titre = "CAC"
SplashTextOn($titre, "Chargement en cours...", 220, 40, -1, -1, 32)
$ieembedded = ObjCreate("Shell.Explorer.2")
$GUI = GUICreate($titre, $width, $height, -1, -1, $WS_MAXIMIZEBOX + $WS_MINIMIZEBOX + $WS_SIZEBOX)
; couleur fenetre
GUISetBkColor($couleur)
; Adresse
$urllabel = GUICtrlCreateLabel("Adresse:",5,10,50,20)
$urlinput = GUICtrlCreateInput("http://192.168.0.33:8098", 60, 8, $width - 90, 20)
GUICtrlSetTip(-1, "ex: http://192.168.1.21:8081/")
GUICtrlSetFont(-1, 10, -1, -1, "Tahoma")
; Langue
$langlabel = GUICtrlCreateLabel("Langue:",5,35,50,20)
$langinput = GUICtrlCreateCombo("English", 60, 31, $width - 90, 20) ; create first item
GUICtrlSetData(-1, "Deutsch|Française", "Française") ; add other item snd set a new default
GUICtrlSetTip(-1, "ex: Français")
GUICtrlSetFont(-1, 10, -1, -1, "Tahoma")
; Nom
$namelabel = GUICtrlCreateLabel("Nom:",5,60,50,20)
$nameinput = GUICtrlCreateInput("Caméra test", 60, 58, $width - 90, 20)
GUICtrlSetTip(-1, "ex: Caméra 1")
GUICtrlSetFont(-1, 10, -1, -1, "Tahoma")
;;; Valider l'Adresse
$execute = GUICtrlCreateButton("Exécuter", 5, $height - 100, $width - 30, 30)
GUICtrlSetCursor($execute, 0)
; Fenêtre IE
$ieembedded = _IECreateEmbedded()
$iecreateobj = GUICtrlCreateObj($ieembedded, $width - 20, 8, 10, $height - 80)
ObjEvent($ieembedded, "IEEvent_", "DWebBrowserEvents")
;Définition du Footer (StatusBar)
$google_GroupFinal = GUICtrlCreateGroup("", 5, $height - 60, $width - 15, 30)
$google_Statut = GUICtrlCreateLabel("Terminé", 12, $height - 49, 100, 15)
$google_ProgressPage = GUICtrlCreateProgress($width - 20, $height - 54, 10, 24, $PBS_SMOOTH)
;Informations sur le Redimentionnement
GUICtrlSetResizing($urllabel, $GUI_DOCKLEFT + $GUI_DOCKTOP + $GUI_DOCKSIZE)
GUICtrlSetResizing($urlinput, $GUI_DOCKLEFT + $GUI_DOCKTOP + $GUI_DOCKSIZE)
GUICtrlSetResizing($langlabel, $GUI_DOCKLEFT + $GUI_DOCKTOP + $GUI_DOCKSIZE)
GUICtrlSetResizing($langinput, $GUI_DOCKLEFT + $GUI_DOCKTOP + $GUI_DOCKSIZE)
GUICtrlSetResizing($namelabel, $GUI_DOCKLEFT + $GUI_DOCKTOP + $GUI_DOCKSIZE)
GUICtrlSetResizing($nameinput, $GUI_DOCKLEFT + $GUI_DOCKTOP + $GUI_DOCKSIZE)
GUICtrlSetResizing($execute, $GUI_DOCKLEFT + $GUI_DOCKTOP + $GUI_DOCKSIZE)
;GUICtrlSetResizing($ieembedded, $GUI_DOCKLEFT)
GUICtrlSetResizing($iecreateobj, $GUI_DOCKLEFT + $GUI_DOCKTOP + $GUI_DOCKRIGHT + $GUI_DOCKBOTTOM)
GUICtrlSetResizing($google_GroupFinal, $GUI_DOCKRIGHT + $GUI_DOCKBOTTOM + $GUI_DOCKLEFT + $GUI_DOCKHEIGHT)
GUICtrlSetResizing($google_Statut, $GUI_DOCKLEFT + $GUI_DOCKBOTTOM + $GUI_DOCKSIZE)
GUICtrlSetResizing($google_ProgressPage, $GUI_DOCKLEFT + $GUI_DOCKBOTTOM + $GUI_DOCKRIGHT + $GUI_DOCKSIZE)
;;; fin de l'affichage du texte
SplashOff()
GUISetState(@SW_SHOW) ; will display an empty dialog box
InitMinMax($width + 14, $height + 14) ; C'est ici que l'on règle les valeurs Min de la fenêtre.
$ieembedded.navigate("blank")
While 1
$msg = GUIGetMsg()
If $msg = $GUI_EVENT_CLOSE Then ExitLoop
Select
Case $msg = $execute
If GUICtrlRead($urlinput) == '' Then
MsgBox(48, "", "L'adresse local n'a pas été renseigné")
ElseIf GUICtrlRead($nameinput) == '' Then
MsgBox(48, "", "Le nom de la caméra n'a pas été renseigné")
Else
WinSetState($GUI,"",@SW_MAXIMIZE); agrandir la fenêtre
$ieembedded.navigate(GUICtrlRead($urlinput)) ; aller à la page de la caméra
; ici que faire
EndIf
EndSelect
WEnd
Func InitMinMax($x0, $y0)
Local Const $WM_GETMINMAXINFO = 0x24
$aUtil_MinMax[0] = $x0
$aUtil_MinMax[1] = $y0
GUIRegisterMsg($WM_GETMINMAXINFO, 'MY_WM_GETMINMAXINFO')
EndFunc ;==>InitMinMax
Func MY_WM_GETMINMAXINFO($hWnd, $msg, $wParam, $lParam)
Local $minmaxinfo = DllStructCreate('int;int;int;int;int;int;int;int;int;int', $lParam)
DllStructSetData($minmaxinfo, 7, $aUtil_MinMax[0]); min X
DllStructSetData($minmaxinfo, 8, $aUtil_MinMax[1]); min Y
Return $GUI_RUNDEFMSG
EndFunc ;==>MY_WM_GETMINMAXINFO
Func IEEvent_StatusTextChange($TEXT)
GUICtrlSetData($google_Statut, $TEXT)
EndFunc ;==>IEEvent_StatusTextChange
Func IEEvent_ProgressChange($PROGRESS, $PROGRESS_MAX)
If $PROGRESS_MAX > 0 Then
GUICtrlSetData($google_ProgressPage, ($PROGRESS * 100) / $PROGRESS_MAX)
EndIf
EndFunc ;==>IEEvent_ProgressChange
Bon DEV

