Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Detección aplicaciones en ejecución (https://www.clubdelphi.com/foros/showthread.php?t=53230)

sur-se 14-02-2008 17:38:57

Detección aplicaciones en ejecución
 
Hola. Utilizo el código siguiente en Delphi 5 para detectar una aplicación en ejecución a partir del nombre del ejecutable:
Código Delphi [-]
function Ejecutandose(FileName:String):boolean;
var
    ContinueLoop:BOOLean;
    FSnapshotHandle:THandle;
    FProcessEntry32:TProcessEntry32;
    flag:boolean;
begin
    flag:=false;
    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(FileName))
           or (UpperCase(FProcessEntry32.szExeFile)=UpperCase(FileName))) then
        begin
             Flag:=true;
             break;
        end
        else ContinueLoop:=Process32Next(FSnapshotHandle,FProcessEntry32);
    end;
    CloseHandle(FSnapshotHandle);
    Result:=flag;
end;
Esto funciona bien, pero cuando la aplicación se ejecuta en Terminal Server, entonces deja de funcionar y me detecta en ejecución la misma aplicación pero en otras sesiones, mientras que en la actual no lo está.
¿Cómo podría cambiar el código para que funcione bien en la sesión de TS? ¿sería mejor usar otro código para delphi 5?
Gracias.


La franja horaria es GMT +2. Ahora son las 01:32:44.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi