Veröffentlicht 19. Mai 200916 j Hallo, ich habe ein kleines Problem: Wenn ich mehrere Prozesse mit dem selben Namen habe, wie kann ich den Pfad von dem er gestartet wurden heruasfinden? Ich will über ein Script nur 1 beenden. Bei: system("taskkill /f /im test.exe"); werden alle beendet. z.B. ich habe 3x test.exe 1. C:\test.exe 2. C:\test\test.exe 3. D:\test.exe --> 3 laufende Prozesse mit selbem Name. Ich möchte jetzt herausfinden welcher dieser 3 C:\test.exe ist und den beenden. Ich hoffe ihr könnt mir helfen. Danke schonmal Bearbeitet 19. Mai 200916 j von vana
20. Mai 200916 j Naja den Pfad brauchst du gar nicht, das kannst du auch über die Process ID machen: Process ex; Process[] pSearch; int processID; void Start() { ex = Process.Start(pfad); processID = ex.Id; } void Stop() { pSearch = GetProcessById(processID); foreach(Process p in pSearch) p.Kill(); }
20. Mai 200916 j Ich kann es nicht über die PID machen, da diese sich bei jedem Neustart des Programmes ändert. Daher dachte ich, dass es möglich ist den Pfad herauszufinden.
20. Mai 200916 j ähm, das verstehe ich jetzt nicht... gerade die tatsache, das du 3 verschiedene IDs hast, ermöglicht es dir doch erst, dieses problem über die ID zu lösen?
20. Mai 200916 j achso, irgendwie hab ich überlesen, das du die prozesse nicht selber gestartet hast ^^ Process[] pSearch; String path; String qpPath; qpPath = "C:/test.exe"; pSearch = Process.GetProcessesByName("test"); foreach(Process p in pSearch) { path = p.MainModule.FileName; if(path == qpPath) p.Kill(); } so müsste es gehen.
20. Mai 200916 j Danke für deine Hilfe. Leider sind meine Kentniss relativ begrenzt und damit komme ich nicht klar. Kannst du mir das bitte mal erklären bzw kommentieren und/oder den kompletten Code posten? Ich hoffe, dass es dir nicht zuviel Arbeit macht.
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.