![]() |
Programm (Prozessor) in dem Task-Manager beenden
Hallo
ich verwende eine Kill-Funktion um ein Programm zu beenden
Delphi-Quellcode:
Es funktioniert aber wenn das Programm in Hintergrund arbeitet (nur über Task-Manager sichtbar), dann schaffe ich mit der Funktion das Programm nicht zu beenden.
procedure TForm1.Button6Click(Sender: TObject);
begin KillProgram(nil,'projekt1.exe'); end; Welche Funktion ist fafür geeignet ? |
Re: Programm (Prozessor) in dem Task-Manager beenden
- Wie schaut "KillProgram" denn aus?
- Kannst du den gewünschten Prozess im Task-Manager manuell beenden? |
Re: Programm (Prozessor) in dem Task-Manager beenden
Manual kann ich das Programm beenden
Projekt1.exe war nur ein Beispiel Ich möchte ein beliebiges Programm in Task-Manager beenden Meine Funktion funktioniert leider nur wenn ich den Programm-Pfad eingebe |
Re: Programm (Prozessor) in dem Task-Manager beenden
Zitat:
|
Re: Programm (Prozessor) in dem Task-Manager beenden
Delphi-Quellcode:
procedure KillProgram(ClassName: PChar; Titre: String);
const PROCESS_TERMINATE = $0001; var ProcessHandle : THandle; ProcessID: Integer; Appli : HWND; begin Appli := FindWindow(PChar(ClassName), PChar(Titre)); GetWindowThreadProcessID(Appli, @ProcessID); ProcessHandle := OpenProcess(PROCESS_TERMINATE, FALSE, ProcessId); TerminateProcess(ProcessHandle,4); end; |
Re: Programm (Prozessor) in dem Task-Manager beenden
Ja, dann sollte ja klar sein, warum das nur bei normalen Anwendungen funktioniert: Die Funktion arbeitet mit FindWindow.
Aber bei ![]() |
Re: Programm (Prozessor) in dem Task-Manager beenden
Hallo Delphiturbo.
Ich glaube es reicht jetzt! Wenn Du weiterhin in der DP fragen stellen möchtest arbeite bitte diese Punkte ab:
Wenn Du hierzu nicht bereit bist solltest Du überlegen ob die DP das richtige Forum für dich ist! |
Re: Programm (Prozessor) in dem Task-Manager beenden
Zitat:
:mrgreen: |
Re: Programm (Prozessor) in dem Task-Manager beenden
Das wäre eine mögliche Variante:
Delphi-Quellcode:
.
procedure Killprocess(Name:String);
var PEHandle,hproc:cardinal; PE:ProcessEntry32; begin PEHandle:=CreateTOOLHelp32Snapshot(TH32cs_Snapprocess,0); if PEHandle<>Invalid_Handle_Value then begin PE.dwSize:=Sizeof(ProcessEntry32); Process32first(PEHandle,PE); repeat if Lowercase(PE.szExeFile)=Lowercase(Pchar(Name)) then begin hproc:=openprocess(Process_Terminate,false,pe.th32ProcessID); TerminateProcess(hproc,0); closehandle(hproc); break; end; until Process32next(PEHandle,PE)=false; end; closehandle(PEHandle); end; .
Delphi-Quellcode:
KillProcess('Project1.exe'); // Beispielcode
|
Re: Programm (Prozessor) in dem Task-Manager beenden
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:55 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