Page 1 sur 2
[..] Executer une fonction en fin de prog.
Posté : mar. 29 juil. 2014 16:57
par Bonjour
Bonjour peut on executer une fonction lorsque le prog se termine même s'il est forcé à la fermeture ou s'il crache ou pour n'importe quelle autre cause de sa fermeture ?
Merci d'avance

Re: [..] Executer une fonction en fin de prog.
Posté : mar. 29 juil. 2014 17:28
par blacksoul305
Bonjour,
en cas de fermeture normale de l'ordinateur (pas normale = extinction depuis alimentation ou autre manière brutale) planifiée ou non, il y a la fonction OnAutoItExitRegister. Maintenant si ton programme crash véritablement, je ne pense pas qu'il puisse lancer une fonction. A part si tu as un check-up préventif avant d'inclus.
Bon courage !
Re: [..] Executer une fonction en fin de prog.
Posté : mar. 29 juil. 2014 17:45
par Bonjour
Un quoi ?
Re: [..] Executer une fonction en fin de prog.
Posté : mar. 29 juil. 2014 17:48
par blacksoul305
Je veux seulement dire par là qu'à moins que tu aies une fonction qui te permet de prévoir à l'avance un crash de ton programme, tu ne peux rien faire exécuter s'il crash.
Re: [..] Executer une fonction en fin de prog.
Posté : mar. 29 juil. 2014 17:50
par Bonjour
ok merci quand même
Re: [..] Executer une fonction en fin de prog.
Posté : mar. 29 juil. 2014 17:52
par Bonjour
Et sinon est ce qu on peut detecter lorsque le gestionnaire des taches et actif et que mon programme est selectionné comme lorsque qu on veut le forcer à s'arreter ?
Re: [..] Executer une fonction en fin de prog.
Posté : mar. 29 juil. 2014 18:00
par jchd
Quel intérêt ? De plus cela ne couvrirait pas le cas d'arrêt demandé en ligne de commande ou par Process Explorer ou autre, par exemple via un autre programme. OnAutoItExitRegister() est quand même de très loin la solution la plus robuste et sans conteste la plus simple !
Re: [..] Executer une fonction en fin de prog.
Posté : mar. 29 juil. 2014 18:04
par Bonjour
Et bien j'ai un prog qui contient de nombreuse données mais il contient de nombreux bug et lorsque qu'il y a un bug je voudrai l’arrêter avant un accident mais je tient a recup mes données c'est pour ça
Re: [..] Executer une fonction en fin de prog.
Posté : mar. 29 juil. 2014 18:41
par jchd
Il suffit de corriger les bogues.
Re: [..] Executer une fonction en fin de prog.
Posté : mar. 29 juil. 2014 18:59
par Bonjour
Merci Einstein

Re: [..] Executer une fonction en fin de prog.
Posté : mar. 29 juil. 2014 19:50
par jchd
Tu es en train de nous dire que tu construis des avions de ligne qui ont une fâcheuse tendance à exploser en plein vol à haute altitude, provoquant la disparition corps et âmes de ses occupants, dont il ne reste rien après chaque accident.
Ta solution miracle est de greffer à chaque passager une plaque en platine irridié gravée à son état civil afin de pouvoir reconnaître les quelques restes humains lors de futurs accidents.
Je m'incline devant l'aspect génial de ta solution, néanmoins mon petit doigt me dit qu'il pourrait éventuellement en exister une autre.
Re: [..] Executer une fonction en fin de prog.
Posté : mar. 29 juil. 2014 20:43
par Bonjour
Énorme j'ai adoré mais ne fait ce que je voudrais c'est plutôt de récupérer le nombre pigeon que l'avion à croisé car il n'a aucun rapport de près ou de loin avec le crach ou le bug du prog en fait le problème vient du fait que mon ordi surchauffe parfois et fait planter certains prog
Mais bon ducoup il n'y a pas de soluce pour retrouver le nombre de pigeons si l'avion se crach ?
Re: [..] Executer une fonction en fin de prog.
Posté : mar. 29 juil. 2014 20:45
par mikell
blacksoul305 a écrit :...à moins que tu aies une fonction qui te permet de prévoir à l'avance un crash de ton programme
Le concept même de crash sous-entend que c'est imprévu
Mais s'il existe une fonction capable de prévoir un crash imprévu, faut absolument faire breveter
Bonjour a écrit :Et bien j'ai un prog qui contient de nombreuse données mais il contient de nombreux bug
Un tel prog ne devrait pas être autorisé à tourner
Sinon la solution s'appelle surveiller la t° de l'ordi (se munir d'aspirine) et surtout sauvegardes + travail sur une copie des données avec update s'il n'y a eu aucun bug
Re: [..] Executer une fonction en fin de prog.
Posté : mar. 29 juil. 2014 20:51
par Bonjour
OUi faire une sauvegarde sur un dossier txt c'est déjà au point depuis quelque message mais bon s'il existe une autre solution je suis preneur.
Sinon j'avais aussi pensé a lancer un autre prog qui récupère les données ( que j'ai appris à faire grâce à un autre de mes post ).
Re: [..] Executer une fonction en fin de prog.
Posté : mar. 29 juil. 2014 21:05
par jchd
J'ai trouvé : c'est Steve Balmer qui se cache derrière le pseudo Bonjour.
Re: [..] Executer une fonction en fin de prog.
Posté : mar. 29 juil. 2014 21:16
par Bonjour
C'est un compliment ?
Re: [..] Executer une fonction en fin de prog.
Posté : mar. 29 juil. 2014 21:30
par orax
Tu peux quand même savoir si ton script à planté ou a été forcé de s'arrêter. Il suffirait d'avoir un script lanceur et de récupérer le code de retour du script lancé. Si le code n'est pas 0, on peut supposer qu'il y a eu un problème.
Code : Tout sélectionner
#include <MsgBoxConstants.au3>
Local $r = RunWait("C:\Program Files (x86)\AutoIt3\autoit3_x64.exe mon_autre_script_qui_plante_tout_le_temps.au3")
MsgBox($MB_SYSTEMMODAL, "", "Code de retour : " & $r)
Bien sûr, il y a peu d'intérêt puisque le script plantera quand même ! Mais ça pourrait avoir une utilité si tu souhaites, par exemple, relancer automatiquement le script lors d'un plantage. C'est comme vouloir faire redécoller un avion qui vient de se crasher…
Re: [..] Executer une fonction en fin de prog.
Posté : mar. 29 juil. 2014 22:38
par Bonjour
OK c'est une bonne idée mais est ce que run fonctionne avec un autre script car chez moi sa ne marche pas je dois utiliser ShellExecute
Re: [..] Executer une fonction en fin de prog.
Posté : mar. 29 juil. 2014 23:08
par jguinch
La meilleure solution reste d'acheter des ventilos et de la pâte thermique (voir passer prendre des glaçons tous les matins au Mc Do')

.
Sinon, tu peux faire un exécutable que tu lances régulièrement via une tâche planifiée : son travail sera de détecter si le programme principal fonctionne ou non, et le relance si besoin.
Re: [..] Executer une fonction en fin de prog.
Posté : mer. 30 juil. 2014 01:12
par orax
Bonjour a écrit :OK c'est une bonne idée mais est ce que run fonctionne avec un autre script car chez moi sa ne marche pas je dois utiliser ShellExecute
Ben oui, c'est ce que j'avais fait dans l'exemple. Sinon ShellExecuteWait pourrait aller aussi.
Sinon si vraiment ça surchauffe trop, achète quelques bidons d'azote liquide à la droguerie du coin.
Avec ça la relance est automatique si le script s'est mal terminé.
Code : Tout sélectionner
Do
$r = RunWait("C:\Program Files (x86)\AutoIt3\autoit3_x64.exe mon_autre_script_qui_plante_tout_le_temps.au3")
Until $r = 0