Criando um novo projeto, altere o Caption do formulário para "Fechar Programas" e arraste para ele um componente Label alterando Caption para "Digite o nome do Processo", um componente Edit (edtProcesso) e um componente Button com Caption "Finalizar Processo". Antes de codificar o evento OnClick do botão, vá ao código e declare na seção Private a seguinte função que receberá por parâmetro o nome do executável:
function Finalizaprocesso(ExeFileName: string): integer;
Na implementação da função, adicione o código a seguite:
function TForm1.Finalizaprocesso(ExeFileName: string): integer;
const
PROCESS_TERMINATE=$0001;
var
ContinueLoop: BOOL;
FSnapshotHandle: THandle;
FProcessEntry32: TProcessEntry32{declarar Uses Tlhelp32};
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;
A função irá localizar o processo, e quando localizado irá finalizá-lo.
Para executar a função, basta que adicione ao evento OnClick do botão uma chamada ao código, passando para o parâmetro o valor digitado no Edit. Antes de finalizar o processo, ainda solicitamos a confirmação ao usuário.
if Application.MessageBox('Deseja mesmo finalizar este processo?','Finalizar processo',MB_YESNO) = idYes then
Finalizaprocesso(edtProcesso.Text)
Por ora seria isto, abraço e até o próximo post.
Nenhum comentário:
Postar um comentário