Détecter le crash d'une Application en VB 2005 [Résolu]

cs_fauve 661 Messages postés vendredi 2 décembre 2005Date d'inscription 23 mars 2011 Dernière intervention - 4 nov. 2006 à 13:36 - Dernière réponse : OneHacker 1466 Messages postés jeudi 2 novembre 2000Date d'inscription 23 septembre 2007 Dernière intervention
- 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
Afficher la suite 

7 réponses

Répondre au sujet
OneHacker 1466 Messages postés jeudi 2 novembre 2000Date d'inscription 23 septembre 2007 Dernière intervention - 5 nov. 2006 à 08:23
+3
Utile
Détecter un crash : 
         If Not Diagnostics.Process.GetCurrentProcess.Responding Then
            ' Crash
        End If

Redman
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de OneHacker
cs_fauve 661 Messages postés vendredi 2 décembre 2005Date d'inscription 23 mars 2011 Dernière intervention - 4 nov. 2006 à 13:37
0
Utile
Et si oui comment on pourrait y arriver ?

Merci
Commenter la réponse de cs_fauve
cs_DARKSIDIOUS 15838 Messages postés jeudi 8 août 2002Date d'inscription 4 mars 2013 Dernière intervention - 4 nov. 2006 à 14:45
0
Utile
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 !
Commenter la réponse de cs_DARKSIDIOUS
cs_fauve 661 Messages postés vendredi 2 décembre 2005Date d'inscription 23 mars 2011 Dernière intervention - 4 nov. 2006 à 17:54
0
Utile
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

             

        
Commenter la réponse de cs_fauve
cs_DARKSIDIOUS 15838 Messages postés jeudi 8 août 2002Date d'inscription 4 mars 2013 Dernière intervention - 4 nov. 2006 à 18:28
0
Utile
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).
Commenter la réponse de cs_DARKSIDIOUS
cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention - 4 nov. 2006 à 18:35
0
Utile
"...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 #
Commenter la réponse de cs_casy
cs_fauve 661 Messages postés vendredi 2 décembre 2005Date d'inscription 23 mars 2011 Dernière intervention - 4 nov. 2006 à 20:13
0
Utile
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
Commenter la réponse de cs_fauve

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.