![]() |
prozess in Taskmanager beenden aber wie ?
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:
Es läuft ohne Fehlermeldung aber "spoolsv.exe" ist immer noch aktiv
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. 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] |
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.
|
Zitat:
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 |
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. |
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".
|
'spoolsv.exe' ist ein dienst von windows 2000/xp und kann in > systemsteuerung > verwaltung > computerverwaltung > dienste >
unter DRUCKERWARTESCHLANGE beendet werden... |
Zitat:
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 |
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.... |
Zitat:
|
Moin Zusammen,
Zitat:
Zitat:
Würde man das ändern (nur warum sollte man) würde es gehen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:21 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz