Einzelnen Beitrag anzeigen

Benutzerbild von kuba
kuba

Registriert seit: 26. Mai 2006
Ort: Arnsberg
588 Beiträge
 
Delphi 11 Alexandria
 
#1

Problem mit IsExeRunning

  Alt 21. Sep 2011, 16:45
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
Stefan Kubatzki
E=mc2
  Mit Zitat antworten Zitat