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 :

[C#] Détecter les évenements système


Sujet :

C#

  1. #1
    Membre régulier Avatar de ThitoO
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 134
    Points : 81
    Points
    81
    Par défaut [C#] Détecter les évenements système
    Bonjour,

    Je doit réaliser une petite application permettant de détecter l'ouverture/la fermeture d'une application sur la machine. Et doit aussi permettre de savoir qu'elle application à le focus.

    Je n'ai encore rien trouvé pour cela, je travail en C# et je n'ai aucune idée de réalisation ...

    Auriez-vous des pistes que je pourrais explorer ?

    Merci d'avance

  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 753
    Points
    39 753
    Par défaut
    Détecter l'ouverture ou la fermeture d'une application en temps réel n'est pas du tout évident... Par contre la méthode Process.GetProcesses permet de connaitre tous les process en cours d'exécution, donc tu peux appeler régulièrement cette méthode (avec un Timer par exemple) et comparer les résultats pour voir si un process a été lancé ou arrêté

    Pour savoir quelle est l'application active, a priori il faut passer par des fonctions Windows natives appelées par P/Invoke (attribut DllImport). Je ne peux pas te dire quelles fonctions exactement parce que je viens de réinstaller mon PC et je n'ai pas encore installé la doc MSDN...

  3. #3
    Membre régulier Avatar de ThitoO
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 134
    Points : 81
    Points
    81
    Par défaut
    Ok merci beaucoup, tu me donnes déjà un endroit où chercher c'est très bon début pour moi.

    Merci pour ton aide

  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 753
    Points
    39 753
    Par défaut
    voilà, la doc a fini de s'installer

    C'est la méthode GetForegroundWindow qui renvoie le handle de la fenêtre active. Tu peux la déclarer comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    using System.Runtime.InteropServices;
    ...
     
    [DllImport("user32.dll")]
    public static extern IntPtr GetForegroundWindow();
    Ensuite pour récupérer le process auquel appartient cette fenêtre, tu peux utiliser GetWindowThreadProcessId :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [DllImport("user32.dll")]
    public static extern long GetWindowThreadProcessId(IntPtr hWnd, ref long lpdwProcessId);

  5. #5
    Membre régulier Avatar de ThitoO
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 134
    Points : 81
    Points
    81
    Par défaut
    Merci beaucoup tomlev, c'est bon tout fonctionne !
    Merci de ton aide.

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

Discussions similaires

  1. Tables systèmes - détecter les insert/update/delete
    Par edefius dans le forum Administration
    Réponses: 15
    Dernier message: 07/04/2009, 08h28
  2. [C#] Détecter les changemens d'un élément (CollectionBase)
    Par Erakis dans le forum Windows Forms
    Réponses: 7
    Dernier message: 12/02/2005, 03h31
  3. coment détecter les positions des cotés d'un rectangle?
    Par einegel dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 18/01/2005, 10h26
  4. comment détecter les faces d'un mur
    Par einegel dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 17/01/2005, 23h12
  5. masquer les tables système
    Par jbat dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 06/05/2004, 12h51

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