Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #2  
Antiguo 23-02-2007
Avatar de ArdiIIa
[ArdiIIa] ArdiIIa is offline
Miembro Premium
 
Registrado: nov 2003
Ubicación: Valencia city
Posts: 1.481
Poder: 24
ArdiIIa Va por buen camino
Cita:
Empezado por knife_sj
mi problema es como hago para "saber" cuando se ejecuta algún programa, es decir, cuando yo hago 2ble click sobre algo: como hago para que mi programa se entere de esto y compruebe que dicho software esta permitido ejecutar.
les agradezco desde ya las respuestas
Podrías hacer algún programa/servicio para monitorizar los programas o procesos que están ejecutándose en una máquina determinada, para ello podrías utilizar las antiguar funciones ToolHelp incluidas en el API de windows, pero en este sentido creo que existen procedimientos mejores... te pongo un poco de código de ejemplo:
Código Delphi [-]
//Este procedimiento busca todos los procesos en ejecución y los añade a LISTVIEW
procedure TForm1.Button1Click(Sender: TObject);
Var
  pidProcess: array [0..1023] of DWORD;
  hProcess: DWORD;
  dwCount: DWORD;
  hMod: HMODULE;
  ModuleFileName: array[0..MAX_PATH] of Char;
  i: Integer;
  Item : TListItem;
begin
ListView1.Items.Clear;

  if EnumProcesses(@pidProcess, SizeOf(pidProcess), dwCount) then
    for i := 0 to dwCount div SizeOf(DWORD) do
    begin
    Item := ListView1.Items.Add;
    Item.Caption := IntToStr(pidProcess[i]);
    Item.SubItems.Add(GetExeName( pidProcess[i]) );
    end;
End;
***
Código Delphi [-]
//Esta funcion creo que con su nombre basta...
function GetExeName(ProcessIDWord):string;
var ProcHandle   : THandle;
    szName       : array [0..Max_Path] of char;
    ModHandle    : HModule;
    cb,cbNeeded,
    NumModules   : DWord;
begin
  ProcHandle:=OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_READ,
                          False, ProcessID);
  if ProcHandle<>0 then begin
    try
      cb:=SizeOf(ModHandle);
      if EnumProcessModules(ProcHandle,
                            @ModHandle,
                            cb, cbNeeded) then begin
        NumModules:=cbNeeded div SizeOf(HModule);
        if (NumModules>0) and (GetModuleFileNameEx(ProcHandle,
                                                   ModHandle,
                                                   @szName,
                                                   SizeOf(szName))>0)
                                then
          Result:=szName;
      end;
    finally
      CloseHandle(ProcHandle);
    end;
  end;
end;

Ahora que ya tenemos la lista de programas en ejecución (sin utilizar las Toolhep), tienes varias opciones, por ejemplo:
  • Tener en la máquina cliente una lista de programas permitidos y compararla con la lista de procesos en ejecución, si existen alguna anomalía, matar el proceso en cuestión...
  • Si elaboras un programa cliente / servidor, podrías mandar esta lista de procesos al programa servidor y que sea este el que revise los procesos de una máquina, con otra lista de procesos permitidos, y si es el caso, que avise al operario de turno para patear al intruso...

La Forma de comunicación entre máquinas y el envío de paquetes podrías hacerlo según la idea que hace algunos días me propuso seoane, el hilo está aquí.

Espero que esta información te resulte útil, esto es solamente una propuesta
__________________
Un poco de tu generosidad puede salvar la vida a un niño. ASÍ DE SENCILLO

Última edición por ArdiIIa fecha: 23-02-2007 a las 16:59:22.
Responder Con Cita
 



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
Identificador de programas en ejecución Josue API de Windows 6 31-12-2006 21:15:51
alerta y comentario de fbdataadapter julyus .NET 0 20-10-2006 18:17:09
!Alerta! Delphi en TV mamcx Noticias 14 05-04-2005 19:01:13
Mensajes de alerta jmselesan PHP 1 08-12-2003 19:49:06
Ayuda con Ejecución de programas creados con Kylix 3 Enterprise Trial darkone2k3 Lazarus, FreePascal, Kylix, etc. 0 18-11-2003 15:58:56


La franja horaria es GMT +2. Ahora son las 23:33:33.


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