SplashImageOn Animation

  • Hallo,

    ich wollte eine Gif Animation einbinden.

    [autoit]


    $destination = @ScriptDir & "\logo.gif"
    SplashImageOn("Logo", $destination,400,400)
    Sleep(5000)

    [/autoit]

    Die gif Datei ist im Hintergrund schwarz und animiert nicht.

    Mein Test:
    Datei mit rechtsklick mit dem InternetExplorer geöffnet
    Die Animation läuft, d.h. die logo.gif ist in Ordnung

    Grüße
    Ilse ;)

    2 Mal editiert, zuletzt von Ilse (2. November 2010 um 10:46)

  • Versuch es mal als Gui zu machen mit $WS_POPUP.

    Edit:
    Hab da mal was gebastelt:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

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

    $hGui = GUICreate("", 238, 350, -1, -1, $WS_POPUP)
    $oIE = ObjCreate("Shell.Explorer.2")
    GUICtrlCreateObj($oIE, 0, 0, 238, 350)
    $oIE.navigate("about:blank")
    $oIE.document.body.style.border = "0px"
    $oIE.document.body.background = @ScriptDir& "\Musiker303.gif"
    $oIE.document.body.scroll = "no"
    GUISetState()

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

    While 1
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

    [/autoit]


    Danke an Jam00 ;).

    2 Mal editiert, zuletzt von m-obi (27. Oktober 2010 um 22:30)

  • Guten Morgen m-obi,

    merci für dein Script.
    Wenn ich das alleine starte funktioniert es.

    Nur schaffe ich es nicht das korrekt im Code zu plazieren.
    Wenn das Fenster sich öffnen, wird der Loop nicht mehr ausgeführt.

    Ich möchte es mit einem Button starten:

    [autoit]


    Case $btnsuche
    For $i=1 to 10
    ;Code

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

    $hGui = GUICreate("", 238, 350, -1, -1, $WS_POPUP)
    $oIE = ObjCreate("Shell.Explorer.2")
    GUICtrlCreateObj($oIE, 0, 0, 238, 350)
    $oIE.navigate("about:blank")
    $oIE.document.body.style.border = "0px"
    $oIE.document.body.background = @ScriptDir& "\logo.gif"
    $oIE.document.body.scroll = "no"
    GUISetState()

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

    ;Code
    next

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

    In meinem Hintergrund läuft ein IE Fenster.
    Darauf soll nun dieses Fenster plaziert werden.
    Sobald ich auf den Button klicke soll das Fenster sich öffnen
    der Loop läuft und arbeitet im Hintergrund, ...das Logo
    sollte also nur drübergelegt werden bis der Loop fertig ist.

    Das logo kann ich zwar drüberlegen, aber dann passiert nichts!

    Mal noch ne Frage:
    Kann man das auch mit einer Flash Datei machen *.swf?

    Grüße
    Ilse ;)

  • Was soll denn passieren? Vielleicht mal den Code posten, wo es rein soll. Für Shockwave Flash musst du nur was andees angeben bei ObjCreate. Aber da wirst du mit der SuFu fündig.

  • hier mal den Ausschnitt wo es rein soll:

    [autoit]


    Case $btnsuche
    For $i=1 to 10
    ; hier sollte das ganze rein
    ; das funktioniert ohne Animation als SplashImage
    $destination = @ScriptDir & "\logo.gif"
    SplashImageOn("Bitte warten", $destination,400,400)
    Sleep(5000)

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

    ; dann kommt der eigentliche Teil des Buttons...
    $iIE = UBound($oIE)
    $WebAnzeiger = IniRead($openini, "Link", $i, "NotFound")

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

    $Test = _IENavigate($oIE[$iIE],$WebAnzeiger)

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

    next
    MsgBox(4,"Beendet","Ende")

    [/autoit]

    Ich habe mal eine Flash animation gemacht
    die in einer html Datei integriert ist (page1.html)
    wenn ich diese Datei starte öffnet sich der Explorer mit der Animation.

    Wie kann man z.B. diese Datei als popup-Fenster nutzen, wenn man auf den Button klickt?
    Das wäre toll wenn das machbar wäre

    In der SUFU habe ich was gefunden

    [autoit]


    $gui = GUICreate("Flash-GUI", 300, 300, Default, Default, 0x80000000)
    $obj = ObjCreate("ShockwaveFlash.ShockwaveFlash")
    $test = GUICtrlCreateObj($obj, 0, 0, 300, 300)
    With $obj
    .Movie = @ScriptDir & "\flash2.swf" ; Pfad zur SWF
    .wmode = "transparent" ; Transparenz was nicht funktioniert
    EndWith
    GUISetState()
    ;WinSetTrans($gui,"",50)
    Do
    Until GUIGetMsg() = -3 ; Escape beendet

    [/autoit]

    wird beim Start ausgeführt, nur der Loop funktioniert nicht.
    Wenn ich die Zeilen lösche, dann funktioniert der Loop!
    Grüße
    Ilse ;)

    Einmal editiert, zuletzt von Ilse (28. Oktober 2010 um 10:47)

  • Ich hab mal dein $oIE in $aIE umgewandelt, schließlich ist es ja kein Objekt, sondern ein Array. vergess nicht das in deinem restlichen Code auch zu ändern.
    Versuch mal das:

    Spoiler anzeigen
    [autoit]

    Case $btnsuche
    For $i = 1 To 10
    $hLogo = GUICreate("", 400, 400, -1, -1, $WS_POPUP)
    $oIE = ObjCreate("Shell.Explorer.2")
    GUICtrlCreateObj($oIE, 0, 0, 400, 400)
    $oIE.navigate("about:blank")
    $oIE.document.body.style.border = "0px"
    $oIE.document.body.background = @ScriptDir & "\logo.gif"
    $oIE.document.body.scroll = "no"
    GUISetState()

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

    Sleep(5000)

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

    GUIDelete($hLogo)

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

    $iIE = UBound($aIE)
    $WebAnzeiger = IniRead($openini, "Link", $i, "NotFound")
    $Test = _IENavigate($aIE[$iIE], $WebAnzeiger)
    Next
    MsgBox(4, "Beendet", "Ende")

    [/autoit]

    Übrigens wird dir das hier einen Fehler rausschmeissen:

    [autoit]

    $Test = _IENavigate($aIE[$iIE], $WebAnzeiger)

    [/autoit]


    da du ja vorher das machst

    [autoit]

    $iIE = UBound($aIE)

    [/autoit]


    Naja du weißt schon was du tust.

  • Du kannst dir eigentlich selber erklären warum der Loop nicht funktioniert. Schließlich steckst du in der Do-Until-Schleife, bis du die Gui mit dem SWF schließt.

  • ich hab's jetzt irgendwie zu laufen gebracht!
    Merci.

    Eine Frage noch

    [autoit]


    $obj2 = ObjCreate("ShockwaveFlash.ShockwaveFlash")
    $test2 = GUICtrlCreateObj($obj2, 100,100,100,100)
    With $obj2
    .Movie = @ScriptDir & "\flash1.swf" ; Pfad zur SWF
    EndWith
    GUISetState()

    [/autoit]

    $test2

    Zitat

    also die animation
    kann man die irgendwie immer in der Mitte des Fensters anzeigen?

    ich habe in der Hilfe nichts gefunden. Center...oder so etwas

    Was noch komisch ist,

    Zitat

    Das Internetfenster (also der Hintergrund) wird von der Flash Datei
    verwischt! Sieht nicht sonderlich elegant aus.

    Ich habe den do until Loop entfernt,
    bin also in der For Schleife drin
    wie kann ich die Flash animation
    wenn die For Schleife fertig ist, beenden?

    [autoit]


    ;$gui2 = GUICreate("Flash-GUI", 300, 300, Default, Default, 0x80000000)

    [/autoit]


    das mußte ich deaktivieren.
    Es gibt also keine Gui die animation läuft auf dem IE Fenster
    und muß beendet werden, wenn die Schleife fertig ist. Huh...

    Einmal editiert, zuletzt von Ilse (28. Oktober 2010 um 12:06)

  • ich kann die SWF Datei einfach nicht beenden:

    Mein Code

    [autoit]


    Case $btnsuche
    For $i=1 to 3 Step +1

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

    ; DIE FLASH ANIMATION--------------------------------------
    ;$gui2 = GUICreate("Flash-GUI", 1000, 800, Default, Default, 0x80000000)
    $obj2 = ObjCreate("ShockwaveFlash.ShockwaveFlash")
    $test2 = GUICtrlCreateObj($obj2, 100,100,800,600)
    With $obj2
    .Movie = @ScriptDir & "\flash2.swf" ; Pfad zur SWF
    .wmode = "transparent" ; Transparenz was nicht funktioniert

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

    EndWith
    GUISetState()

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

    Do
    Until $i = 3 ; sollte also bei 3 beendet werden
    ; Ende der FLASH ANIMATION--------------------------------------

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

    ; hier kommt der eigentliche Code der Schleife
    ; es funktioniert alles bis auf die Animation

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

    $WebAnzeiger = IniRead($openini, "Link", $i, "NotFound")
    ;
    next
    MsgBox(4,"Beendet","Ende") ; hier sollte die Flash Animation beendet werden .
    ;GUIDelete() ; das löscht die kpl. Gui
    ;GUIDelete($obj2) ; das geht auch nicht!

    [/autoit]

    ...ich komme einfach nicht mehr weiter
    kann jetzt nicht mehr klar denken!

    Schade daß man den Hintergrund der swf nicht transparent bekommt.
    Gibt es dafür eine Lösung?

    Ilse :(

  • schonmal $obj2.Quit versucht?

    Und was soll die Do-Until-Schleife? Wann soll er denn da wieder rauskommen? Innerhalb der Schleife wird doch an $i nix gemacht.

  • Guten Morgen m-obi,

    konnte mich gestern nicht mehr melden.
    Alle meine Versuche blieben erfolglos.

    [autoit]


    $obj2 = ObjCreate("ShockwaveFlash.ShockwaveFlash")
    $test2 = GUICtrlCreateObj($obj2, 100,100,800,600)
    With $obj2
    .Movie = @ScriptDir & "\flash2.swf" ; Pfad zur SWF

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

    EndWith
    GUISetState()

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

    $obj2.Quit ; es wird nichts beendet!

    [/autoit]

    $obj2.Quit da passiert nichts.

    Ich dachte mit der do Schleife innerhalb der For Schleife
    könnte es gehen.

    [autoit]


    For $i=1 to 3 Step +1

    [/autoit]


    hier wird doch $i hochgezählt
    und dann bei der swf

    [autoit]


    Do
    Until $i = 3; also wenn $i 3 ist wird die swf Schleife beendet!

    [/autoit]

    das geht leider nicht.


    Viele Grüße
    Ilse ;)

  • was mir aufgefallen ist
    wenn ich diesen Code verwende

    [autoit]


    $hLogo = GUICreate("", 400, 400, -1, -1, $WS_POPUP)
    $oIE = ObjCreate("Shell.Explorer.2")
    GUICtrlCreateObj($oIE, 0, 0, 400, 400)
    $oIE.navigate("about:blank")
    $oIE.document.body.style.border = "0px"
    $oIE.document.body.background = @ScriptDir & "\logo.gif"
    $oIE.document.body.scroll = "no"

    GUISetState()

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

    Sleep(5000)

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

    GUIDelete($hlogo) ; hier sollte doch nur das PopUp gelsöcht werden!

    [/autoit]

    ,,,das ist ja eine Gui die auf einer anderen gui liegt.

    [autoit]


    GUIDelete($hlogo)

    [/autoit]

    löscht aber alle Guis!!!
    Wieso passiert das?

  • Hallo ineluki,

    ich habe mal das ganze neu gemacht
    damit man es besser nachvollziehen kann!

    1. klicke auf Suche
    2. Die animation startet (sollte aber in der Mitte des Fensters und als Popup erscheinen!
    3. Msgbox kommt (fertig)
    4. Dann sollte nur das Animations-popup Fenster geschlossen werden!

    Der Code

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

    #include <Array.au3>
    #include <GUIConstantsEx.au3>
    #include <IE.au3>
    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>

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

    _IEErrorHandlerRegister()

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

    Dim $aIE[1]
    $aIE[0] = _IECreateEmbedded()
    Dim $Tab[1]

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

    $gui = GUICreate("Browser", 800, 600, -1, -1, BitOr($GUI_SS_DEFAULT_GUI, $WS_SIZEBOX, $WS_MAXIMIZEBOX))
    GUICtrlSetResizing(-1, $GUI_DOCKALL)

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

    $btnsuche = GUICtrlCreateButton("Suche", 416, 40, 163, 25)
    $input = GUICtrlCreateInput("", 120, 20, 200, 25)
    GUICtrlSetResizing(-1, $GUI_DOCKALL)
    $TabParent = GUICtrlCreateTab(20, 60, 760, 520)
    GUICtrlSetResizing(-1, $GUI_DOCKBORDERS)
    $Tab[0] = GUICtrlCreateTabItem("McCanyon")
    GUICtrlCreateObj($aIE[0], 40, 100, 700, 460)
    GUICtrlSetResizing(-1, $GUI_DOCKBORDERS)
    GUICtrlCreateTabItem("") ; end tabitem definition

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

    GUISetState()

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

    _IENavigate($aIE[0], "http://www.google.de")
    GUICtrlSetData($input, _IEPropertyGet($aIE[0], "locationurl"))

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    Case $btnsuche
    For $i=1 to 3 Step +1

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

    $hlogo = GUICreate("Flash-GUI", 300, 300, Default, Default,0x80000000,$WS_POPUP)
    $obj = ObjCreate("ShockwaveFlash.ShockwaveFlash")
    $test = GUICtrlCreateObj($obj, 0, 0, 300, 300)
    With $obj
    .Movie = @ScriptDir & "\flash1.swf" ; Pfad zur SWF
    EndWith
    GUISetState()

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

    $iIE = UBound($aIE)
    _ArrayAdd($Tab, GUICtrlCreateTabItem($iIE))
    GUICtrlSetResizing(-1, $GUI_DOCKBORDERS)
    _ArrayAdd($aIE, _IECreateEmbedded())
    $aPos = ControlGetPos($gui, '', $TabParent) ; Größe des TAB-Controls
    GUICtrlCreateObj($aIE[$iIE], 40 + ($aPos[0] - 20), 100 + ($aPos[1] - 60), 700 + ($aPos[2] - 760), 460 + ($aPos[3] - 520))
    GUICtrlSetResizing(-1, $GUI_DOCKBORDERS)
    GUICtrlCreateTabItem("") ; end tabitem definition
    GUISwitch($gui, $Tab[UBound($Tab)-1]) ; umschalten auf den neuen Tab

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

    next
    MsgBox(4,"Beendet","Ende")
    GUIDelete($hlogo)
    EndSwitch
    WEnd

    [/autoit]

    Hier nochnal die Probleme:

    1. Wird das fenster vergößert, dann sollte das PopPup immer das Fenster abdecken (mitvergrößert werden)
    2. Das PopUp soll immer oben sein!

  • Wenn die For-Schleife mit 1 startet, also in den ersten Durchlauf geht und dann in die Do-Schleife, wie soll er denn da wieder rauskommen wenn $i = 1 ist?

  • Hallo m-obi,

    du wirst es nicht glauben,
    ich bin heute schon den ganzen Tag an diesem Problem.

    In diesem Beispiel habe ich doch gar keine Do Schleife!

    [autoit]


    #include <Array.au3>
    #include <GUIConstantsEx.au3>
    #include <IE.au3>
    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>

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

    _IEErrorHandlerRegister()

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

    Dim $aIE[1]
    $aIE[0] = _IECreateEmbedded()
    Dim $Tab[1]

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

    $gui = GUICreate("Browser", 800, 600, -1, -1, BitOr($GUI_SS_DEFAULT_GUI, $WS_SIZEBOX, $WS_MAXIMIZEBOX))
    GUICtrlSetResizing(-1, $GUI_DOCKALL)

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

    $btnsuche = GUICtrlCreateButton("Suche", 416, 40, 163, 25)
    $input = GUICtrlCreateInput("", 120, 20, 200, 25)
    GUICtrlSetResizing(-1, $GUI_DOCKALL)
    $TabParent = GUICtrlCreateTab(20, 60, 760, 520)
    GUICtrlSetResizing(-1, $GUI_DOCKBORDERS)
    $Tab[0] = GUICtrlCreateTabItem("McCanyon")
    GUICtrlCreateObj($aIE[0], 40, 100, 700, 460)
    GUICtrlSetResizing(-1, $GUI_DOCKBORDERS)
    GUICtrlCreateTabItem("") ; end tabitem definition

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

    GUISetState()

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

    _IENavigate($aIE[0], "http://www.google.de")
    GUICtrlSetData($input, _IEPropertyGet($aIE[0], "locationurl"))

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    Case $btnsuche
    For $i=1 to 3 Step +1

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

    $hlogo = GUICreate("Flash-GUI", 300, 300, Default, Default,0x80000000,$WS_POPUP)
    $obj = ObjCreate("ShockwaveFlash.ShockwaveFlash")
    $test = GUICtrlCreateObj($obj, 0, 0, 300, 300)
    With $obj
    .Movie = @ScriptDir & "\flash1.swf" ; Pfad zur SWF
    EndWith
    GUISetState()

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

    $iIE = UBound($aIE)
    _ArrayAdd($Tab, GUICtrlCreateTabItem($iIE))
    GUICtrlSetResizing(-1, $GUI_DOCKBORDERS)
    _ArrayAdd($aIE, _IECreateEmbedded())
    $aPos = ControlGetPos($gui, '', $TabParent) ; Größe des TAB-Controls
    GUICtrlCreateObj($aIE[$iIE], 40 + ($aPos[0] - 20), 100 + ($aPos[1] - 60), 700 + ($aPos[2] - 760), 460 + ($aPos[3] - 520))
    GUICtrlSetResizing(-1, $GUI_DOCKBORDERS)
    GUICtrlCreateTabItem("") ; end tabitem definition
    GUISwitch($gui, $Tab[UBound($Tab)-1]) ; umschalten auf den neuen Tab

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

    next
    MsgBox(4,"Beendet","Ende")
    GUIDelete($hlogo)
    EndSwitch
    WEnd

    [/autoit]
  • Ich hoffe du hast es schon mit GUICtrlDelete($test). Weil wenn nicht dann ....

    Ich würde aber das Flash-Video vor die For-Schleife setzen, weil es ja sonst bei jeden Durchlauf neu erstellt wird. Das is ja irgendwie unsinnig.

  • Hallo m-obi,

    ...die liebe Arbeit, mußte wieder los.
    GUICtrlDelete($test) geht auch nicht. Das Flash Fenster läßt sich einfach nicht beenden.

    Zitat

    Ich würde aber das Flash-Video vor die For-Schleife setzen...

    hab ich schon verstanden,

    1 x Flashfenster im Vordergrund
    dann Loop
    dann Msgbox wenn Loop beendet ist,
    dann Flashfenster schließen.

    geht leider nicht!

    Weißt du was mir aufgefallen ist:
    Ich habe mal das Flashfenster (Gui) vergrößert und da ist auch der Tab-Inhalt drin.
    Das ist seltsam das sollte nämlich nicht sein, vielleicht hat es damit etwas zu tun.

    Grüße
    Ilse :(

  • Also bei mir funktioniert GUICtrlDelete.
    Du erstellst ja auch den Tab in dieser Gui, wenn dann musst du vorher GUISwitch aufrufen.
    Wie sieht denn dein ganzer Code aus?

  • Guten Morgen m-obi, ;)

    konnte mich erst heute wieder melden!

    Zitat

    ...wenn dann musst du vorher GUISwitch aufrufen.

    das war die Lösung!
    Es klappt jetzt alles auch GUICtrlDelete...

    Diese 2 Wörter sind die Erlösung für 30 Stunden Qual...!
    ICH DANKE DIR :love:

    Viele Grüße
    Ilse ;)