Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Prozess beenden (https://www.delphipraxis.net/3733-prozess-beenden.html)

edelweiss0 27. Mär 2003 13:39


Prozess beenden
 
Hallo zusammen, :mrgreen:

Ich möchte in Windows NT einen Prozess beenden (von welchem ich den Dateinamen besitze). Da dies mit Snapshot in Windows NT nicht funktioniert, habe die Funktion "EnumProcesses" gewählt. Doch diese Funktion zeigt mir jetzt aber die FileNamen nicht an, warum (Der Filename steht in der Variabeln "ExeName". Kann mir jemand helfen ?

Danke für eure Hilfe :D

Gruss

Andi

Delphi-Quellcode:
var
PIDlist: TPIDlist;

function GetProcessList(var PIDlist : TPIDlist): integer;
var cb, cbNeeded : Cardinal;
begin
cbNeeded := 0;
cb := SizeOf(PIDlist);
FillChar(PIDlist, cb, 0);
if not EnumProcesses(@PIDlist, cb, cbNeeded) then
cbNeeded := 0 
else
cbNeeded := cbNeeded div SizeOf(DWord);
Result := cbNeeded;
end;

procedure GetProcessNames;
var numProcesses : integer;
ProcHandle : THandle;
ExeName : string;
i: Integer;
szName: Pchar;
begin
numProcesses := GetProcessList(PIDlist);
for i := 0 to numProcesses-1 do begin
ProcHandle := OpenProcess(PROCESS_QUERY_INFORMATION, False, PIDlist[i]);

if ProcHandle <> 0 then begin
try
if GetModuleBaseName(ProcHandle, 0, @szName, sizeof (szName)) > 0 then
ExeName := szName
else
ExeName := 'System';
finally
CloseHandle(ProcHandle)
end;
end
else
if PIDlist[i] = 0 then
ExeName := 'System idle';
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var numProcesses : integer;
xPIDlist: TPIDlist;
begin
GetProcessNames;
end;

Motzi 27. Mär 2003 15:11

Du brauchst ein ProcessHandle mit TERMINATE_PROCESS Zugriff...
Stichwörter dazu: OpenProcess, TerminateProcess


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:01 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