Page 1 sur 1
[R] Aide pour exécution automatique
Posté : ven. 24 août 2012 11:15
par Quentin1
Bonjour !
J'ai un petit problème concernant un script que je voudrais réaliser, j'espère que vous allez pouvoir m'aider.
J'ai un programme qui fait une sauvegarde automatique de la base de donnée d'un salon de coiffure. C'est une petite fenêtre :
- Le titre de la fenêtre ne change pas et reste pareil
- Les boutons ne changent pas et reste pareil.
Pour me dire que la sauvegarde est terminée une phrase s'affiche : "Sauvegarde terminée".
Et je voudrais que quand la Sauvegarde se termine qu'il me ferme le programme.
Voilà ce que j'ai :
Code : Tout sélectionner
ShellExecute ( "Z:\" ) ;Ca me permet de me connecter au réseau car il se déconnecte sinon
WinWaitActive ( "Z:\" )
sleep ( 500 )
Send("!{F4}");
Run ( "C:\Program Files\xxxx\xxxx\sauvegarde.exe" )
WinWaitActive ( "Sauvegarde" ) ;
sleep ( 500 )
send ( "{ENTER}" )
Voilà ca me permet d'éxecuter le programme.
Mais je ne sais pas comment le fermer quand la phrase "Sauvegarde terminée" apparait, voici le détail de la phrase :
ID: 263418
Name : lblProgress
Instance : 3
Je précise que cette change au cours du programme, elle n'apparait pas a la fin. Le texte change en fonction de la phase de sauvegarde.
A la fin, le texte change en : "Sauvegarde terminée".
Cette phrase s'affiche dans la même fenêtre
J'espère que c'est clair
Cordialement
Re: [...]Aide pour exécution automatique
Posté : ven. 24 août 2012 11:40
par mikell
Les infos que tu donnes sur la fenêtre "sauvegarde" sont insuffisantes
Utilise l'infotool sur le label qui dans cette fenêtre contient la phrase "Sauvegarde terminée" et envoie une copie du "Summary" que tu obtiens
L'idée est de pouvoir utiliser un ControlGetText dans une boucle while
Re: [...] Aide pour exécution automatique
Posté : ven. 24 août 2012 11:40
par Quentin1
Voilà :
>>>> Window <<<<
Title: Sauvegarde
Class: WindowsForms10.Window.8.app3
Position: 1097, 322
Size: 456, 232
Style: 0x16CA0000
ExStyle: 0x00050109
Handle: 0x000B0480
>>>> Control <<<<
Class: WindowsForms10.STATIC.app3
Instance: 3
ClassnameNN: WindowsForms10.STATIC.app33
Name: lblProgress
Merci de votre réponse
Re: [...] Aide pour exécution automatique
Posté : ven. 24 août 2012 11:54
par mikell
Faudrait voir ce que donne un truc comme ça
Code : Tout sélectionner
$wnd = WinGetHandle("Sauvegarde", "")
$label = ControlGetHandle($wnd, "", "[NAME:lblProgress]")
While 1
WinActivate($wnd)
If ControlGetText ($wnd, "", $label) = "Sauvegarde terminée" Then Exitloop
Sleep(200)
Wend
WinClose($wnd)
Et évite les Send dans la mesure du possible ^^
Re: [...] Aide pour exécution automatique
Posté : ven. 24 août 2012 12:07
par Quentin1
Ca fonctionne très bien ! Je vous remercie beaucoup !
J'ai une deuxième question, mais cela devrait être simple :
J'ai un autre programme que j'ouvre à la suite que le premier programme s’éteint.
Ce deuxième programme s'éteint tout seul dès qu'il a fini, je voudrais savoir comme éteindre l'ordinateur quand le deuxième programme a fini.
Disons que le titre du programme est "Sauvegarde 2"
Merci beaucoup de votre aide, c'est génial !
Comment je pourrais remplacer les sends ? Par exemple pour fermer je pourrais faire :
$wnd = WinGetHandle("Z:\", "")
WinClose($wnd)
mais pour faire le "Entrer" ?
Voilà le bouton Sauvegarder du programme :
► Afficher le texte
Code : Tout sélectionner
>>>> Window <<<<
Title: Sauvegarde
Class: WindowsForms10.Window.8.app3
Position: 572, 319
Size: 456, 232
Style: 0x16CA0000
ExStyle: 0x00050109
Handle: 0x000C0584
>>>> Control <<<<
Class: WindowsForms10.BUTTON.app3
Instance: 3
ClassnameNN: WindowsForms10.BUTTON.app33
Name: btnBackup
Advanced (Class): [NAME:btnBackup]
ID: 853390
Text: Sauvegarder Maintenant
Position: 194, 160
Size: 128, 32
ControlClick Coords: 73, 18
Style: 0x5601000B
ExStyle: 0x00000000
Handle: 0x000D058E
>>>> Mouse <<<<
Position: 842, 526
Cursor ID: 0
Color: 0xDCDCDC
>>>> StatusBar <<<<
>>>> ToolsBar <<<<
>>>> Visible Text <<<<
Avancée...
Ok
Sauvegarder Maintenant
Sauvegarde
c:\Sauvegarde - vendredi 24 août 2012.zip
La sauvegarde sera enregistrée sur:
La sauvegarde a échoué
Nom:
Sauvegarde - vendredi 24 août 2012
>>>> Hidden Text <<<<
Re: [...] Aide pour exécution automatique
Posté : ven. 24 août 2012 12:09
par mikell
Regarde dans le fichier d'aide : ProcessExists (et WinExists) et Shutdown

Re: [...] Aide pour exécution automatique
Posté : ven. 24 août 2012 12:10
par Quentin1
J'ai répondu à votre édit plus haut, je vous recontacterai pour vous montrez ce que j'ai fais.
Re: [...] Aide pour exécution automatique
Posté : ven. 24 août 2012 12:15
par mikell
Comment je pourrais remplacer les sends ? Par exemple pour fermer je pourrais faire :
$wnd = WinGetHandle("Z:\", "")
WinClose($wnd)
Oui c'est bien ça
Et pour le bouton
Re: [...] Aide pour exécution automatique
Posté : ven. 24 août 2012 12:45
par Quentin1
Voilà voilà, j'ai réussi !!!!
Merci à vous de m'avoir aiguiller et aider, je vous montre le programme complet :
Code : Tout sélectionner
$wnd = WinGetHandle("Sauvegarde", "")
$wnd2 = WinGetHandle("Z:\", "")
ShellExecute ( "Z:\" )
WinWaitActive ( "Z:\" )
sleep ( 500 )
WinClose($wnd2)
Run ( "C:\Program Files\xxx\xxx\Backup.exe" )
WinWaitActive ( "Sauvegarde" ) ;
sleep ( 500 )
ControlClick ($wnd, "", "[NAME:btnBackup]")
While 1
$wnd = WinGetHandle("Sauvegarde", "")
$label = ControlGetHandle($wnd, "", "[NAME:lblProgress]")
WinActivate($wnd)
If ControlGetText ($wnd, "", $label) = "Sauvegarde terminée" Then Exitloop
Sleep(200)
Wend
WinClose($wnd)
Run ( "C:\xxx\compresse.exe" )
While 1
If not ProcessExists("compress.exe") Then Shutdown(8)
Sleep(500)
Wend
Re: [...] Aide pour exécution automatique
Posté : ven. 24 août 2012 12:55
par mikell
Code : Tout sélectionner
While 1
If not ProcessExists("compress.exe") Then Shutdown(8)
Sleep(500)
Wend
Un [R] dans le titre du 1er message please

Re: [R] Aide pour exécution automatique
Posté : ven. 24 août 2012 13:03
par Quentin1
Voilà, titre modifié et merci encore pour votre aide.
Je vous donnerai des nouvelles ce soir lors de la sauvegarde quotidienne du soir !!
J'ai actualisé le code par le votre