leandro_lec Novato
Registrado: Terça-Feira, 12 de Mai de 2009 Mensagens: 1
|
Enviada: Ter Mai 12, 2009 10:06 am Assunto: Matar processos somente do usuário logado no servidor |
|
|
Pessoal eu estou fazendo um programa para matar o Winword no servidor. Porém o código que eu estou usando mata todos os words de todos os usuário logados.
Eu queria saber como faço para matar somente o word do usuário logado, do usuário que está rodando o programa?????.
segue o código
uses
Tlhelp32;
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.btn1Click(Sender: TObject);
begin
KillTask(edt1.Text);//winword.exe
end; |
|