kleines Problem mitm IE

  • Hallo.

    Ich habe eine GUI & will, wenn man einen Menüpunkt wählt, in einer neuen GUI ein IE-Fenster geöffnet wird.

    Gelöst habe ich das so:

    Spoiler anzeigen
    [autoit]


    ;.....
    #include <IE.au3>
    ;....Scriptcode
    ;Case xxx
    $oIE = _IECreateEmbedded ()
    GUICreate("xxx", 800, 600)
    GUICtrlCreateObj($oIE, 0, 0, 800, 600)
    GUISetState()
    $BeendenIE = GUICtrlCreateButton("Beenden", 648, 568, 113, 25)
    _IENavigate ($oIE, "http://autoit.de")

    [/autoit] [autoit][/autoit] [autoit]

    While GUIGetMsg()<>-3
    WEnd

    [/autoit]

    Soo..das einzige Problem: wenn man das IE-Fenster schließt, schließt sich auch die erste GUI, das Hauptprogramm. Wie kann ich das richtig machen?
    Vielen Dank.

    Einmal editiert, zuletzt von Deep Volcano (22. April 2011 um 21:38)

  • ich kriegs nich hin ....

    [autoit]

    $oIE = _IECreateEmbedded ()
    $Antivirus = GUICreate("xxx", 800, 600)
    GUICtrlCreateObj($oIE, 0, 0, 800, 600)
    GUISetState()
    $BeendenIE = GUICtrlCreateButton("Beenden", 648, 568, 113, 25)
    _IENavigate ($oIE, "http://autoit.de")
    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    MsgBox(0, "", "Dialog was closed")
    Exit
    Case $msg = $GUI_EVENT_MINIMIZE
    MsgBox(0, "", "Dialog minimized", 2)
    Case $msg = $GUI_EVENT_MAXIMIZE
    MsgBox(0, "", "Dialog restored", 2)

    [/autoit][autoit][/autoit][autoit]

    EndSelect
    WEnd

    [/autoit]
  • Grob gemacht:

    [autoit]

    #include <IE.au3>
    $Gui = GUICreate("HauptGUI", 150, 150)
    $hButton = GUICtrlCreateButton("neues IE GUI", 0, 0)
    GUISetState()

    [/autoit][autoit][/autoit][autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $hButton
    _NewGUI()
    Case -3
    Exit
    EndSwitch
    WEnd

    [/autoit][autoit][/autoit][autoit]

    Func _NewGUI()
    $oIE = _IECreateEmbedded()
    $hIEGUI = GUICreate("IE GUI", 500, 500)
    GUICtrlCreateObj($oIE, 0, 0, 500, 500)
    GUISetState(@SW_SHOW, $hIEGUI)
    $oIE.navigate("www.autoit.de")
    While GUIGetMsg() <> -3
    WEnd
    GUIDelete($hIEGUI)
    EndFunc ;==>_NewGUI

    [/autoit]
  • Hallo Deep Vulcano,

    mach es mit GuiGetMsg(1)

    Spoiler anzeigen
    [autoit]

    #cs ----------------------------------------------------------------------------

    [/autoit] [autoit][/autoit] [autoit]

    AutoIt Version: 3.3.6.1
    Author: AutoBert: http://www.autoit.de/index.php?page…4679#post164679

    [/autoit] [autoit][/autoit] [autoit]

    Skriptbeispiel für den Umgang mit _IECreateEmbedded, _IEErrorHandlerRegister, _IENavigate, _IEAction GuiCtrlCreateProgress, _IEPropertyGet
    #ce ----------------------------------------------------------------------------
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <IE.au3>

    [/autoit] [autoit][/autoit] [autoit]

    $hStarter = GUICreate("IE-Starter", 600, 400)
    $hStart = GUICtrlCreateButton("IE &starten", 5, 5)
    GUISetState(@SW_SHOW)

    [/autoit] [autoit][/autoit] [autoit]

    _IEErrorHandlerRegister()

    [/autoit] [autoit][/autoit] [autoit]

    $oIE = _IECreateEmbedded()
    $SinkObject = ObjEvent($oIE, "IEEvent_", "DWebBrowserEvents2") ; Ereignisse den UDFs zuweisen, beginnend mit IEEvent_
    $hIE = GUICreate("Embedded Web control Test", 640, 600, _
    (@DesktopWidth - 640) / 2, (@DesktopHeight - 580) / 2, _
    $WS_OVERLAPPEDWINDOW + $WS_VISIBLE + $WS_CLIPSIBLINGS + $WS_CLIPCHILDREN)
    GUISetState(@SW_HIDE)
    $hInput = GUICtrlCreateInput("Hier URL eingeben: ", 10, 10, 500)
    $hGo = GUICtrlCreateButton("&Go", 520, 10, 50)
    $GUIActiveX = GUICtrlCreateObj($oIE, 0, 40, 658, 498)
    GUICtrlSetResizing($GUIActiveX, $GUI_DOCKAUTO)
    $idProgress = GUICtrlCreateProgress(0, 520, 640, 28)
    GUICtrlSetResizing(-1, $GUI_DOCKSTATEBAR)

    [/autoit] [autoit][/autoit] [autoit]

    $bFirst = True

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ; Waiting for user to close the window
    While 1
    $msg = GUIGetMsg(1)
    Switch $msg[1] ;prüft vo welchem Fenster die Benachrichtugun ist
    Case $hStarter ;
    Switch $msg[0]
    Case $GUI_EVENT_CLOSE
    Exit
    Case $hStart
    GUISetState(@SW_SHOW, $hIE)
    GUISetState(@SW_HIDE, $hStarter)
    If $bFirst Then
    _IENavigate($oIE, "http://www.autoit.de/index.php?page=Thread&postID=164679#post164679")
    $bFirst = False
    EndIf
    EndSwitch
    Case $hIE
    Switch $msg[0]
    Case $GUI_EVENT_CLOSE
    GUISetState(@SW_SHOW, $hStarter)
    GUISetState(@SW_HIDE, $hIE)

    [/autoit] [autoit][/autoit] [autoit]

    Case $hGo
    _IENavigate($oIE, GUICtrlRead($hInput))
    EndSwitch
    EndSwitch
    WEnd

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $SinkObject = 0 ; IE Eventzuweisung aufheben
    $oIE.Quit ; IE beenden
    $oIE = 0
    Exit

    [/autoit] [autoit][/autoit] [autoit]

    Func IEEvent_ProgressChange($Progress, $ProgressMax)
    $percent = Int(($Progress * 100) / $ProgressMax)
    If $percent >= 0 And $percent <= 100 Then GUICtrlSetData($idProgress, $percent)
    EndFunc ;==>IEEvent_ProgressChange

    [/autoit]

    mfg autoBert