AutoIt Français

Nouveau forum : http://www.autoitscript.fr/
 
AccueilFAQRechercherS'enregistrerMembresGroupesConnexionhttp://www.autoitscript.fr

Partagez | 
 

 Blocage de l'animation pendant la copie ...

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
corrs78
Membre


Nombre de messages : 24
Date d'inscription : 17/02/2007

MessageSujet: Blocage de l'animation pendant la copie ...   2007-03-08, 15:57

J'utilise le controle GuiCtrlCreateAvi pour creer mon animation. Jusque là rien d'extraordinaire.
Mon animation se lance bien, mais quand ma copie
(sauvegarde base de donnée d'un disque à l'autre)
se lance l'animation s'arrête...
Est-ce du à l'accés disque trés conséquent du fait de la grosseur de ma base ?
comment puis-je y remedier ?

Merci.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
corrs78
Membre


Nombre de messages : 24
Date d'inscription : 17/02/2007

MessageSujet: Re: Blocage de l'animation pendant la copie ...   2007-03-08, 16:11

Voilà pour le code :

[code];;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; SCRIPT DE SAUVEGARDE BASE BD ;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
#include
#NoTrayIcon

$windows1 = GuiCreate("S.R.I.T.T - SCRIPT BACKUP BD -", 350, 350,(@DesktopWidth-350)/2, (@DesktopHeight-350)/2 )
GuiSetIcon("wincanutil.ico", 0)
GuiSetState()

; PIC
GuiCtrlCreatePic("logo4.gif",114,50, 169,68)
GuiCtrlCreateLabel("/! L'accés à cet ordinateur est verrouillé pendant la sauvegarde /!", 16, 280, 322, 15)
GuiCtrlSetBkColor(-1, 0xFF0000)

;avi
$animation = GuiCtrlCreateAvi("anim.avi",0, 50, 210, 32, 32 )
GuiCtrlCreateLabel("Copie en cours...", 150, 250)

;modifier la source à votre convenance
$DirSource = ("d:can_wi")
;modifier la destination à votre convenance
$DirBackup = ("f:Backup_BD")

DirCreate($DirBackup)


MsgBox(4096, "Backup BD", "La sauvegarde de la base BD va commencer...L'accés à cet ordinateur sera verrouillé",10)
sleep(1000)
BlockInput(1)
GUICtrlSetState ($animation, 1)
sleep(5000)
DirCopy($DirSource, $DirBackup,1)
sleep(1000)
BlockInput(0)

;Message d'accueil
MsgBox(4096, "S.R.I.T.T - SCRIPT BACKUP BD -", " . . . La sauvegarde de la base BD a été effectuée . . .",10)
GuiCtrlCreateLabel("[ Sauvegarde Base BD OK. Vous pouvez quitter l'application. ]", 16, 280, 324, 15)
GuiCtrlSetBkColor(-1, 0x00FF00)
GuiCtrlCreateLabel(" Copie Terminé ...", 150, 250)
GUICtrlSetState ($animation, 0)

$size = DirGetSize($DirBackup)
GuiCtrlCreateLabel("Total sauvegardé = " & Round($size / 1024 / 1024 )&" Mo", 120, 250)


Dim $button_1, $msg
$button_1 = GUICtrlCreateButton ( "Quitter" , 135 , 310 , 80 , 24 )

While 1
$msg = GUIGetMsg()
Select
case $msg = $button_1
;si on ferme le programme un effet de fondu est Activé;
$trans_end = 250
Do
Sleep(10)
$trans_end = $trans_end - 10
WinSetTrans("S.R.I.T.T - SCRIPT BACKUP BD -", "", $trans_end)
Until $trans_end = 0

ExitLoop
Case $msg = $GUI_EVENT_CLOSE
$trans_end = 250
Do
Sleep(10)
$trans_end = $trans_end - 10
WinSetTrans("S.R.I.T.T - SCRIPT BACKUP BD -", "", $trans_end)
Until $trans_end = 0

ExitLoop
Case Else
EndSelect
WEnd
Exit[/code]

L'animation en question se trouve ici :
[url=http://vbnet.mvps.org/files/avi/filecopy2.zip]http://vbnet.mvps.org/files/avi/filecopy2.zip[/url]
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
ani
Modérateur
Modérateur


Nombre de messages : 563
Date d'inscription : 23/01/2007

MessageSujet: Re: Blocage de l'animation pendant la copie ...   2007-03-08, 17:50

salut corrs78

l'avi doit se trouvé au niveau du script

ta juste fait un oubli a cette ligne

$animation = [b]GuiCtrlCreateAvi[/b][color=red]([/color][b]"[/b]anim.avi[b]"[/b],0, 50, 210, 32, 32, $ACS_AUTOPLAY[color=#ff0000])[/color]

[u][i]$acs_autoplay[/i][/u]

j'ai tester avec un avi dont on dispose dans l'aide d'autoit

et ca fonctionne (sauf que j'ai pas de fichier de sauvegarde)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
corrs78
Membre


Nombre de messages : 24
Date d'inscription : 17/02/2007

MessageSujet: Re: Blocage de l'animation pendant la copie ...   2007-03-08, 18:33

Salut ani,

Si tu regardes bien je démarre l'avi juste avant la copie pour que ce soit "plus réaliste" :

[code]GUICtrlSetState ($animation, 1)
sleep(5000)
DirCopy($DirSource, $DirBackup,1)[/code]

La valeur $animation à 1 fait bien démarrer l'avi.
tu remarqueras qu'a la fin je l'arrete :
[code]GUICtrlSetState ($animation, 0)[/code]

en fait si je ne copie rien et que j'ajoute un sleep on voit bien que l'animation fonctionne correctement.

Pour simuler remplace
$DirSource = ("d:can_wi")
par des dossiers existants et assez lourds
et
$DirBackup = ("f:Backup_BD")
par un chemin existant
Tu constateras a coup sur le meme problème que moi .

Merci de ton aide.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
ani
Modérateur
Modérateur


Nombre de messages : 563
Date d'inscription : 23/01/2007

MessageSujet: Re: Blocage de l'animation pendant la copie ...   2007-03-08, 18:56

je reviend des test (avec ou sans fichier)

j'utilise une dll propre a win et c'est vrai qu'il y a un stop de l'animation, dans le script j'ai retirer tout les sleep ca change rien du tout.

je regarde l'aide mais rien sur le sujet.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
ani
Modérateur
Modérateur


Nombre de messages : 563
Date d'inscription : 23/01/2007

MessageSujet: Re: Blocage de l'animation pendant la copie ...   2007-03-08, 19:26

a ou maintenant que j'ai regardé de plus pret le code , j'avais pas remarquer le demarage de l'avi , excuse donc

au niveau de l'avi j'utilise celui ci

$animation = GuiCtrlCreateAvi(@SystemDir & '\Shell32.dll', 160, 50, 210, 32, 32)


je reflechis et ej pense que c'est une histoire de temp entre la copi du dossier vers le backup qui chok l'animation, faudrai ajouter 1 seconde .

vais continuer les test et manger ^^'


faudra aussi optimiser le code
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
sylvanie
Modérateur
Modérateur


Nombre de messages : 300
Date d'inscription : 10/03/2007

MessageSujet: Re: Blocage de l'animation pendant la copie ...   2007-03-13, 00:22

Bonjour,
Dircopy doit suspendre les rafraîchissements jusqu'à sa fin d'éxécution.

J'ai remplacé l'appel à cette fonction par :

[code]
$pid=Run(@ComSpec&' /c copy /Y "'&$DirSource&'" "'&$DirBackup&'"',@WorkingDir,@SW_HIDE)
Do
Sleep(200)
Until ProcessExists($pid)==0
[/code]

du coups, l'exécution rends de suite la main, et on boucle jusqu'à la mort du process. Ainsi l'avi est joué
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
sylvanie
Modérateur
Modérateur


Nombre de messages : 300
Date d'inscription : 10/03/2007

MessageSujet: Re: Blocage de l'animation pendant la copie ...   2007-03-13, 00:30

voir même, prendre plutôt xcopy avec /E pour l'aspect récursif ...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Blocage de l'animation pendant la copie ...   Aujourd'hui à 22:41

Revenir en haut Aller en bas
 
Blocage de l'animation pendant la copie ...
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» stopper l'animation de second niveau
» [Résolu] IE7 Blocage
» faire une copie du fichier de la license de SZ ?
» Problème blocage pc
» ANIMATION

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
AutoIt Français :: AutoIt v3 :: Entraide-
Sauter vers: