Post by KevinH » 27 Apr 2018, 07:32
Merci pour ta réponse je pense que winwaitclose peut faire l'affaire.
Dans mon cas, le logiciel bug mais le processus reste ouvert, il faut fermer de force les fenêtres, le processus puis relancer le programme en se loguant.
J'avais fait trois codes/boucles, un pour fermer le programme en cas de bug, un pour fermer le processus associé si le programme était fermé et un pour lancer le programme si le processus est correctement fermé.
Loop
{
IfWinExist, XXX,&Fermer 'boite de message suite à bug
{
WinActivate
}
else
{
WinWait, XXX,&Fermer 'boite de message suite à bug
WinActivate
}
IfWinActive, XXX
Send {ENTER}
IfWinExist, Application Error 'boite de message suite à bug
{
WinActivate
}
else
{
WinWait, Application Error,&Fermer 'boite de message suite à bug
WinActivate
}
IfWinActive, Application Error
Send {ENTER}
}
Process, Close, ntvdm.exe 'pour fermer proprement le programme
Loop
{
IfWinExist, XXX, 'si le logiciel marche normalement ne rien faire
return
else
Process, Close, ntvdm.exe 'sinon fermer le processus
}
Loop
{
Process, WaitClose, XXX.exe 'une fois le processus fermé, relancer le programme
Run, C:\XXX.EXE
}
Quand j'ai le temps j'essayerai de le toiletter pour en créer un seul et faire un sorte qu'il reste ouvert même une fois qu'il a réussi à relancer le programme. Je pense que je pourrai simplifier le code en tuant le processus dès que la première boite de message de bug apparaît. Mais là je n'ai pas le temps de me pencher dessus
!
Merci pour ta réponse je pense que winwaitclose peut faire l'affaire.
Dans mon cas, le logiciel bug mais le processus reste ouvert, il faut fermer de force les fenêtres, le processus puis relancer le programme en se loguant.
J'avais fait trois codes/boucles, un pour fermer le programme en cas de bug, un pour fermer le processus associé si le programme était fermé et un pour lancer le programme si le processus est correctement fermé.
Loop
{
IfWinExist, XXX,&Fermer 'boite de message suite à bug
{
WinActivate
}
else
{
WinWait, XXX,&Fermer 'boite de message suite à bug
WinActivate
}
IfWinActive, XXX
Send {ENTER}
IfWinExist, Application Error 'boite de message suite à bug
{
WinActivate
}
else
{
WinWait, Application Error,&Fermer 'boite de message suite à bug
WinActivate
}
IfWinActive, Application Error
Send {ENTER}
}
Process, Close, ntvdm.exe 'pour fermer proprement le programme
Loop
{
IfWinExist, XXX, 'si le logiciel marche normalement ne rien faire
return
else
Process, Close, ntvdm.exe 'sinon fermer le processus
}
Loop
{
Process, WaitClose, XXX.exe 'une fois le processus fermé, relancer le programme
Run, C:\XXX.EXE
}
Quand j'ai le temps j'essayerai de le toiletter pour en créer un seul et faire un sorte qu'il reste ouvert même une fois qu'il a réussi à relancer le programme. Je pense que je pourrai simplifier le code en tuant le processus dès que la première boite de message de bug apparaît. Mais là je n'ai pas le temps de me pencher dessus :oops: !