quinta-feira, 31 de julho de 2008

Descobrir o número de processo em excecução

Você precisa que somente uma instância do seu aplicativo em execução independente da instância do terminal service.


function GetNumeroProcessos(const NomeExe: string):
Integer;
var Proc: TProcessEntry32;
Snap: THandle;

begin
Result := 0;

Snap := CreateToolHelp32SnapShot(TH32CS_SNAPPROCESS,0);
Proc.dwSize := SizeOf(TProcessEntry32);
Process32First(Snap,Proc);

repeat
// foi colocado o copy por causa de um bug do Windows 2000 que trunca o nome do processo
if UpperCase(Copy(ExtractFileName(Proc.szExeFile),1,15)) = Copy(UpperCase(NomeExe),1,15) then
Inc(Result);
until (not Process32Next(Snap,Proc));
end;

  © Blogger template 'Perfection' by Ourblogtemplates.com 2008

Back to TOP