[..] Executer une fonction en fin de prog.

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Bonjour
Niveau 5
Niveau 5
Messages : 138
Enregistré le : ven. 06 juin 2014 08:27
Status : Hors ligne

[..] Executer une fonction en fin de prog.

#1

Message 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 :D
Avatar du membre
blacksoul305
Membre émérite
Membre émérite
Messages : 957
Enregistré le : ven. 18 mars 2011 11:49
Localisation : Au pays des programmeurs.
Status : Hors ligne

Re: [..] Executer une fonction en fin de prog.

#2

Message 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 !
Étudiant en 2ème année de Licence Informatique.
Bonjour
Niveau 5
Niveau 5
Messages : 138
Enregistré le : ven. 06 juin 2014 08:27
Status : Hors ligne

Re: [..] Executer une fonction en fin de prog.

#3

Message par Bonjour »

Un quoi ?
Avatar du membre
blacksoul305
Membre émérite
Membre émérite
Messages : 957
Enregistré le : ven. 18 mars 2011 11:49
Localisation : Au pays des programmeurs.
Status : Hors ligne

Re: [..] Executer une fonction en fin de prog.

#4

Message 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.
Étudiant en 2ème année de Licence Informatique.
Bonjour
Niveau 5
Niveau 5
Messages : 138
Enregistré le : ven. 06 juin 2014 08:27
Status : Hors ligne

Re: [..] Executer une fonction en fin de prog.

#5

Message par Bonjour »

ok merci quand même
Bonjour
Niveau 5
Niveau 5
Messages : 138
Enregistré le : ven. 06 juin 2014 08:27
Status : Hors ligne

Re: [..] Executer une fonction en fin de prog.

#6

Message 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 ?
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2284
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [..] Executer une fonction en fin de prog.

#7

Message 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 !
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Bonjour
Niveau 5
Niveau 5
Messages : 138
Enregistré le : ven. 06 juin 2014 08:27
Status : Hors ligne

Re: [..] Executer une fonction en fin de prog.

#8

Message 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
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2284
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [..] Executer une fonction en fin de prog.

#9

Message par jchd »

Il suffit de corriger les bogues.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Bonjour
Niveau 5
Niveau 5
Messages : 138
Enregistré le : ven. 06 juin 2014 08:27
Status : Hors ligne

Re: [..] Executer une fonction en fin de prog.

#10

Message par Bonjour »

Merci Einstein :D
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2284
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [..] Executer une fonction en fin de prog.

#11

Message 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.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Bonjour
Niveau 5
Niveau 5
Messages : 138
Enregistré le : ven. 06 juin 2014 08:27
Status : Hors ligne

Re: [..] Executer une fonction en fin de prog.

#12

Message 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 :lol:

Mais bon ducoup il n'y a pas de soluce pour retrouver le nombre de pigeons si l'avion se crach ?
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Executer une fonction en fin de prog.

#13

Message 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
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Bonjour
Niveau 5
Niveau 5
Messages : 138
Enregistré le : ven. 06 juin 2014 08:27
Status : Hors ligne

Re: [..] Executer une fonction en fin de prog.

#14

Message 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 ).
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2284
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [..] Executer une fonction en fin de prog.

#15

Message par jchd »

J'ai trouvé : c'est Steve Balmer qui se cache derrière le pseudo Bonjour.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Bonjour
Niveau 5
Niveau 5
Messages : 138
Enregistré le : ven. 06 juin 2014 08:27
Status : Hors ligne

Re: [..] Executer une fonction en fin de prog.

#16

Message par Bonjour »

C'est un compliment ?
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [..] Executer une fonction en fin de prog.

#17

Message 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…
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Bonjour
Niveau 5
Niveau 5
Messages : 138
Enregistré le : ven. 06 juin 2014 08:27
Status : Hors ligne

Re: [..] Executer une fonction en fin de prog.

#18

Message 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
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] Executer une fonction en fin de prog.

#19

Message 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.
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [..] Executer une fonction en fin de prog.

#20

Message 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
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Répondre