listbox
Vejo muitos codigos de Terminacao de processos e bom , eu segui um desses codigos e surgiu uma duvida
Eu listo os processos na listbox1
o processo que eu selecionar eu termino...
So que surgiu uma duvida invez de eu terminar o processo selecionando ele , eu queria terminar ele caso o processo x se encontre na listbox2...
Se caso ele exista na listbox2 entao terminar..
Como posso fazer isso ?
procedure ListProcesses;
var
ExeName : String;
//Descreve as entradas dos processos residentes no sistema
proc : PROCESSENTRY32;
//handle, a posição de memória alocada do objeto
hSnap : HWND;
Looper : BOOL;
begin
//limpa ListBox
Form1.listbox1.Clear;
// Captura o tamanho de bytes de PROCESSENTRY32
proc.dwSize := SizeOf(Proc);
hSnap := CreateToolhelp32Snapshot(TH32CS_SNAPALL,0);
//Captura o nome dos processos e insere no ListBox
Looper := Process32First(hSnap,proc);
while Integer(Looper) <> 0 do begin
ExeName := ExtractFileName(proc.szExeFile);
Form1.ListBox1.Items.Add(ExeName);
Looper := Process32Next(hSnap,proc);
end;
CloseHandle(hSnap);
end;
procedure KillProcess;
var
SelectedProcess : String;
proc : PROCESSENTRY32; //Descreve as entradas dos processos residentes no sistema
hSnap : HWND; //handle, a posição de memória alocada do objeto
Looper : BOOL;
begin
//Captura o nome do processo selecionado no ListBox
SelectedProcess := Form1.ListBox1.Items.Strings[Form1.ListBox1.itemindex];
proc.dwSize := SizeOf(Proc);
hSnap := CreateToolhelp32Snapshot(TH32CS_SNAPALL,0);
//Captura o primeiro processo
Looper := Process32First(hSnap,proc);
// Faz um loop nos processos até achar o processo selecionado
while Integer(Looper) <> 0 do begin
// Extrai o nome do processo e compara com SelectedProcess
if ExtractFileName(Proc.szExeFile) = SelectedProcess then
//Mata o processo aberto
if TerminateProcess(OpenProcess(PROCESS_TERMINATE,Bool(0),proc.th32ProcessID),0) then
begin
//Se encerrado, o processo é retirado do ListBox
Form1.ListBox1.DeleteSelected;
end
else
//Checa o próximo processo
Looper := Process32Next(hSnap,proc);
end;
//Fecha Handle
CloseHandle(hSnap);
end;
Irei tentar criar um procedimento para checar se os processos do listbox2 se encontram em listbox1 , se puderem me dar uma ajuda agradeco
Discussão (1)
Carregando comentários...