2010-12-17 7 views
0

Est-il possible de déterminer si un programme Microsoft .NET est en cours d'exécution sur un ordinateur Windows?Comment voir si un programme .NET est en cours d'exécution

+0

Voulez-vous dire un programme spécifique pour lequel vous connaissez le nom ou un programme en cours d'exécution sur l'ordinateur .Net? –

+0

Votre programme ou un programme .net? – jgauffin

+0

Et si elle fonctionne sur Windows, ou si elle s'exécute du tout? – Dykam

Répondre

2

Si vous essayez d'identifier les processus/applications qui sont explicites à .NET, vous devez rechercher une dépendance/module dans le processus qui est spécifique au framework .NET. Ci-dessous j'utilise mscorlib, car c'est le premier qui me vient à l'esprit, comme mon indice pour identifier que le processus dépend du framework .NET. par exemple.

 var processes = Process.GetProcesses(); 
     foreach (var process in processes) 
     { 
      try 
      { 
       foreach (var module in process.Modules) 
       { 
        if (module.ToString().Contains("mscorlib")) 
        { 
         Console.WriteLine(process); 
         break; 
        } 
       } 
      } 
      catch { // Access violations } 
     } 

Ce n'est pas l'épreuve des balles, car certains processus ne peuvent pas avoir leurs modules dénombrées en raison des restrictions d'accès, mais si vous l'exécutez, vous verrez qu'il retirer les processus dépendants .NET. Peut-être que cela vous donnera un bon point de départ pour vous amener à penser dans la bonne direction.

2

Ce qui va retourner vrai si un ou plusieurs processus en cours d'exécution qui ont le nom fourni.

public bool IsProcessRunning(string processName) 
    { 
     return Process.GetProcessesByName(processName).Length != 0; 
    } 
1

Check out CorPublishLibrary - une bibliothèque qui vous permet d'interroger tous les processus gérés par le code en cours d'exécution sur une machine.

alt text

Questions connexes