델파이

델파이/delphi] 프로세스 종료하기

il-ma-re 2024. 7. 19. 09:37
728x90

안녕하세요, 일마레입니다.

 

오늘은 PC 프로세스 목록에 있는 프로그램을 종료하는 방법을 알려드리려고 해요.

 

프로그램의 프로세스 아이디를 얻어와서 종료하는 방법인데요.

 

아래 소스를 알려 드리도록 하겠습니다.

function KillTask(ExeFileName: string): Integer;
const
  PROCESS_TERMINATE = $0001;
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;


 

위에 안내해드린 함수를 작성해 놓으시고 

프로그램 이름을 전달하여 종료하시면 됩니다.

procedure TForm1.ButtonClick(Sender: TObject);
begin
    KillTask('test.exe');
end;

 

프로그램 소스는 다운받아 사용하실 수 있도록 첨부해 드리도록 하겠습니다.

 

killtask.txt
0.00MB

 

많은 도움이 되셨기를 바라며, 행복한 하루 되세요 ^-^

728x90
LIST