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

C# Discussion :

Récupérer des évènements windows


Sujet :

C#

  1. #1
    Membre habitué
    Inscrit en
    Septembre 2007
    Messages
    254
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 254
    Points : 181
    Points
    181
    Par défaut Récupérer des évènements windows
    Bonjour,

    Est il possible de créer des eventHandler sur des évènements Windows tel que lancement d'un programme, arrêt d'un processus, etc...

    Je cherche à faire un programme qui lance un petit algorithme au lancement d'un nouveau processus. On démarre notepad par exemple, mon programme qui sommeille en arrière plan s'exécute.

    Merci.

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Il y a sans doute un hook système qui permet ça, mais il faut s'accrocher pour utiliser ça...
    Sinon tu peux toujours surveiller les processus qui tournent avec Process.GetProcesses, pour détecter les nouveaux processus lancés

  3. #3
    Membre habitué
    Inscrit en
    Septembre 2007
    Messages
    254
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 254
    Points : 181
    Points
    181
    Par défaut
    Je cherche justement à éviter de faire ça. Pour le moment j'utilise le GetProcesses et compare la liste actuel des nouveaux Process la même liste prise une seconde plus tôt. J'utilise les techniques de comparaisons de liste expliquées ici.

    En attendant je suis tombé sur cet article. Ça m'a tout l'air ce dont j'ai besoin.

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    effectivement WMI me semble une bonne solution

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 002
    Points : 552
    Points
    552
    Par défaut
    je sais qu'il y a un evenement qui te previens dès qu'un nouveau process demarre... c est tjs mieux que d'utiliser ton system actuel

    un ami l'avait fait en Cpp il y a peu de temps...

    je suis curieux de savoir ce que tu veux coder ?

  6. #6
    Membre habitué
    Inscrit en
    Septembre 2007
    Messages
    254
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 254
    Points : 181
    Points
    181
    Par défaut
    Je sais pas ce qu'est le WMI. Je vais me renseigner c'est pas le première fois que j'en entend parler. En tout cas je viens de tester le code que je donne ci-dessus et ça fonctionne parfaitement. Je capture tout les événements d'ajouts, de suppression et de modification des Process.

    Problème résolu.

    Citation Envoyé par alavoler Voir le message
    je suis curieux de savoir ce que tu veux coder ?
    J'ai pleins de scripts du genre ahk, pie, php, bat ainsi que des logiciels que j'aimerais pourvoir exécuter facilement en parallèle à certaines applications et jeux. Par exemple lancer le script de mapping de touches de ma télécommande quand je lance mon media center et le stopper quand je coupe ce dernier. Un autre exemple, lancer automatiquement un programme tel que Teamspeak au lancement d'un jeu en ligne. Dans un second temps l'idée est que si Teamspeak ou un de mes scripts crash en arrière plan mon soft soit capable de le relancer silencieusement.

    Le gestion de mes scripts commence à devenir un peu difficile à gérer. J'en ai trop et les batch de lancement ne suffisent plus. Le batch permet de lancer facilement un script en parallèle mais pas le stopper.

    Mon idée est donc d'écrire un fichier xml reprenant le nom d'un processus et le liste des scripts ou software à exécuter en parallèle. Donc pour chaque process qui se lance je vais regarder dans la liste xml et s'il existe lancer ses scripts/softs associés.

    Dans un même temps ce programme c'est pour moi l'occasion de coder des choses que je n'ai pas l'habitude de faire.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 05/03/2011, 19h52
  2. Réponses: 5
    Dernier message: 13/08/2008, 16h29
  3. lecture des événements Windows sous access
    Par doumdoum dans le forum VBA Access
    Réponses: 0
    Dernier message: 18/04/2008, 11h12
  4. [C#] Timer sur les évènements des messages Windows
    Par Nullos Oracle dans le forum Windows Forms
    Réponses: 1
    Dernier message: 19/09/2006, 11h33
  5. windows, gestion des évènement
    Par frednain dans le forum Windows
    Réponses: 5
    Dernier message: 31/07/2006, 16h38

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