Hallo,
ich nutze seit längerer Zeit die Routine IsExeRunning um festzustellen ob ein Programm gestartet ist:
Delphi-Quellcode:
function IsExeRunning(const AExeName: string): boolean;
var
h: THandle;
P: TProcessEntry32;
begin
P.dwSize := SizeOf(P);
h := CreateToolhelp32Snapshot(TH32CS_SnapProcess, 0);
try
Process32First(h, P);
repeat
Result := AnsiUpperCase(AExeName) = AnsiUpperCase(P.szExeFile);
until Result or (not Process32Next(h, P));
finally
CloseHandle(h);
end;
end;
Das hat bisher super funktioniert, doch jetzt kommt ein Programm daher bei dem es nicht zu funktionieren scheint. Nach dem Programmstart erscheint ein Anmeldefenster, das Programm wird von IsExeRunning gefunden. Nach der Anmeldung wird es dann nicht mehr gefunden, es befindet sich aber immer noch in der Taskliste. Wie kann das sein ??
Ich benutze IsExeRunning in einem NT-Service.
KUBA