Ich versuche herauszufinden, ob eine Instanz einer Anwendung (nicht vb.net) bereits läuft - weil ich es starten will, aber ich möchte es nicht starten, wenn es bereits läuft.Wie bekomme ich eine Liste von laufenden Prozessnamen in VB.NET?
Dim proc As Integer = Process.GetProcessesByName(ProcessName).GetUpperBound(0) + 1
und zurück True, wenn> = 1 (oder nur die Prozessnummer): Ich habe eine Lösung zu prüfen, ob ein Prozess ausgeführt wird gefunden.
Mein Problem ist, das ist eine Anwendung von Drittanbietern, und sein Prozessname ist nicht nur ein Name, aber es enthält eine Versionsnummer (die ich zur Laufzeit nicht wissen kann), und es scheint auch ein * hinzuzufügen 32 (also wahrscheinlich ein * 64, wenn es in x64 installiert ist?).
Ich brauche eine Liste der laufenden Prozesse, nach Namen, und testen, ob "Prozessname" eine Teilzeichenfolge des Namens ist. Aber ich war nicht erfolgreich in einer Liste von Namen, nur Prozess-IDs.
ich versucht habe, dies aber "Any" funktioniert nicht. Danke für die Erklärung der * 32. – Thalia
@ emptyheaded Fügen Sie einfach "Import System.Linq" am Anfang Ihrer Datei hinzu, und Any sollte funktionieren. Es ist eine LINQ-Erweiterungsmethode (http://msdn.microsoft.com/en-us/library/bb534972.aspx) –
@Reed Copsey: Sollte es nicht "p.ProcessName.Contains" anstelle von p.Name.Contains sein? Und ich bin mir nicht sicher, ob .Any CasEnsensitive ist. Sonst wäre ein paar zusätzliche .ToUpper hilfreich, um nach dem Prozessnamen zu suchen? – PeterCo