[R] Arret du PC spécial

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
lokomass
Niveau 5
Niveau 5
Messages : 128
Enregistré le : mer. 15 déc. 2010 10:21
Status : Hors ligne

[R] Arret du PC spécial

#1

Message par lokomass »

Bonjour,

Encore un petit soucis...
J'aimerais à la fin de mon script, afficher un Msgbox tout simple qui me dit :

######################
#Arret du PC dans 60 secondes#
# #
# Annuler #
######################

Voila en gros le msgbox, le compte à rebours dans le label de celle ci descend de secondes en secondes jusqu'à 0 et éteint l'ordi à la fin...
Le bouton Annuler permet tout simplement de tout annuler, si je me trouve devant l'ordi.
Je ne sais pas si je suis clair, je ne vois pas vraiment comment réaliser une chose de ce type.


Merci d'avance
Modifié en dernier par lokomass le ven. 17 déc. 2010 15:30, modifié 1 fois.
Colin117
Niveau 5
Niveau 5
Messages : 114
Enregistré le : jeu. 18 nov. 2010 17:57
Localisation : Vers là bas !
Status : Hors ligne

Re: [..] Arret du PC spécial

#2

Message par Colin117 »

Je ne peux que te rediriger vers ici

Et te donner ça si t'as pas envie d'y aller ^^
► Afficher le texteCode
► Afficher le texte
lokomass
Niveau 5
Niveau 5
Messages : 128
Enregistré le : mer. 15 déc. 2010 10:21
Status : Hors ligne

Re: [..] Arret du PC spécial

#3

Message par lokomass »

Alors je te remercie,

L'interface est exactement ce que je veux, seulement je pense qu'il faut que je modifie pas mal de choses au niveau du code.
Etant donné mon très grand niveau (blague blague) je ne sais pas si je vais y arriver, je vais essayer de bricoler.
En tout ca merci
Colin117
Niveau 5
Niveau 5
Messages : 114
Enregistré le : jeu. 18 nov. 2010 17:57
Localisation : Vers là bas !
Status : Hors ligne

Re: [..] Arret du PC spécial

#4

Message par Colin117 »

Si tu veux je peux t'aider, tu veux quoi exactement ?
► Afficher le texte
lokomass
Niveau 5
Niveau 5
Messages : 128
Enregistré le : mer. 15 déc. 2010 10:21
Status : Hors ligne

Re: [..] Arret du PC spécial

#5

Message par lokomass »

Merci beaucoup,

Je t'explique en détail.
J'ai crée un script qui fait les sauvegarde de mon PC et des mes serveurs.
Ce script sera programmé pour être lancé à heures et jours fixes de la semaine.
A la fin de ce script et à chaque fois, je veux dans un premier temps (mais ça n'est pas le sujet, et je n'ai pas encore trouvé la solution) :
- que autoit m'envoi un mail, me disant le temps qu'a mis le logiciel à tout faire (j'ai trouvé comment calculer le temps, mais pas encore la fonction mail, du moins elle ne fonctionne pas)
- que autoit m'affiche une fenetre (exactement dans le genre que ce que tu m'a donné, ou un msgbox) dans laquelle il y aura un bouton annuler. Cette fenetre lancera un chrono de 60 secondes mettons, et au bout de ces 60 secondes, elle eteindra automatiquement l'ordinateur (cas ou je ne suis pas devant le PC) mais proposera un bouton "Annuler" pour emepecher l'arret et sortir du programme (cas ou je suis devant le PC et ne veut pas son arret).

C'est vraiment bien une sorte de compte a rebours avec progress bar graphique comme tu m'a fait.

J'espere que tu comprend mieux maintenant ce que je recherche et te remercie encore de ton aide
Colin117
Niveau 5
Niveau 5
Messages : 114
Enregistré le : jeu. 18 nov. 2010 17:57
Localisation : Vers là bas !
Status : Hors ligne

Re: [..] Arret du PC spécial

#6

Message par Colin117 »

ok déjà pour le temps je viens de trouver quelque chose, je ne sais pas si c'est ce que tu as fais mais je trouve ça pas mal:

@EDIT: j'ai pas réussi à afficher le message avec les TimerInit() et TimerDiff()...

Donc avec des sleeps

Code : Tout sélectionner

$time = 60000
while 1
    $time = $time - 1000
    Sleep(1000)
    If $time = 0 Then ; si $time attein 60000 millisecondes
        MsgBox( 16, "Chrono", "Vous avez atteint les 60 secondes") ; on affiche un message
        exit
    Else
        $TempsPasser = $time / 1000
        TrayTip("Chrono","Plus que " & $TempsPasser & " Secondes !", 1)

    Endif
Wend
 
Modifié en dernier par Colin117 le ven. 17 déc. 2010 10:55, modifié 2 fois.
► Afficher le texte
lokomass
Niveau 5
Niveau 5
Messages : 128
Enregistré le : mer. 15 déc. 2010 10:21
Status : Hors ligne

Re: [..] Arret du PC spécial

#7

Message par lokomass »

Ok ça fonctionne bien, au bout de 60 secondes on a le msgbox qui arrive.
Maintenant il faut qu'on puisse intégrer ce chrono dans une fenetre avec bouton annuler, qui nous fait ce decompte dans une progressbar comme dans le code que tu m'a donné...
lokomass
Niveau 5
Niveau 5
Messages : 128
Enregistré le : mer. 15 déc. 2010 10:21
Status : Hors ligne

Re: [..] Arret du PC spécial

#8

Message par lokomass »

Pas mal du tout ce que tu as fait, on est pas loin là !!!
J'ai fait quelques premieres modifs, et comme je me doutais, plus rien ne marche lol
► Afficher le texte
Colin117
Niveau 5
Niveau 5
Messages : 114
Enregistré le : jeu. 18 nov. 2010 17:57
Localisation : Vers là bas !
Status : Hors ligne

Re: [..] Arret du PC spécial

#9

Message par Colin117 »

Donc pour ça tu prend la fonction qui affichais le nom des fichier et tu le remplace par simplement les secondes:
► Afficher le texteAVANT
(le bouton annuler marche pas a cause du sleep)
► Afficher le texteAPRES
@Edit ton problème c'est que tu as modifier sans comprendre le script, je t'encourage avant de modifier quoique ce soit de faire des tests sur chaque éléments pour voir comment cela marche-t-il.

Je travail a utiliser autre chose que le sleep.
► Afficher le texte
Colin117
Niveau 5
Niveau 5
Messages : 114
Enregistré le : jeu. 18 nov. 2010 17:57
Localisation : Vers là bas !
Status : Hors ligne

Re: [..] Arret du PC spécial

#10

Message par Colin117 »

J'ai analysé ton code, tu as fais appelle à la fonction en boucle avant mais pas pendant la progressbar du coup le script bloque 60 secondes. Compare ton script au mien tu verras.
► Afficher le texte
lokomass
Niveau 5
Niveau 5
Messages : 128
Enregistré le : mer. 15 déc. 2010 10:21
Status : Hors ligne

Re: [..] Arret du PC spécial

#11

Message par lokomass »

Ouah je vois je vois.

C'est presque parfait, il ne reste plus en gros :
- qu'a lancer automatiquement le bouton "Start simulation progress"
- mettre l'action d'arret du systeme a la fin du compte a rebours (ca je devrais pouvoir le faire)
- et liberer le bouton "Annuler" pour pouoir y cliquer dessus quand on veut (je suppose que l'action associée sera : exit)

Merci en tout cas !!


Edit : j'ai aussi trouvé ce topic pas mal et qui correspond bien niveau fonctionnement (l'interface est très moche lol mais ça peut aider aussi)
http://autoitscript.fr/forum/viewtopic.php?f=6&t=6046
lokomass
Niveau 5
Niveau 5
Messages : 128
Enregistré le : mer. 15 déc. 2010 10:21
Status : Hors ligne

Re: [..] Arret du PC spécial

#12

Message par lokomass »

Voilà, à priori il ne manquerais que l'action sur le bouton Annuler, en gros, je pense faire une boucle infinie, qui dit que si on appuie sur Annuler, on annule et on ferme tout....

► Afficher le texte
Colin117
Niveau 5
Niveau 5
Messages : 114
Enregistré le : jeu. 18 nov. 2010 17:57
Localisation : Vers là bas !
Status : Hors ligne

Re: [..] Arret du PC spécial

#13

Message par Colin117 »

Le problème c'est que c'est par commande, et que celle-ci diffère parfois mais cela m'a l'aire d'être un bon script si tu veux le reprendre.

@Edit: J'essaie d'utiliser les TimerInit() et TimerDiff() mais je n'arrive pas à les mettre en compte à rebours.
► Afficher le texte
lokomass
Niveau 5
Niveau 5
Messages : 128
Enregistré le : mer. 15 déc. 2010 10:21
Status : Hors ligne

Re: [..] Arret du PC spécial

#14

Message par lokomass »

Je n'ai pas tout compris à ton dernier message, aurais-tu une idée pour ce fameux bouton annuler parce que c'est là ou je coince ?

Edit : il y a un autre soucis, dans mon script, l'ordinateur ne s'eteint pas a la fin du compte a rebours, ça recommence sans cesse, je ne vois pas et ne comprend pas pourquoi.

Donc si je resume il reste :
- faire une seule boucle de 60 a 0 sans recommencer, et eteindre l'ordi
- faire en sorte qu'a n'importe quel moment du compte a rebours entre et 60 et 0 on puisse cliquer sur Annuler et fermer la fenetre
Colin117
Niveau 5
Niveau 5
Messages : 114
Enregistré le : jeu. 18 nov. 2010 17:57
Localisation : Vers là bas !
Status : Hors ligne

Re: [..] Arret du PC spécial

#15

Message par Colin117 »

Mon message disait en gros que le script que tu avais trouver qui ressembler au tient était pas trop mal mais très limité.

Et oui j'ai trouver une solution mais qui me pose une colle sur la Progresse. Je suis en train de réglé tout ça, la solution c'est que le Sleep pour mesurer le temps arrête le script donc pendant le sleep on ne peut rien faire. Donc j'ai utilisé d'autres fonctions citées ci-dessus
► Afficher le texte
Colin117
Niveau 5
Niveau 5
Messages : 114
Enregistré le : jeu. 18 nov. 2010 17:57
Localisation : Vers là bas !
Status : Hors ligne

Re: [..] Arret du PC spécial

#16

Message par Colin117 »

Pff après environ d'une heure et demi de bataille avec mes leçons de math à me retaper toute la proportionnalité, j'ai enfin réussi a faire en sorte que cette progressbar puisse décrémenté proportionnellement aux secondes. pff c'était hardcore je vous le dit !

► Afficher le texteFICHUE CODE
Bref pour finir après le next, tu éfface les ligne et tu met shutdown(16) je crois je sais plus.
au pire tu va dans google tu tape: AutoIt shutdown(
► Afficher le texte
lokomass
Niveau 5
Niveau 5
Messages : 128
Enregistré le : mer. 15 déc. 2010 10:21
Status : Hors ligne

Re: [..] Arret du PC spécial

#17

Message par lokomass »

Mille merci à toi !!!

J'ai réussi à tout mettre en place comme je voulais, je met mon nouveau code modifié en bas, mais en tout cas, encore merci à toi d'avoir pris le temps de m'aider

► Afficher le texte
Colin117
Niveau 5
Niveau 5
Messages : 114
Enregistré le : jeu. 18 nov. 2010 17:57
Localisation : Vers là bas !
Status : Hors ligne

Re: [R] Arret du PC spécial

#18

Message par Colin117 »

De rien, ce fut un plaisir.
► Afficher le texte
lokomass
Niveau 5
Niveau 5
Messages : 128
Enregistré le : mer. 15 déc. 2010 10:21
Status : Hors ligne

Re: [R] Arret du PC spécial

#19

Message par lokomass »

Re salut,

Bon je suis désolé de revenir vers toi mais j'ai voulu faire une modif et ça ne fonctionne pas comme je veux alors, sans vouloir abuser de ta bonté, voici le soucis.

J'ai décider d'augmenter le temps avant que l'ordi s'éteigne de 60 à 500 secondes finalement.
J'ai tout betement remplacer les "60" par des "500" mais en rendant rapidement compte que ça ne fonctionnait pas...
Il se pass simplement, que de 500 à 400 pas de soucis, mais au lieu de continuer vers 399 on passe a 490 et gros beug, ralentissement plus rien ne marche.
Donc si tu pouvais soit juste me dire quoi faire, soit carément me remodifier le fichier mais je ne veux pas abuser....

Je te met le code, merci en tout cas..

► Afficher le texte

Bon en trafficotant j'ai finakement réussi en modifiant ceci (selon ma logique lol) :

Code : Tout sélectionner

    If $Time < 10 Then
        $Virgule = StringLeft($Time, 1)
    ElseIf $Time > 10 And $Time < 100 Then
        $Virgule = StringLeft($Time, 2)
    Elseif $time > 100 Then
        $Virgule = StringLeft($Time, 3)
    EndIf
Colin117
Niveau 5
Niveau 5
Messages : 114
Enregistré le : jeu. 18 nov. 2010 17:57
Localisation : Vers là bas !
Status : Hors ligne

Re: [R] Arret du PC spécial

#20

Message par Colin117 »

Excuse moi pour le retard,
lokomass a écrit :

Code : Tout sélectionner

    
;- Ceci est la fonction pour enlever tous les chiffres après la virgule. d'où le nom de la variable que j'ai pas trouver mieux ^^'
    If $Time < 10 Then ;- Si la variable du temps n'a pas dépasser la dizaine, alors
        $Virgule = StringLeft($Time, 1) ; on ne prend que le premier chiffre
    ElseIf $Time > 10 [color=#FF0000][u]And $Time < 100 Then[/u][/color] ;- ça t'en a pas besoin ! ;- si il a dépasser la dizaine, alors
        $Virgule = StringLeft($Time, 2) ; on prend les deux premiers chiffre
    Elseif $time > 100 Then ; si il a dépasser les centaine, alors
        $Virgule = StringLeft($Time, 3) ; on prend les 3 premier chiffre (ça tu l'as compris tout seul c'est super)
    EndIf ; fin du si
 
T'en a pas besoin vue que en bas, on vérifie si il est plus grand.
Sinon ouais c'est bien.

Je m'aperçois maintenant que je n'avais pas non plus fais de commentaires pour t'aider à comprendre le script, mais je vois que mon conseil de faire des test et de chercher à porter ses fruits, je suis content de toi !
J'ai rajouter des explication mais je suppose que tu avais compris. c'est juste pour les gens qui passent par là.

Et donc si on veux des milliers de secondes, on continue: "ElseIf $time > 1000 Then $Virgule = StringLeft($Time, 4)"
Bref etc... etc...
► Afficher le texte
Répondre