IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Discussion :

Rapport d'erreurs Windows


Sujet :

Windows

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de SteelBox
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    446
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2002
    Messages : 446
    Par défaut Rapport d'erreurs Windows
    Bonjour,
    Je voudrais récupérer le texte du rapport d'erreurs de windows (que l'on peut d'ailleurs envoyer à Microsoft) qui contient de nombreuses informations sur le programme et la raison du crash (adresse de base, adresse de l'exception, pile, registres,dll chargées,...).

    Malheureusement, Windows a fait un rapport d'erreurs avec un contenu qu'on ne peut pas copier dans le presse papier.
    J'ai regardé sur le disque pour voir si le contenu n'était pas dumpé mais je n'ai rien trouvé.

    Savez vous comment récupérer le contenu ?
    Je pensais à une application qui récupère le texte du dialog contenant le texte (utilisation API FindWindo...). Si vous avez déjà un bout de code, n'hésitez pas à m'en faire profitez, c'est assez urgent...

    Merci

  2. #2
    Membre éclairé Avatar de SteelBox
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    446
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2002
    Messages : 446
    Par défaut
    J'ai un peu progressé dans ma quête...
    Résultat : Je peux récupérer la fenêtre avec l'API FindWindow et le texte avec l'API GetWindowText.
    Le problème est qu'il me retourne le texte qui est affiché à l'écran seulement. Il y a l'ascenseur qui me permet de faire défiler le texte.

    J'ai d'abord pensé essayer de récupérer le pointeur du texte en me disant que je pourrais aller chercher le texte en mémoire de l'application (en fait je pense que c'est faisable en étant en mode debug, ce qui permet d'examiner la mémoire d'autres process, mais cela requis les droits administrateur sur la machine ou s'exécute le programme :-(. )

    Sinon, je peux faire défiler la barre en envoyant des messages windows à la scrollbar. Le problème c'est que l'on peut remplir assez vite la pile windows qui gére les évènements et en plus, je ne sais pas comment m'arrêter "proprement" (j'ai bien des astuces comme comparer le texte extrait à la boucle précédente avec le texte de la boucle courante pour voir si on a progressé). A quel moment puis-je savoir que je suis arriver à la fin du défilement ?

    Merci

  3. #3
    Expert confirmé

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    C'est pour ta propre appli ?
    Si oui, y'a mieux:
    http://www.codeproject.com/debug/XCrashReportPt4.asp
    http://www.codeproject.com/debug/crash_report.asp

  4. #4
    Membre éclairé Avatar de SteelBox
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    446
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2002
    Messages : 446
    Par défaut
    Oui, c'est pour un usage perso.
    Merci pour les liens, c'est exactement ce que je recherchais et c'est plus 100 fois plus efficace que ce que j'ai codé en 45 min

  5. #5
    Membre éclairé Avatar de SteelBox
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    446
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2002
    Messages : 446
    Par défaut
    En fait, le problème est que dans ces applications, il faut mêler le code à celui de mon application pour gérer les exceptions.
    J'aimerais aboutir avec une solution externe au programmme.
    Du coup, je cherche encore à récupérer le texte.
    J'ai un petit problème : je voudrais savoir ou se situe la scrollbar, c'est à dire est on arrivé à la fin ? Savez vous comment faire ca ?

    Merci

  6. #6
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    8 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 8 055
    Billets dans le blog
    2
    Par défaut
    Bonjour !

    La fonction GetScrollInfo devrait t'aider.
    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

  7. #7
    Membre éclairé Avatar de SteelBox
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    446
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2002
    Messages : 446
    Par défaut
    Merci beaucoup
    J'ai une dernière question. Comment puis-je faire si je ne veux pas remplir la pile des évènements Windows ? Y'a t-il une méthode fiable ? Faut-il forcément mettre un sleep et si oui comment calculer le temps ?

    Merci

  8. #8
    Expert confirmé

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    Précises ta pensée... pile de ton programme ? Ou file des messages ?

  9. #9
    Membre éclairé Avatar de SteelBox
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    446
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2002
    Messages : 446
    Par défaut
    file des messages windows

  10. #10
    Expert confirmé

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    Pour ne pas qu'elle se remplisse, il suffit de la vider régulièrement, autrement dit de traiter les messages, autrement dit de passer régulièrement dans ta boucle des messages (GetMessage() ...). Pour celà, faut éviter de faire des traitements trop longs. Une solution, c'est de balancer les traitements couteux dans un thread.

  11. #11
    Membre éclairé Avatar de SteelBox
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    446
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2002
    Messages : 446
    Par défaut
    Oui, mais je rappelle que je controle la scrollbar d'une autre application, donc je peux pas changer la boucle des messages d'une application windows (en l'occurence le rapport d'erreur windows dont le contenu n'est pas copiable :-( ).

    Merci

  12. #12
    Expert confirmé

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    Ah... ça n'a rien à voir.
    Le contenu n'est pas copiable parce que c'est un autre process qui contient le texte, dans sa propre mémoire à lui.
    C'est compliqué pour y arriver... Pourquoi tu ne veux pas toucher à ton code ?

  13. #13
    Membre éclairé Avatar de SteelBox
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    446
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2002
    Messages : 446
    Par défaut
    Disons que je veux utiliser cette solution dans plusieurs programmes et il y a aussi une autre raison que je ne peux pas dévoiller. Enfin, je dois être trop têtu

Discussions similaires

  1. Décoder le rapport d'erreur windows
    Par matll dans le forum Windows
    Réponses: 0
    Dernier message: 04/01/2012, 03h18
  2. Rapport d'erreurs Windows pour crash programme C++.
    Par elraton dans le forum Windows
    Réponses: 7
    Dernier message: 02/02/2010, 11h47
  3. Message d'erreur Windows lors de l'exécution de l'appli D6-
    Par kolac dans le forum Bases de données
    Réponses: 4
    Dernier message: 07/12/2004, 17h55
  4. Erreur windows lors du malloc
    Par Elessar dans le forum C
    Réponses: 5
    Dernier message: 16/12/2003, 08h53
  5. Personnaliser un rapport d'erreur sous Windows XP
    Par Neilos dans le forum Windows
    Réponses: 5
    Dernier message: 21/11/2003, 18h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo