Wie bekomme ich eine Liste von laufenden Prozessnamen in VB.NET?

8

Ich versuche herauszufinden, ob eine Instanz einer Anwendung (nicht vb.net) bereits läuft - weil ich sie starten möchte, aber ich möchte sie nicht starten, wenn sie bereits läuft. Ich habe eine Lösung gefunden, um zu überprüfen, ob ein Prozess läuft:

%Vor%

und gibt True zurück, wenn & gt; = 1 (oder nur die Prozessnummer).

Mein Problem ist, dass es sich um eine Anwendung eines Drittanbieters handelt und der Prozessname nicht nur ein Name ist, sondern eine Versionsnummer enthält (die ich zur Laufzeit nicht kenne), und es scheint auch ein * 32 hinzuzufügen (also wahrscheinlich ein * 64 wenn es in x64 installiert ist?).

Ich muss eine Liste laufender Prozesse nach Namen abrufen und testen, ob "Prozessname" eine Teilzeichenfolge des Namens ist. Aber ich war nicht erfolgreich darin, eine Liste von Namen zu bekommen, nur Prozess-IDs.

    
Thalia 15.06.2012, 17:01
quelle

3 Antworten

7
  

Ich muss eine Liste laufender Prozesse nach Namen abrufen und testen, ob "Prozessname" eine Teilzeichenfolge des Namens ist.

Sie könnten verwenden:

%Vor%

Dies wird alle Prozesse durchsehen und den Wert procExists auf True setzen, wenn ein Prozess, der enthält processName in den aktuell ausgeführten Prozessen existiert. Dies sollte die Existenz der unbekannten Versionsnummer sowie der *32 behandeln, die auftreten können, wenn Sie auf einem 64-Bit-Betriebssystem laufen (das ist die WOW64-Flagge, die besagt, dass es ein 32-Bit-Prozess ist, der auf einem 64-Bit-Betriebssystem läuft) >     

Reed Copsey 15.06.2012, 17:11
quelle
6

Sie können die laufenden Prozesse wie folgt durchlaufen:

%Vor%     
John Koerner 15.06.2012 17:03
quelle
2

anderer Weg:

%Vor%     
nnm 16.06.2012 18:18
quelle

Tags und Links