Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 01-04-2005
jcaballeroo jcaballeroo is offline
Registrado
 
Registrado: abr 2005
Posts: 5
Poder: 0
jcaballeroo Va por buen camino
Saber si se esta ejecutando un programa externo

Hola, necesito una función que me diga si un programa externo esta abierto, ha de funcionar en cualquier S.O. Windows (NT/95/98/ME/XP/2000/2003AV).
Responder Con Cita
  #2  
Antiguo 05-04-2005
Toñico Toñico is offline
Miembro
 
Registrado: ene 2005
Posts: 50
Poder: 20
Toñico Va por buen camino
Hola, creo que este código te servirá. Está escrito en el create del formulario. He usado una variable boolean global que me indica si existe o no el programa.

Código:
  
Código Delphi [-]
 
procedure TFormulario.FormCreate(Sender: TObject);
     function SacaExe(MangoW:HWND):string;
     {Obtiene el EXE de una tarea}
     {get EXE of a task}
     var
         Datos  :TProcessEntry32;
         hID  :DWord;
         Snap  : Integer;
     begin
         GetWindowThreadProcessId(MangoW,@hID);
         Snap:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
         try
             Datos.dwSize:=SizeOf(Datos);
             if(Process32First(Snap,Datos))then
             begin
                 repeat
                     if Datos.th32ProcessID=hID then
                     begin
                         Result:=StrPas(Datos.szExeFile);
                         Break;
                     end;
                 until not(Process32Next(Snap,Datos));
             end;
         finally
             Windows.CloseHandle(Snap);
         end;
    end;
    function ObtieneVentanas(Mango: HWND;
         Nada: Pointer): Boolean; stdcall;
    var
        sTemp:string;
    begin
        Result := True;
        {Mango es el handle de la tarea encontrada}
        {Añadimos el .EXE si no está ya añadido...}
        sTemp:=SacaExe(Mango);
        If sTemp = 'Nombre_del_ejecutable.exe' then bExistePrograma := True;
    end;
begin
    bExistePrograma := False;
    EnumWindows( @ObtieneVentanas, 0 );
end;
Un saludo.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 06:35:37.


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
Copyright 1996-2007 Club Delphi