Page 1 sur 1

[..] Barre de Progression + File Install + Run

Posté : lun. 19 avr. 2010 00:29
par Rere78
Bonjour,

J'ai réaliser ce petit script, pour un projet scolaire.
Il n'est pas parfait car je débute dans AutoIt alors j'ai fait ce script avec le forum , petit bout par petit bout, j'ai récupérer du code.

J'ai passer des heures entière sans succès pour ajouter une barre de progression. J'ai télécharger des UDF d'exemple mais rien n'y fait.

Pouvez-vous m'aider à créer une barre de progression. Rien de bien méchant ( j'espère... ) juste un timer qui avance de 5 % suivant mes manipulation ( 5 % après avoir copier un fichier, 10 % pour l'installation de EasyPhp..., 5 % pour la copie d'un autre fichier..... Ceci me permettra de mieux comprendre le fonctionnement et de pouvoir finir le script. Même si la barre de progression est plus lente que l'installation , cela ne pose pas de problème : c'est juste pour l'aspect visuel :p

Si il existe une méthode pour faire une barre de progression suivant ce script, je suis aussi preneur.

Autres question, j'aimerais caché l'installation de EasyPhp c'est à dire ne pas voir les fenetres qui bouge et se coche décoche toute seul mais simplement les cachers.

Merci par avance pour vos réponses, conseils et aide.

Bonne soirée.
Désolé si le script est pas très bien écrit mais comme je suis un débutant et il faut bien commencer.

Merci par avance
► Afficher le texte

Re: [..] Barre de Progression + Cacher l'installation

Posté : lun. 19 avr. 2010 06:55
par pop45
pour une installation silencieuse il faut le lancer avec l'argument -s je crois
Pour le fait de cacher l'installation cherche sa a été aborder beaucoup de fois

Re: [..] Barre de Progression + Cacher l'installation

Posté : lun. 19 avr. 2010 07:13
par Tlem
Pour remplir votre ProgressBar, tout ce que vous avez à faire c'est de lui donner une valeur.

Puisque vous parlez de projet scolaire, on va faire référence aux gâteau. :lol:
Votre ProgressBar est comme un gâteau et donc peut être divisée en %.
Lorsque celle-ci est remplie complètement, elle est à 100%.
Lorsqu'elle est remplie à moitié, elle est à 50%. :roll:
Etc ...

Puisque vous avez fait ceci :

Code : Tout sélectionner

$Progress1 = GUICtrlCreateProgress(128, 320, 473, 25)
vous avez par la variable $Progress1 le controlID de la ProgressBar.
Ceci va vous permettre de lui envoyer certaines informations (tel que le taux de remplissage de la barre).

Pour dire que la ProgressBar doit être remplie à 10%, vous devez lui envoyer la valeur 10 comme ceci :

Code : Tout sélectionner

GUICtrlSetData($Progress1, 10)
Pour remplir la ProgressBar à 50%, vous devez donc lui envoyer :

Code : Tout sélectionner

GUICtrlSetData($Progress1, 10)
Et voilà, vous savez remplir une ProgressBar.
Évidement, dans votre code, il faudra répartir votre remplissage en fonction des actions effectuées et terminées. ;)


En ce qui concerne l'installation de EasyPhp sans les fenêtres, peut être devriez-vous vous orienter vers une installation silencieuse. :roll:

Code : Tout sélectionner

EasyPHP-x.x.x.exe /VERYSILENT

Re: [R] Barre de Progression + Cacher l'installation

Posté : lun. 19 avr. 2010 09:33
par Rere78
Bonjour,

Merci beaucoup pour votre aide très matinal, je vais devoir payer les croissants et le café si sa continue :P

Pour l'installation d'easyphp en mode silence avec autoIt mais pas avec EasyPhp directement.
Merci pour cette information.

Pour la barre de progression, j'ai chercher beaucoup trop compliquer à ré-utiliser du code trouver par ici et par là alors qu'un simple GUICtrlSetData($Progress1, "Pourcentage de progression") est largement suffisant pour mon cas.
Merci encore pour tout, et bonne journée.

Merci

Re: [..] Barre de Progression + File Install + Run

Posté : mar. 20 avr. 2010 16:44
par Rere78
Bonjour,

J'ai évolué sur le script avec votre aide et j'aurais encore besoin d'un petit coup de pouce. :P

J'ai une barre de progression que j'aimerais cette fois si faire progresser suivant un fileInstall et un Run.

Code : Tout sélectionner

FileInstall("C:\temp\Fichier-100MO.exe", @TempDir&"\VFichier-100MO.exe", 1)
    RunWait(@TempDir&"\Fichier-100MO.exe")
Est-ce possible ?

Merci par avance

Re: [..] Barre de Progression + File Install + Run

Posté : mar. 20 avr. 2010 22:10
par Tlem
Difficile, car le programme que vous installez devrait vous renvoyer l'état d'avancement de son installation. :roll:

Si c'est le fait que votre barre d'avancement reste statique trop longtemps qui vous ennuie, alors faites en sorte qu'elle passe de gauche à droite puis de droite à gauche par exemple, ou une barre de progression constante, qui va de gauche à droite puis qui repart de gauche à droite, etc ...

Pour éviter que la progression de la barre ne soit bloquée lors de l'installation d'un logiciel X, utilisez la commande AdlibRegister() pour qu'elle s'occupe de faire bouger la barre. ;)

Faites quelques recherches sur le forum sur les ProgressBar et vous trouverez des choses intéressantes. :mrgreen:

Re: [..] Barre de Progression + File Install + Run

Posté : mar. 20 avr. 2010 22:20
par Rere78
Bonjour,

Nan mais...

Comment vous faite, j'ai retourner 30 000 fois le problème sans trouvé la réponse, le pire c'est que j'ai testé vos pack sur les progress Bar et j'ai vue ce genre de barre et je n'est même pas "tilter".
De plus le filecopy est plus adapter a ce que je recherche.

J'avais la solution sous les yeux mais j'ai pas du les ouvrir...

Merci encore, je tester et si j'y arrive clôture le post.

Encore merci à vous.
Bonne Soirée

PS : Si je peux aider quelqu'un en Aquariophilie ou autres... c'est le seul domaine que je maitrise.

Re: [..] Barre de Progression + File Install + Run

Posté : jeu. 22 avr. 2010 22:14
par Rere78
Bonjour,

Bonne nouvelle, j'arrive à créer la barre de progression (création bancale, car je n'est pas trop compris comment elle se lançais et s'arrêtait. )

Le problème c'est que j'aimerais quelle s'arrête quand je le désire. Elle doit commencer au début de mon FileInstall et elle s'arrête à la fin de mon Run.

De plus dans le code que j'ai trouver sur le forum, il y a écrit :
Ajouter un test quelconque pour sortir de la boucle (Le process d'une install par exemple) mais j'arrive pas à lui signaler ce que je veux.

Quelqu'un peut'il m'aider ?

Merci par avance et bonne soirée.

Voici mon code :
► Afficher le texte

Re: [..] Barre de Progression + File Install + Run

Posté : jeu. 22 avr. 2010 23:26
par Tlem
Veuillez revoir votre code de plus prêt.

1- Pas de fonction dans une boucle quelconque.
2- Placez les fonctions de préférence à la fin du code (après la dernière ligne de votre code).
3- Installez et utilisez Scite4AutoIt pour controler votre code :
  • - CTRL + F5 vérifie votre code
    - CTRL + T met correctement en forme votre code afin de le rendre plus lisible.

Re: [..] Barre de Progression + File Install + Run

Posté : ven. 23 avr. 2010 02:35
par Rere78
Bonjour,

Merci pour tes réponses, la fonction CTRL + T est vraiment formidable. Elle va m'éviter de perdre 3/10 à chaque oeils.

Cependant, je possède toujours le meme problème, je n'arrive pas a déclarer arreter le lancement de ma barre de progression.

Je m'explique : Quand je lance la fonction de la barre de progression :

Code : Tout sélectionner

_SliderRight()
Celle-çi tourne en boucle toujours et encore sans jamais exécuter la suite du code.

J'aimerais qu'elle se lance, puis j'exécute mon code puis elle s'arrête.

Pouvez-vous m'éclairer encore une petite fois ?
► Afficher le texte
Merci par avance
Aurélien
PS : Allé 2h25 du matin, je stop AutoIt pour ce soir ... Je vais devenir un Geek...

Re: [..] Barre de Progression + File Install + Run

Posté : ven. 23 avr. 2010 08:19
par Tlem
Codé rapidement :
Ajoutez ces deux lignes avant la création de votre GUI.

Code : Tout sélectionner

Global $Way = "Left"
Global $m = 208
Ensuite remplacez _SliderRight() par AdlibRegister("_Slider", 50)
Puis remplacez les 3 fonctions _SliderRight(), _SliderLeft() et _getmsg() par cette seule et unique fonction :

Code : Tout sélectionner

Func _Slider()
    If $Way = "Left" Then
        $m += 3
    Else
        $m -= 3
    EndIf
    If $m >= 553 Then $Way = "Right"
    If $m <= 208 Then $Way = "Left"

    GUICtrlSetPos($ba, $m, 360, 70, 25)
EndFunc
Vous n'aurez ensuite qu'à placer la ligne AdlibUnRegister("_Slider") aux endroits ou vous souhaitez arrêter la progressBar. ;)