Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-12-2009
jandrorm jandrorm is offline
Miembro
 
Registrado: dic 2009
Posts: 24
Poder: 0
jandrorm Va por buen camino
Yo quiero detectar una serie de programas con mi aplicación en delphi. Se que para detectar un programa abierto es:

Código:
  var
  h: HWND;

h := FindWindow(nil, 'lo que sea');
Vale y para no hacer todos los FindWindow y aparte por comodidad. Quiero que al añadir uno a la BD o al editarlo el programa me lo busque. Aclarar que si detecta alguno de los programas el resultado sera el mismo para todos y si no los detecta también.

Entonces en vez de hacer:

Código:
h := FindWindow(nil, 'programa1');
h := FindWindow(nil, 'programa2');
h := FindWindow(nil, 'programa3');
h := FindWindow(nil, 'programa4);
Entonces para ahorrarme el código anterior y no tener que modificar el programa cada vez que añada uno nuevo me gustaría poder cojer el nombre del programa de la BD y que el delphi lo busque en el que esta utilizando la aplicacion.

Haber yo en la BD voy a almacenar una serie de nombres de programas:

Código:
CREATE TABLE `programas` (
  `id` int(9) unsigned NOT NULL auto_increment,
  `nombreprograma` varchar(16) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
Espero haberte aclarado un poco mas la idea de lo que quiero hacer y no haberte liado mas jeje, por cierto muchas gracias por tu empeño en ayudarme.
Responder Con Cita
  #2  
Antiguo 29-12-2009
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Arrow Ahora si.....

Creo que por fin te hiciste entender...(aunque me queda ciertas dudas)..pero
Veamos....
Segun lo que te entiendo.. tendrias que hacerte un procedure o function que haga el FindWindow mas o menos asi:
Código Delphi [-]
function Detectar_Programa(const Nombre: String): Boolean;
begin
 Result:=FindWindow(nil,PChar(Nombre))<>0;
end;
Esa Funcion te verifica si un programa esta en ejecusion.
ahora para saber todos los programas que estan corriendo y que tengo registrado en mi base de dato, pues no me queda mas que comparar uno a uno, pero usando la anterior Funcion, mas o menos asi:
(En el evento OnClick de un Boton)
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var aux:String;
begin
 Memo1.Lines.Clear;//voy a usar un memo para mostrar los programas que estan ejecutandose
 MyQuery.SQL.Text:='select nombreprograma from programas;'//mi Consulta SQL
 MyQuery.Open;//ejecuto la consulta
   while not MyQuery.Eof  do // recorro el dataset para ir comprobando uno a uno los nombres
   begin
      aux:=MyQuery.Fields[0].AsString;//obtengo el nombre del programa que esta en el registro actual
        if Detectar_Programa(aux) then //verifico si dicho programa esta corriendo
           Memo1.Lines.Add(aux);//lo adiciono aun memo para mirarlo
      MyQuery.Next;//continuo con el proximo
   end;
end;
Espero te haya sido de utilidad.
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #3  
Antiguo 30-12-2009
jandrorm jandrorm is offline
Miembro
 
Registrado: dic 2009
Posts: 24
Poder: 0
jandrorm Va por buen camino
Hey perfecto muchisimas gracias de verdad.
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
Como quitar mensaje de Windows? vicvil API de Windows 5 31-07-2007 17:08:55
Quitar mensaje: "Discard changes this record?" erick78 Conexión con bases de datos 0 07-12-2005 00:44:08
como quitar el mensaje "cable de red está desconectado" RONPABLO Windows 2 17-11-2005 23:26:42
Como quitar mensaje en Word Albano Varios 0 11-01-2005 22:12:22
Como puedo quitar el mensaje de conexion al interbase malone Firebird e Interbase 1 12-06-2003 17:58:33


La franja horaria es GMT +2. Ahora son las 21:48:27.


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