Von |
m0v |
eMail |
|
Am |
26. Januar 2008 um 19:39:25 |
Frage |
Hallo zusammen,
überall gesucht, aber nichts gefunden... :(
Wie verhindere ich die zweite, bzw eine weitere Ausführung eines aus VB6 erstellten Prozesses?
Meine versuchten Ansätze: - Dienst: MS empfieht, aus vb-projekten keine dienste zu erzeugen - Prozesse auslesen -> wenn Prozess bereits gestartet -> "End": ich kann über die taskid nur die PIDs ermittelt, welche auf der angemeldeten Session laufen.
Lösung Nummer 2 ist demnach die einzige mir bekannte Möglichkeit. Ich habe auch im Internet Beispiele zum Auslesen von Prozessen gefunden, jedoch werden dort immer die PIDs über die TaskID ermittelt. Und TaskIDs sind wohl angeblich nicht session-übergreifend. D.h. wenn die .exe Datei auf Session 1 ausgeführt wurde (über autostart) und auf Session 2 nochmals über autostart, dann wird er die TaskID des Prozesses aus Session 1 nicht finden und demnach den Prozess aus Session 2 ausführen.
Am liebsten wäre mir eine Funktion, in der als Eingabe der Prozess-Name (z.B. notepad.exe) erwartet wird, falls dieser Prozess vorkommt, soll z.b. gestartete das Programm (wieder) beendet werden oder eine Funktion, die exakt das in eine Liste ausgibt, was der Taskmanager unter Prozesse ausgibt, weil nach PIDs kann ich bereits Prozesse killen....
DANKE im Voraus! :-)
Gruß, m0v |
|