Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-05-2012
gmendoza5426 gmendoza5426 is offline
Miembro
NULL
 
Registrado: jul 2011
Posts: 11
Poder: 0
gmendoza5426 Va por buen camino
Monitorear aplicacion desde delphi

Hola a todos.
Alguien me puede ayudar por favor para poder consultar desde delphi si una maquina que esta en mi red tiene o no ejecutando una aplicacion en particular, necesito obtener todas las maquinas que tienen ejecutando dicha aplicacion.

Desde ya muchas gracias
Responder Con Cita
  #2  
Antiguo 30-05-2012
ajvdelphi ajvdelphi is offline
Registrado
NULL
 
Registrado: may 2012
Posts: 7
Poder: 0
ajvdelphi Va por buen camino
Hola
Podés probar con esto:


procedure TForm1.Button1Click(Sender: TObject);

function EstaEjecutandose (ExeFile:string): boolean;
var H:word;
begin
H := CreateFile(PChar(ExeFile), GENERIC_READ, 0, nil, OPEN_EXISTING, 0, 0);
Result := (H >= 65535);
CloseHandle(H);
end;


begin
if EstaEjecutandose ('c:\windows\notepad.exe')
then Label1.Caption:='SI/YES'
else Label1.Caption:='NO';

end;

Espero sirva
Saludos
Augusto
Responder Con Cita
  #3  
Antiguo 30-05-2012
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Hola ajvdelphi

Bienvenido a los foros de Club Delphi, te recomiendo que le des una leida a la Guía de Estilo.

Otra cosa, cuando publiques código fuente en Delphi, usa las etiquetas [delphi]:

[delphi]
begin
ProcedimientoAEjecutar;
Variable := 'hola mundo';
// ejemplo
end;
[/delphi]

lo que se mostrará en los foros así:

Código Delphi [-]
begin
  ProcedimientoAEjecutar;
  Variable := 'hola mundo';
  // ejemplo
end;


Saludos...
__________________
Lee la Guía de Estilo antes que cualquier cosa. - Twitter
Responder Con Cita
  #4  
Antiguo 30-05-2012
ajvdelphi ajvdelphi is offline
Registrado
NULL
 
Registrado: may 2012
Posts: 7
Poder: 0
ajvdelphi Va por buen camino
Hola maeyanes
Ok, entendido, ya me mandé dos, pero aprendí

Saludos
Augusto
Responder Con Cita
  #5  
Antiguo 30-05-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.042
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
A ver si recordamos poner los tags al código fuente, ejemplo:



Gracias
Responder Con Cita
  #6  
Antiguo 30-05-2012
gmendoza5426 gmendoza5426 is offline
Miembro
NULL
 
Registrado: jul 2011
Posts: 11
Poder: 0
gmendoza5426 Va por buen camino
Hola ajvDelphi
Antes que todo gracias por respuesta
Una consulta en que parte le indico la direccion IP de la maquina que quiero monitorear si tiene ejecutando mi sistema?
Porque el codigo que me pasaste ya lo encontre y funciona pero solo en la maquina localmente, lo que necesito es monitorear una maquina en particular conociendo su nombre o su direccion IP.

Gracias nuevamente
Responder Con Cita
  #7  
Antiguo 31-05-2012
ajvdelphi ajvdelphi is offline
Registrado
NULL
 
Registrado: may 2012
Posts: 7
Poder: 0
ajvdelphi Va por buen camino
Hola.
Me habían pasado hace tiempo este código, que no probé, y se supone que puede detectar cualquier aplicacion inclusive si se está ejecutando en otra máquina, habrá que probar


Hay que agregar 'TLHelp32' en el uses de tu form

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
 
  function IsRunnig (FicheroExe:string):boolean;
 
    function SacaExe(MangoW:HWND):string;
    {Obtiene el EXE de una tarea}
    {get EXE of a task}
    var 
      Datos    :TProcessEntry32;
      hID        Word;
      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;
            ACerrar: Pointer): Boolean; stdcall;
   begin 
     Result := True;
     {Mango es el handle de la tarea encontrada}
     {Si es el .EXE buscado, lo cierra}
     if SacaExe(Mango)=UpperCase( String(ACerrar^) )then
     begin 
       String(Acerrar^):='Encontrado';
     end; 
   end; 
 

  begin 
    EnumWindows( @ObtieneVentanas, Integer(@FicheroExe) );
    Result:=(FicheroExe='Encontrado');
  end; 
 
begin 
 if IsRunnig('C:\WINDOWS\NOTEPAD.EXE')
   then ShowMessage ('Ejecutandose/Running')
   else ShowMessage ('No Ejecutandose/Do not running');
end;

Espero te sirva, sino a seguir buscando!!!!

Saludos
Augusto
Responder Con Cita
  #8  
Antiguo 04-06-2012
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
El código mostrado no trabaja en red.
La solución puede pasar por una App Cliente/Servidor..

En este hilo se habla de funciones capaces de detectar si se ejecuta un proceso.


Saludos.
Responder Con Cita
Respuesta



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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Monitorear S.O. orlando9427 API de Windows 2 16-11-2010 21:54:38
Monitorear tablas lucasarts_18 MS SQL Server 3 13-11-2008 01:35:11
Monitorear el registro Suriu Windows 2 18-04-2007 20:26:34
Monitorear Firebird 1.5 jc.guzman Firebird e Interbase 2 21-10-2005 03:23:33
Monitorear procesos victork_py Firebird e Interbase 7 27-08-2003 12:06:29


La franja horaria es GMT +2. Ahora son las 16:49:47.


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