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; MyQuery.SQL.Text:='select nombreprograma from programas;' MyQuery.Open; while not MyQuery.Eof do begin
aux:=MyQuery.Fields[0].AsString; if Detectar_Programa(aux) then Memo1.Lines.Add(aux); MyQuery.Next; end;
end;
Espero te haya sido de utilidad.