Page 1 sur 2
[R] Affichage d'une image au démarrage d'un script
Posté : mar. 06 oct. 2009 09:43
par Habibsbib
Voila, tout est dans el titre, mais je développe un peu :
j'aimerais un bout de script capable d'afficher une image juste avant le démarrage de mon programme, une petite bande 'annonce' au lancement.
Merci de m'aider.
Habibsbib.
Re: [...]Affichage d'une image au démarrage d'un script
Posté : mar. 06 oct. 2009 12:22
par badnolife
Bonjour,
essayez la fonction "SplashImageOn" au début de votre code, puis "SplashOff" pour l'arrêter. Et un sleep() entre les deux pour définir combien de temps vous voulez l'afficher.
Re: [...]Affichage d'une image au démarrage d'un script
Posté : mar. 06 oct. 2009 13:55
par pop45
badnolife a écrit :Bonjour,
essayez la fonction "SplashImageOn" au début de votre code, puis "SplashOff" pour l'arrêter. Et un sleep() entre les deux pour définir combien de temps vous voulez l'afficher.
Dans ce qua las je pense que il faudrait que les personne qui utilise son programme devrait avoir la même image au même endroit
Re: [...]Affichage d'une image au démarrage d'un script
Posté : mar. 06 oct. 2009 15:32
par Habibsbib
Merci pour vos réponses.
EDIT: bon. nouveau prob' : il ne se passe... absolument rien ! voila mon code :
Code : Tout sélectionner
SplashImageOn ( "Splash", "splash.bmp", 420, 420, 120, 120)
sleep(2000)
SplashOff ()
En plus de cela, je ne veux afficher que l'image en question, et pas une fenêtre avec un titre par exemple...
Re: [..]Affichage d'une image au démarrage d'un script
Posté : mar. 06 oct. 2009 17:27
par DJSIR
Pour afficher juste l'image, c'est ,1 après la position du splash. Chez moi, ce code fonctionne :
Code : Tout sélectionner
SplashImageOn("",@ScriptDir & "\splash.jpg", 100, 100, -1, -1)
Sleep(2000)
SplashOff()
De plus, avec autoit, préfère les jpg et les gifs
Re: [..]Affichage d'une image au démarrage d'un script
Posté : mar. 06 oct. 2009 21:03
par Iste
Allez, juste car j'aime bien
cet UDF ^^
► Afficher le texte
Code : Tout sélectionner
#Include <GDIPlus.au3>
#include <WindowsConstants.au3>
#Include <WinAPI.au3>
#include <IE.au3>
;CONSTANTS
Global Const $AW_FADE_IN = 0x00080000 ;fade-in
Global Const $AW_FADE_OUT = 0x00090000;fade-out
Global Const $AW_SLIDE_IN_LEFT = 0x00040001 ;slide in from left
Global Const $AW_SLIDE_OUT_LEFT = 0x00050002 ;slide out to left
Global Const $AW_SLIDE_IN_RIGHT = 0x00040002 ;slide in from right
Global Const $AW_SLIDE_OUT_RIGHT = 0x00050001 ;slide out to right
Global Const $AW_SLIDE_IN_TOP = 0x00040004 ;slide-in from top
Global Const $AW_SLIDE_OUT_TOP = 0x00050008 ;slide-out to top
Global Const $AW_SLIDE_IN_BOTTOM = 0x00040008 ;slide-in from bottom
Global Const $AW_SLIDE_OUT_BOTTOM = 0x00050004 ;slide-out to bottom
Global Const $AW_DIAG_SLIDE_IN_TOPLEFT = 0x00040005 ;diag slide-in from Top-left
Global Const $AW_DIAG_SLIDE_OUT_TOPLEFT = 0x0005000a ;diag slide-out to Top-left
Global Const $AW_DIAG_SLIDE_IN_TOPRIGHT = 0x00040006 ;diag slide-in from Top-Right
Global Const $AW_DIAG_SLIDE_OUT_TOPRIGHT = 0x00050009 ;diag slide-out to Top-Right
Global Const $AW_DIAG_SLIDE_IN_BOTTOMLEFT = 0x00040009 ;diag slide-in from Bottom-left
Global Const $AW_DIAG_SLIDE_OUT_BOTTOMLEFT = 0x00050006 ;diag slide-out to Bottom-left
Global Const $AW_DIAG_SLIDE_IN_BOTTOMRIGHT = 0x0004000a ;diag slide-in from Bottom-right
Global Const $AW_DIAG_SLIDE_OUT_BOTTOMRIGHT = 0x00050005 ;diag slide-out to Bottom-right
Global Const $AW_EXPLODE = 0x00040010 ;explode
Global Const $AW_IMPLODE = 0x00050010 ;implode
image('http://www.autoitscript.com/images/autoit_6_240x100.jpg')
Func image($I_Image, $I_Duration = 2000, $I_Speed = 1000, $I_ModeIn = 0x00040010, $I_ModeOff = 0x00050010, $I_IeFlag = 0)
If StringLeft($I_Image,7) = 'http://' Then
Local $I_Type = StringSplit($I_Image,'.')
$I_Type = $I_Type[$I_Type[0]]
InetGet($I_Image,@ScriptDir & "\I_Image." & $I_Type,1)
$I_Image = @ScriptDir & "\I_Image." & $I_Type
EndIf
_GDIPlus_Startup ()
Local $I_hImage = _GDIPlus_BitmapCreateFromFile($I_Image)
Local $I_X = _GDIPlus_ImageGetWidth ($I_hImage)
Local $I_Y = _GDIPlus_ImageGetHeight ($I_hImage)
_GDIPlus_ImageDispose($I_hImage)
_WinAPI_DeleteObject($I_hImage)
_GDIPlus_ShutDown ()
Local $I_GUI = GUICreate('',$I_X,$I_Y,-1,-1,$WS_POPUP, $WS_EX_TOPMOST)
If $I_IeFlag Then
Local $I_oIE = _IECreateEmbedded ()
Local $I_GUIActiveX = GUICtrlCreateObj($I_oIE, 0, 0, $I_X, $I_Y)
_IENavigate ($I_oIE, $I_Image)
Else
GUICtrlCreatePic($I_Image,0,0,$I_X,$I_Y)
EndIf
_WinAnimate($I_GUI,$I_ModeIn,$I_Speed)
Sleep($I_Duration)
_WinAnimate($I_GUI,$I_ModeOff,$I_Speed)
GUIDelete($I_GUI)
EndFunc
Func _WinAnimate($v_gui, $i_mode, $i_duration = 1000)
DllCall("user32.dll", "int", "AnimateWindow", "hwnd", WinGetHandle($v_gui), "int", $i_duration, "long", $i_mode)
Local $ai_gle = DllCall('kernel32.dll', 'int', 'GetLastError')
If $ai_gle[0] <> 0 Then
SetError(1)
Return 0
EndIf
Return 1
EndFunc ;==> _WinAnimate()
$I_Image : URL ou path de l'image
$I_Duration = 2000 : temps d'affichage de l'image (ms)
$I_Speed = 1000 : Vitesse de l'animation (ms)
$I_ModeIn = 0x00040010 : type d'apparition (voir Global Const)
$I_ModeOff = 0x00050010 : type de disparition (voir Global Const)
$I_IeFlag = 0 : Type d'affichage de l'image. 0 pic normal, ne prenant en compte que les JPG, BMP et GIF non annimés. 1 utilise un objet IE, mais heu.... ca marche pas ><
Re: [..]Affichage d'une image au démarrage d'un script
Posté : mer. 07 oct. 2009 09:33
par Habibsbib
Ben oué, effectivement ca marche pas ... J'essaye le tien DJSIR, je mets les résultats en édit.
Merci.
EDIT: Mici beaucoup DJSIR, ca marche *****, mais le probème c'est que la fenêtre de splash ne me convient pas ; j'aimerais un UDF qui me permette d'afficher une image purement et simplement, sans même passer par un système de fenêtrage. je m'explique avec un screen :
et moi, j'aime pas trop la fenêtre, j'aimerais bien la virer...
Re: [..]Affichage d'une image au démarrage d'un script
Posté : mer. 07 oct. 2009 10:05
par sylvanie
Et bien il suffit de reprendre le code d'Iste, et de neutraliser les apples à _WinAnimate.
Re: [..]Affichage d'une image au démarrage d'un script
Posté : mer. 07 oct. 2009 12:57
par DJSIR
je t'ai dit de rajouter 1 après la position du splash.
Avec mon exemple :
Code : Tout sélectionner
SplashImageOn("",@ScriptDir & "\splash.jpg", 100, 100, -1, -1, [b]1[/b])
Sleep(2000)
SplashOff()
Re: [..]Affichage d'une image au démarrage d'un script
Posté : mer. 07 oct. 2009 13:01
par Iste
Béh oui, si c'est pas un jpg/bmp/jif tu seras obligé de partir de mon code ou d'un similaire -_-
Sinon suffit comme le dit sylvanie de simplement virer l'udf
Code : Tout sélectionner
#Include <GDIPlus.au3>
#include <WindowsConstants.au3>
#Include <WinAPI.au3>
#include <IE.au3>
image('http://www.autoitscript.com/images/autoit_6_240x100.jpg')
Func image($I_Image, $I_Duration = 2000, $I_Speed = 1000, $I_ModeIn = 0x00040010, $I_ModeOff = 0x00050010, $I_IeFlag = 0)
If StringLeft($I_Image,7) = 'http://' Then
Local $I_Type = StringSplit($I_Image,'.')
$I_Type = $I_Type[$I_Type[0]]
InetGet($I_Image,@ScriptDir & "\I_Image." & $I_Type,1)
$I_Image = @ScriptDir & "\I_Image." & $I_Type
EndIf
_GDIPlus_Startup ()
Local $I_hImage = _GDIPlus_BitmapCreateFromFile($I_Image)
Local $I_X = _GDIPlus_ImageGetWidth ($I_hImage)
Local $I_Y = _GDIPlus_ImageGetHeight ($I_hImage)
_GDIPlus_ImageDispose($I_hImage)
_WinAPI_DeleteObject($I_hImage)
_GDIPlus_ShutDown ()
Local $I_GUI = GUICreate('',$I_X,$I_Y,-1,-1,$WS_POPUP, $WS_EX_TOPMOST + $WS_EX_TOOLWINDOW )
If $I_IeFlag Then
Local $I_oIE = _IECreateEmbedded ()
Local $I_GUIActiveX = GUICtrlCreateObj($I_oIE, -10, -10, $I_X+20, $I_Y+20)
_IENavigate ($I_oIE, $I_Image)
Else
GUICtrlCreatePic($I_Image,0,0,$I_X,$I_Y)
EndIf
;~ _WinAnimate($I_GUI,$I_ModeIn,$I_Speed)
GUISetState() ;ajout de cette ligne
Sleep($I_Duration)
;~ _WinAnimate($I_GUI,$I_ModeOff,$I_Speed)
GUIDelete($I_GUI)
EndFunc
Mais ca serait sympa avant de dire que ca marche pas, de regarder ce qu'il ne marche pas >< la c'est juste l'affichage alternatif (pour contourner les limites d'au3), donc le reste du code et 100% fonctionnel !
Sinon, j'ai aussi rajouter $WS_EX_TOOLWINDOW a la gui, ca fait plus propre

Re: [..]Affichage d'une image au démarrage d'un script
Posté : jeu. 08 oct. 2009 13:21
par Habibsbib
Merci beaucoup à tous, effectivement DJSIR, j'ai été distrait sur ce coup la.
Merci mille fois à tous.
Re: [..]Affichage d'une image au démarrage d'un script
Posté : ven. 09 oct. 2009 15:29
par Habibsbib
Iste a écrit :Béh oui, si c'est pas un jpg/bmp/jif tu seras obligé de partir de mon code ou d'un similaire -_-
OUais.. et les png, et les bmp ! c'est largement suffisant...
Re: [R] Affichage d'une image au démarrage d'un script
Posté : ven. 09 oct. 2009 23:40
par Iste
jpg/bmp/gif, pas png, et ce sont les limites d'autoit.
Apres, j'ai justement fait une ébauche de contournement de cette limite, qui n'est pas fonctionnel a cause d'ie
Mais la prochaine foi j'en ferais pas tant..
Merci donc de prendre le temps d'essayer de comprendre les script des autres, au moins de les tester, car la, j'ai des doute...
Re: [R] Affichage d'une image au démarrage d'un script
Posté : sam. 10 oct. 2009 11:28
par Habibsbib
Iste a écrit :jpg/bmp/gif, pas png, et ce sont les limites d'autoit.
Apres, j'ai justement fait une ébauche de contournement de cette limite, qui n'est pas fonctionnel a cause d'ie
Mais la prochaine foi j'en ferais pas tant..
Merci donc de prendre le temps d'essayer de comprendre les script des autres, au moins de les tester, car la, j'ai des doute...
J'ai déja essayé avec un .png et cela marche à la perfection !! Tu devrais essayer Iste...
Re: [R] Affichage d'une image au démarrage d'un script
Posté : sam. 10 oct. 2009 11:38
par DJSIR
Sinon, j'ai une méthode pour faire un splash png (avec transparance)
Re: [R] Affichage d'une image au démarrage d'un script
Posté : sam. 10 oct. 2009 11:42
par Habibsbib
DJSIR a écrit :Sinon, j'ai une méthode pour faire un splash png (avec transparance)
Rhooo, ca ca serait intéressant pour ton programme !
Re: [R] Affichage d'une image au démarrage d'un script
Posté : sam. 10 oct. 2009 11:53
par DJSIR
Je sais je l'utilise déja dans plusieurs programmes que j'ai fait (pour ma conso personelle ^^)
C'est avec _GDI
Regarde dans les "Fonctions et UDFs du forum" tu trouvera _pngGUI(), c'est intéressant !
Re: [R] Affichage d'une image au démarrage d'un script
Posté : sam. 10 oct. 2009 11:54
par Habibsbib
Merci beacoup ! Je vais jeter un coup d'oeil...
Re: [R] Affichage d'une image au démarrage d'un script
Posté : sam. 10 oct. 2009 12:30
par Iste
Habibsbib a écrit :J'ai déja essayé avec un .png et cela marche à la perfection !! Tu devrais essayer Iste...
Et bien, j'essaye toujours avant d'affirmer quoi que ce soit, et en effet, comme le dit si bien la doc, ca ne marche pas...
Serais-tu sous vista ou autre ? Car cela pourrait peut etre expliquer les chose
Sinon, si tu arrive a gérer la transparence des PNG, oubli pas celle de la GUI

Re: [R] Affichage d'une image au démarrage d'un script
Posté : mar. 13 oct. 2009 09:41
par Habibsbib
Une sèrie de screens pour te prouver que l'on peut affficher des extensions .png avec la fonction Splash Image :
N°1 :
N°2 :
N°3 :
N°4 :
Alors, convaincu Iste ??