Détecter le crash d'une Application en VB 2005

Résolu
cs_fauve Messages postés 661 Date d'inscription vendredi 2 décembre 2005 Statut Membre Dernière intervention 23 mars 2011 - 4 nov. 2006 à 13:36
OneHacker Messages postés 1447 Date d'inscription jeudi 2 novembre 2000 Statut Membre Dernière intervention 23 septembre 2007 - 5 nov. 2006 à 08:23
Bonjour à tous,

         Voila je conçois un application en VB avec Microsoft Visual Basic 2005 Edition Express. Le but de cette application est de gérer une liste d'étudiants avec une structure et je voudrais s'il existe un quelconque moyen de détecter le crash d'une application afin de pouvoir sauvegarder le contenu de la structure dans un fichier pour le restaurer au prochain démarrage de l'application.

Merci

7 réponses

OneHacker Messages postés 1447 Date d'inscription jeudi 2 novembre 2000 Statut Membre Dernière intervention 23 septembre 2007 2
5 nov. 2006 à 08:23
Détecter un crash : 
         If Not Diagnostics.Process.GetCurrentProcess.Responding Then
            ' Crash
        End If

Redman
3
cs_fauve Messages postés 661 Date d'inscription vendredi 2 décembre 2005 Statut Membre Dernière intervention 23 mars 2011 8
4 nov. 2006 à 13:37
Et si oui comment on pourrait y arriver ?

Merci
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
4 nov. 2006 à 14:45
Il ne tient qu'à toi de faire une application qui ne plante pas : je ne pense pas le crash d'une application soit un problème déterministe !
0
cs_fauve Messages postés 661 Date d'inscription vendredi 2 décembre 2005 Statut Membre Dernière intervention 23 mars 2011 8
4 nov. 2006 à 17:54
Salut Darksidious,

            Je fais des applications qui ne plante pas, mais parfois un programme peut qu'il ne réponde plus et du coup, on a pas le choix, on est obligé de faire terminer maintenant sous windows XP et l'utilisateur n'auras pas pu enregistrer sa liste d'étudiants
c'est pourquoi, je voudrais détecter si l'application plante (par exemple : quand word plante il te propose de récupérer ton document ou une partie de celui-ci. Je voudrais faire la même chose avec ma structure. Je crois avoir entendu que le code d'office était en VB donc il est techniquement possible de le faire. 

            Imaginons que mon application plante, si je met du code dans  l'évènement Form1_Unload ou Form1_Close est ce que cet évènement s'éxécuterais si l'application plante ?

Merci

             

        
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
4 nov. 2006 à 18:28
Lol, office en VB, ca me ferais bien rire ! Office permet de faire du VBA, et les dernières versions sont relativement lourdes, mais de là à ce qu'il soit codés en VB quand même ! C'est comme si solaris était codé en java, lol !

Non, le code dans le Form_Unload ou Form_Close ne sera pas éxécuté puisque ton prog sera fermé violement => plus rien de sera exécuté !
De toute façon, en cas de coupure de courant par exemple, comment voudrais-tu pouvoir éxécuter quelques chose juste avant que le PC s'éteigne ??? cà n'a aucun sens !

Par contre, tu peux faire un système où tu enregistre de temps en temps des sauvegardes de ce qui est fait (ce que fait office en tâche de fond), et revenir à la dernière sauvegarde si ton prog n'a pas été fermé correctement (mettre une clé de la base de registre à une certaine valeur à chaque ouverture/fermeture de ton prog te permettrait de savoir s'il a été terminé normalement ou pas).
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
4 nov. 2006 à 18:35
"...code d'office était en VB..."


Non Office est codé en C et C++, c'est le langage de programmation des macros qui est une variante de VB, C'est VBA.

Détecter le crash d'une application.... Et même si c'est possible, c'est trop tard. Ton application à crasher, il n'y a plus rien à récupérer. Et de toute façon elle est arretée par le système, elle n'a plus (et n'auras plus) la main.

Le fonctionnement de word est simple. Régulièrement lorsque tu travaille, Word enregistre certaines infos dans un fichier tampon.
Lorsque ton document est enregistré sur le disque, le fichier tampon est vidé et détruit. Puis ça recommence. Si Word crashe, ce fichier n'est pas détruit.
A chaque lancement Word vérifie si de tels fichiers existent. S'il en trouve un, il sait qu'il y a eu un crash. Il lui reste plus qu'ouvrir le fichier et récupérer les infos d'avant le crash (mais jamais au moment précis de crash).

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
cs_fauve Messages postés 661 Date d'inscription vendredi 2 décembre 2005 Statut Membre Dernière intervention 23 mars 2011 8
4 nov. 2006 à 20:13
Merci à DARKSIDIOUS et casy de m'avoir répondu.

Comment peut on savoir si le programme c'est fermé correctement ? Existe t-il un évènement ou une fonction permettant de savoir si l'application s'est bien fermée et si ce n'est pas le cas. Sinon DARKSIDIOUS je trouves ton idée de créer un fichier pour sauvegarder la liste d'étudiants régulièrement très intéressantes. J'utiliserais un timer pour la réaliser. Mais je préfère détecter l'existence d'un fichier que mettre une clé dans le registre.

Sinon est ce que tu connaitrais un moyen de pouvoir sauvegarder et lire une structure en une fois avec la fonction FilePut et FileGet ? Si oui comment ? parce que je trouves ça pas très élégant de faire un for pour enregistrer chaque étudiant un par un

Ma structure est déclarée de cette manière :

Public

Structure ETUDIANT

      Dim Nom
As
String
      Dim Prenom
As
String
      Dim Bac
As
String
      Dim NoteSH
As
Decimal
      Dim NoteGE
As
Decimal
      Dim NotePP
As
Decimal
      Dim NoteMOY
As
Decimal
      Dim Rang
As
Integer

End
Structure

Public tab(41)
As ETUDIANT

Merci
0
Rejoignez-nous