AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Prozess inkl. davon gestartete Prozesse killen

Prozess inkl. davon gestartete Prozesse killen

Offene Frage von "delphis spassbremse"
Ein Thema von delphis spassbremse · begonnen am 21. Feb 2009 · letzter Beitrag vom 22. Feb 2009
Antwort Antwort
delphis spassbremse

Registriert seit: 7. Jun 2007
Ort: Enger
104 Beiträge
 
Delphi 7 Enterprise
 
#1

Prozess inkl. davon gestartete Prozesse killen

  Alt 21. Feb 2009, 19:39
Hallo,

ich bin dabei mir einen neuen Desktop zu erstellen, auf dem die explorer.exe gestartet wird. (von der ich dann auch die PID habe)

Und wenn der Desktop geschlossen wird, möchte ich die auf diesem gestartete explorer.exe abschießen und
dazu auch noch alle Anwendungen, die von dieser explorer instanz gestartet wurde.


Ist das überhaupt möglich?
Wenn ja, wär ein Denkanstoß / Link / Beispielcode hilfreich

Grüße,

Björn
  Mit Zitat antworten Zitat
64Jabor

Registriert seit: 9. Jan 2008
158 Beiträge
 
Delphi 7 Personal
 
#2

Re: Prozess inkl. davon gestartete Prozesse killen

  Alt 22. Feb 2009, 12:51
Nunja, wenn du die explorer selbst programmiert hast, könntest du die PIDs der gestarteten Prozesse in eine Datei schreiben, sie beim Beenden der Prozesse wieder entfernen.

Hast du das nicht, wäre ein ANsatz, dass dein Desktopprogramm beim Start (noch vor dem Start der Zweiten(?) explorer.exe) alle PIDs listet und beim Beenden alles überflüssige beendet.
Das setzt vorraus dass während dein Desktopprogramm läuft NUR die explorer.exe Prozesse starten kann, oder du alle vom Benutzer gestarteten Prozesse in dem Desktopprogramm ebenfalls listen musst, diese Liste dann mit der nachher-vorher-Liste vergleiche müsstest.

Hoffe die Ideen helfen in einer Weise, oder habe ich etwas nicht verstanden?
Gruß Sebi
Sebastian
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Prozess inkl. davon gestartete Prozesse killen

  Alt 22. Feb 2009, 13:00
Also mit MSDN-Library durchsuchenCreateToolHelpSnapshot bekommst du eine Prozessliste. In der Struktur MSDN-Library durchsuchenPROCESSENTRY32 gibt es ein Feld th32ParentProcessID. Du könntest jetzt alle Prozesse durchgehen und alle Prozesse, die den Explorer als Parent haben beenden.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.026 Beiträge
 
Delphi 12 Athens
 
#4

Re: Prozess inkl. davon gestartete Prozesse killen

  Alt 22. Feb 2009, 13:03
Zitat von Luckie:
... und alle Prozesse, die den Explorer als Parent haben beenden.
BEENDEN ... warum willst du alles "abschießen"?
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Prozess inkl. davon gestartete Prozesse killen

  Alt 22. Feb 2009, 13:06
Ich will das nicht, aber der Threadstarter will es:
Zitat:
möchte ich die auf diesem gestartete explorer.exe abschießen und
dazu auch noch alle Anwendungen, die von dieser explorer instanz gestartet wurde.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Prozess inkl. davon gestartete Prozesse killen

  Alt 22. Feb 2009, 13:09
Erzeuge beim Erstellen des Explorers zusätzlich ein Job-Objekt, in welches du den Explorer setzt. Mit TerminateJobObject kannst du dann den Explorer und alle Prozesse, die von der Explorer-Instanz unmittelbar oder indirekt gestartet wurden, abschießen. Luckies Lösung funktioniert nur bei den Prozessen, die direkt vom Explorer gestartet wurden; ich vermute aber, dass du auch Enkel-Prozesse usw. terminieren willst.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Prozess inkl. davon gestartete Prozesse killen

  Alt 22. Feb 2009, 13:11
Man könnte aber auch mit Rekursion arbeiten, denn Enkelprozesse sind ja die Kindprozesse der Kinder.
Markus Kinzler
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Prozess inkl. davon gestartete Prozesse killen

  Alt 22. Feb 2009, 13:14
Das geht nicht. Was machst du, wenn das Kind schon tot ist, der Enkel aber noch lebt?
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.026 Beiträge
 
Delphi 12 Athens
 
#9

Re: Prozess inkl. davon gestartete Prozesse killen

  Alt 22. Feb 2009, 13:30
Zitat von Apollonius:
Das geht nicht. Was machst du, wenn das Kind schon tot ist, der Enkel aber noch lebt?
Das versuchen, was man da nicht schafft http://www.delphipraxis.net/internal...t.php?t=152586,
alles mitloggen und dann entsprechend beenden.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:36 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz