AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi prozess in Taskmanager beenden aber wie ?
Thema durchsuchen
Ansicht
Themen-Optionen

prozess in Taskmanager beenden aber wie ?

Ein Thema von matrix68 · begonnen am 9. Jun 2003 · letzter Beitrag vom 26. Dez 2009
Antwort Antwort
Seite 1 von 3  1 23      
matrix68

Registriert seit: 29. Mai 2003
9 Beiträge
 
#1

prozess in Taskmanager beenden aber wie ?

  Alt 9. Jun 2003, 19:38
Hallo,

ich würde gerne mal wissen wie man Systemprozesse beenden kann ?
Prozesse wie "Spoolsv.exe" lassen sich nur mit der Maus schliesen.
Habe mich schon überall umgeschaut und keine lösung dazu gefunden.
Ich habe es mit diesen Beispiel code probiert:

Delphi-Quellcode:
var
  ContinueLoop: BOOL;
  FSnapshotHandle: THandle;
  FProcessEntry32: TProcessEntry32;
begin
  Result := 0;
  FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
  FProcessEntry32.dwSize := SizeOf(FProcessEntry32);
  ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32);

  while Integer(ContinueLoop) <> 0 do
  begin
    if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) =
      UpperCase(ExeFileName)) or (UpperCase(FProcessEntry32.szExeFile) =
      UpperCase(ExeFileName))) then
      Result := Integer(TerminateProcess(
                        OpenProcess(PROCESS_TERMINATE,
                                    BOOL(0),
                                    FProcessEntry32.th32ProcessID),
                                    0));
     ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32);
  end;
  CloseHandle(FSnapshotHandle);
end;



{ For Windows NT/2000/XP } 

procedure KillProcess(hWindowHandle: HWND);
var
  hprocessID: INTEGER;
  processHandle: THandle;
  DWResult: DWORD;
begin
  SendMessageTimeout(hWindowHandle, WM_CLOSE, 0, 0,
    SMTO_ABORTIFHUNG or SMTO_NORMAL, 5000, DWResult);

  if isWindow(hWindowHandle) then
  begin
    // PostMessage(hWindowHandle, WM_QUIT, 0, 0);

    { Get the process identifier for the window} 
    GetWindowThreadProcessID(hWindowHandle, @hprocessID);
    if hprocessID <> 0 then
    begin
      { Get the process handle } 
      processHandle := OpenProcess(PROCESS_TERMINATE or PROCESS_QUERY_INFORMATION,
        False, hprocessID);
      if processHandle <> 0 then
      begin
        { Terminate the process } 
        TerminateProcess(processHandle, 0);
        CloseHandle(ProcessHandle);
      end;
    end;
  end;
end;



procedure TForm1.Button1Click(Sender: TObject);
begin
   KillTask('spoolsv.exe');
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
   KillProcess(FindWindow('spoolsv.exe',nil));
end;

end.
Es läuft ohne Fehlermeldung aber "spoolsv.exe" ist immer noch aktiv
in Taskmanager !!!.
Wenn ich andere Prozesse schliessen will,z.b die auf user laufen
geht ohne weiteres.
Kann mir jemand helfen ?

gruss

Matrix

[edit=Daniel B]Delphi-Tags eingefügt. MfG Daniel B.[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2
  Alt 9. Jun 2003, 20:28
Bist du sicher, dass der Druck-Spooler ein Fenster hat? Und wenn ja meinst du das Fenster hat den Klassennamen: "spoolsv.exe"? Das glaube ich nämlich nicht. Ich denke übrigens, dass das ein Service ist und der läßt sich nicht so ohne weiteres beenden / abschiessen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
matrix68

Registriert seit: 29. Mai 2003
9 Beiträge
 
#3
  Alt 9. Jun 2003, 21:27
Zitat von Luckie:
Bist du sicher, dass der Druck-Spooler ein Fenster hat? Und wenn ja meinst du das Fenster hat den Klassennamen: "spoolsv.exe"? Das glaube ich nämlich nicht. Ich denke übrigens, dass das ein Service ist und der läßt sich nicht so ohne weiteres beenden / abschiessen.
Hi Luckie,

mit der Maus kannst du es ohne weiteres beenden,
sehe kein problem.
Mich würde es viel mehr intresieren ob man es auch mit Delphi beenden
kann.

Matrix68
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4
  Alt 9. Jun 2003, 21:44
Also ich kann es nicht mit meiner SysInfo. Und kuck, wie ich Prozesse beende. Bestimmte Prozesse von Windows kann man nicht beenden.

Und was meinst du "mit der Maus kann man ihn beenden". Ich kann den Prozess auch mit dem Taskmanger von Windows nicht beenden.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Motzi
Motzi

Registriert seit: 6. Aug 2002
Ort: Wien
598 Beiträge
 
Delphi XE2 Professional
 
#5
  Alt 10. Jun 2003, 06:51
Sofern man das SE_DEBUG_PRIVILEGE aktiviert hat (als Admin steht einem dieses Privilege zwar zur Verfügung, allerdings ist es standardmäßig deaktiviert), dann kann man sich auch für Services ein gültiges Prozess-Handle holen und den Prozess über dieses Handle "abschießen".
Manuel Pöter
  Mit Zitat antworten Zitat
aaron

Registriert seit: 18. Feb 2003
202 Beiträge
 
Delphi 2007 Professional
 
#6
  Alt 10. Jun 2003, 11:42
'spoolsv.exe' ist ein dienst von windows 2000/xp und kann in > systemsteuerung > verwaltung > computerverwaltung > dienste >
unter DRUCKERWARTESCHLANGE beendet werden...
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#7
  Alt 10. Jun 2003, 11:56
Zitat von aaron:
'spoolsv.exe' ist ein dienst von windows 2000/xp und kann in > systemsteuerung > verwaltung > computerverwaltung > dienste >
unter DRUCKERWARTESCHLANGE beendet werden...
In diesem Fall wird allerdings der Service "heruntergefahren" und nicht abgeschossen, was matrix68 allerdings vorhat ist den Service einfach brutal zu töten.

Allerdings würde ich dir empfehlen das nicht zu machen, da es eigentlich kein Sinn macht. Wenn du allerdings einfach den Service ausschalten willst, dann solltest du nach einer Lösung suchen Services zu beenden (regulär).

Chris
  Mit Zitat antworten Zitat
matrix68

Registriert seit: 29. Mai 2003
9 Beiträge
 
#8
  Alt 10. Jun 2003, 21:03
eigentlich wollte ich nur wissen ob es möglich ist
über Delphi solche prozesse abzuschiessen bzw. zu beenden ?
Ob es Sin macht oder nicht,das muß jeder für sich selbst beantworten.
Also frage ich noch einmal.. ist es möglich oder nicht ?
Wenn ja wie ?

gruss

Matrix68

P.S: Alt + Strg + Entf drücken Taskmanager wird geöffnet.
Mit der Maus Spoolsv.exe auswählen und Prozess beenden.
fertig....
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#9
  Alt 10. Jun 2003, 21:25
Zitat von matrix68:
P.S: Alt + Strg + Entf drücken Taskmanager wird geöffnet.
Mit der Maus Spoolsv.exe auswählen und Prozess beenden.
fertig....
Und genau das geht bei mir unter 2000 nicht, obwohl ich Admin bin.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#10
  Alt 10. Jun 2003, 23:21
Moin Zusammen,

Zitat von Matrix68:
P.S: Alt + Strg + Entf drücken Taskmanager wird geöffnet.
Mit der Maus Spoolsv.exe auswählen und Prozess beenden.
fertig....
Zitat von Luckie:
Und genau das geht bei mir unter 2000 nicht, obwohl ich Admin bin.
was damit zusammenhängt, dass Dienste die im Kontext des Accounts System (bzw. LocalSystem) gestartet wurden, auch nicht mit Adminrechten "abgewürgt" werden dürfen.
Würde man das ändern (nur warum sollte man) würde es gehen.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 11:43 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