![]() |
Prozess beenden
Hallo!!
Wie kann ich einen Prozess beenden, dessen Name vorher über ein Editfeld eingegeben wird? MfG Master |
Re: Prozess beenden
möchtest du eine programm beenden wie zb icq oder möchtest du einen prozess in deinem programm beenden ?
|
Re: Prozess beenden
![]() |
Re: Prozess beenden
Hallo!!
Ich würde gern ein Programm beenden! MfG Master |
Re: Prozess beenden
so schaut das aus :
uses tlhelp32 nicht vergessen ;D
Delphi-Quellcode:
{******************************************************************************}
{** **} {** ProzessID an Hand der Exe-Datei ermittlen **} {** **} {******************************************************************************} function GetProcessID(sProcName: String): Integer; var hProcSnap: THandle; pe32: TProcessEntry32; begin result := -1; hProcSnap := CreateToolHelp32SnapShot(TH32CS_SNAPPROCESS, 0); if hProcSnap = INVALID_HANDLE_VALUE then exit; pe32.dwSize := SizeOf(ProcessEntry32); { wenn es geklappt hat } if Process32First(hProcSnap, pe32) = true then { und los geht's: Prozess suchen} while Process32Next(hProcSnap, pe32) = true do begin if pos(sProcName, pe32.szExeFile) <> 0then result := pe32.th32ProcessID; end; CloseHandle(hProcSnap); end; {******************************************************************************} {** **} {** Prozess beenden **} {** **} {******************************************************************************} procedure KillProcess(dwProcID: DWORD); var hProcess : Cardinal; dw : DWORD; begin { open the process and store the process-handle } hProcess := OpenProcess(SYNCHRONIZE or PROCESS_TERMINATE, False, dwProcID); { kill it } TerminateProcess(hProcess, 0); { TerminateProcess returns immediately, so wie have to verify the result via WaitfForSingleObject } dw := WaitForSingleObject(hProcess, 5000); case dw of { everythings's all right, we killed the process } WAIT_OBJECT_0: Messagebox(Application.Handle, 'Prozess wurde beendet.', 'Prozess beenden', MB_ICONINFORMATION); { process could not be terminated after 5 seconds } WAIT_TIMEOUT: begin Messagebox(Application.Handle, 'Prozess konnte nicht innerhalb von 5 Sekunden beendet werden.', 'Prozess beenden', MB_ICONSTOP); CloseHandle(hProcess); exit; end; { error in calling WaitForSingleObject } WAIT_FAILED: begin RaiseLastOSError; CloseHandle(hProcess); exit; end; end; CloseHandle(hProcess); end; procedure TForm1.Button1Click(Sender: TObject); begin KillProcess(GetProcessID(edit1.text)); // in edit1 muss zb icq.exe stehen end; |
Re: Prozess beenden
Warum postest du jetzt was ich schon in der Codelib stehen habe? :roll:
|
Re: Prozess beenden
suchen mögen nicht viele leute ^^
|
Re: Prozess beenden
Zitat:
Und ich wundere mich, warum kaum noch jemand in der Lage zu sein scheint ein Problem eigenständig zu lösen, wenn er jedes mal alles in den Popo geschoben bekommt. :roll: |
Re: Prozess beenden
Zitat:
Es tauch sowohl hier als auch im DF in letzter Zeit sehr viele Fragen auf, die sich durch eine kleine Suche bei Google bzw. im Archiv von selber lösen würden. Gruß |
Re: Prozess beenden
Richtet doch ein Diskussionsforum ein,ich hatte es eilig. Deshalb habe ich die Fraege so formuliert.
Entschuldigung ich habe hier wohl einige Perfektionisten angetroffen, ihr könnt wohl alles. Master |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:36 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-2025 by Thomas Breitkreuz