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 :

Generer un message d'erreur a l'arret d'un service


Sujet :

Windows

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut Generer un message d'erreur a l'arret d'un service
    Bonjour,

    Je développe un service en C et je cherche le moyen de générer une erreur dans le journal d'événement quand j'arrête mon service en cas d'erreur pendant son exécution.

    Je n'ai rien trouvé la dessus, si quelqu'un a une idée

    Merci.

  2. #2
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par défaut
    Que ne sais-tu pas faire ? Intercepter le plantage ou écrire dans l'EventLog ?
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut
    Générer l'erreur dans l'eventlog

    J'ai trouvé dans MSDN ceci:
    EventWrite
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ULONG EventWrite(
      __in      REGHANDLE RegHandle,
      __in      PCEVENT_DESCRIPTOR EventDescriptor,
      __in      ULONG UserDataCount,
      __in_opt  PEVENT_DATA_DESCRIPTOR UserData
    );
    Et pour obtenir REGHANDLE RegHandle, EventRegister.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ULONG EventRegister(
      __in      LPCGUID ProviderId,
      __in_opt  ENABLECALLBACK EnableCallback,
      __in_opt  PVOID CallbackContext,
      __out     PREGHANDLE RegHandle
    );
    Mais la gros soucis je ne trouve rien pour obtenir LPCGUID ProviderId

    Hum autre problème j'ai un message d'erreur me disant que EventRegister n'as pas été trouver dans ADVAPI32.DLL, d'après MSDN ça n'existe que depuis Vista :S

    Comment faire sous XP

  4. #4
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par défaut
    Je crois que ce n'est pas la bonne API d'eventlog.
    Essaie plutôt des fonctions comme RegisterEventSource() et LogEvent()...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut
    Ah merci
    Par contre LogEvent n'existe pas, c'est ReportEvent, mais la aussi j'ai un petit soucis avec cette fonction.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    BOOL ReportEvent(
      __in  HANDLE hEventLog,
      __in  WORD wType,
      __in  WORD wCategory,
      __in  DWORD dwEventID,
      __in  PSID lpUserSid,
      __in  WORD wNumStrings,
      __in  DWORD dwDataSize,
      __in  LPCTSTR *lpStrings,
      __in  LPVOID lpRawData
    );
    Je ne comprend pas ce qu'il faut mettre pour dwEventID du coup j'ai toujours l'erreur Invalid Parameter.

    Tu aurais une idée?

  6. #6
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    La génération d'un EventLog est un tout petit peu plus compliquée que cela.

    Il faut d'abord enregistrer la source. Ensuite tu peux générer un message en indiquant son identifiant. Le système ira chercher la chaine de caractère dans les DLL ou EXE indiquées lors de l'enregistrement de la source. Il faut donc aussi créer des ressources spéciales dans ton exe ou dans une DLL.

    Un exemple ici dans le msdn (en anglais)
    http://msdn.microsoft.com/en-us/libr...81(VS.85).aspx
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

Discussions similaires

  1. le serveur sql anywhere s'arrete sans message d'erreur
    Par omarkaocem dans le forum SQL Anywhere
    Réponses: 0
    Dernier message: 09/10/2013, 16h06
  2. Réponses: 4
    Dernier message: 07/07/2010, 11h23
  3. Comment arreter un script sans message d'erreur?
    Par stich51 dans le forum Général Python
    Réponses: 3
    Dernier message: 14/05/2010, 10h31
  4. Arret d'un thread sans message d'erreur
    Par Beujator dans le forum ASP.NET
    Réponses: 6
    Dernier message: 24/07/2009, 10h25
  5. Réponses: 3
    Dernier message: 30/07/2007, 11h55

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