mehrere Programme beenden
-
Aloha,
für mein Projekt ist es erforderlich, dass meine Anwendung wenn sie durch
den Benutzer beendet wird, eine beliebige Anzahl Programme "abschießt".Diese Programme sind vom Anwender zuvor bestimmt worden und werden
aus einer konfig.ini ausgelesen.Jetzt ist die Frage wie ich das am besten löse. Es können ja theoretisch 30 oder mehr Programme sein.
Packe ich alles aus einer ini in ein Array und knipse dann einfach auf
Verdacht alles aus?Warner
-
Und warum willst Du die "auskippsen"?
Willst Du siekontrolliert beenden? Oder einfach terminieren?
-
Es sind Module, die keine relevanten daten beinhalten, also absolut unkritische
Prozesse. Es reicht sie ganz brutal abzuschießen. Da bleibt von den Modulen auch nichts im Speicher zurück.
-
Warner schrieb:
Es sind Module, die keine relevanten daten beinhalten, also absolut unkritische
Prozesse. Es reicht sie ganz brutal abzuschießen. Da bleibt von den Modulen auch nichts im Speicher zurück.Das denkst Du! Wenn da nur ein Mutex oder Semaphore im Spiel ist hast Du Pech gehabt.
Nein! Was tun diese Module. Warum kann man denen nicht per Nachricht oder Event ihr "Ende" signalisieren?
-
Hmm, da hast du evtl recht. Ich sende einfach ein WM_CLOSE, oder?
Dann sollte das Programm doch von selbst aufräumen afaik.Wie ist das mit nicht Systemprozessen, die irgendwie geschützt sind? Wir nutzen hier eine gängige Software-
Firewall, die uns bei jedem zweiten Neustart (erfolgt via Remotezugriff)
beim runterfahren einfach hängen bleibt (Neustart erfolgt nicht, Rechner hängt).Bislang konnten wir die zuvor einfach abschießen, indem wir den Prozess
brutal terminiert haben. War ja egal, da der Rechner eh neustarten sollte
und sie sich dann wieder läd.Pech ist nun nur, dass der Hersteller das neuerdings verhindert.
"Zugriff verweigert". Was ja nur für das Produkt spricht, für uns aber sehr schlecht ist, da nun immer
jemand erst ettliche Prozesse und Dienste stoppen muss ehe man den Neustart einleiten kann.Das Produkt wollten wir nicht wechseln, da wir damit ansonsten wirklich sehr
gute Erfahrungen gemacht haben.
-
Wenn das programm ohne Frage bei WM_CLOSE beendet, dann ja. Gilt aber nicht für Services und Consolen Programme.
Ich vermute, dass die Firewall als Service läuft.
Wenn der Service nicht zu Beenden ist, dann hast Du nicht genügend Rechte. Sprich der Service läuft in einem Kontext in dem Du als normaler Anwender ihn nicht beenden kannst. Dan nützt da gar nichts, außer sich die Rechte zu besorgen.Aber ich garantiere Dir, dass dies Deine Probeleme nicht behebt. Wenn Du solche "tiefen" Dienste abschießt, dann kann die hälfte Deines System mit in den Keller gehen.