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;
Integer;
var Proc: TProcessEntry32;
Snap: THandle;
begin
Result := 0;
Result := 0;
Snap := CreateToolHelp32SnapShot(TH32CS_SNAPPROCESS,0);
Proc.dwSize := SizeOf(TProcessEntry32);
Process32First(Snap,Proc);
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;
// 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;