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 28-11-2012
[Waldo] Waldo is offline
Miembro Premium
 
Registrado: sep 2003
Posts: 101
Poder: 21
Waldo Va por buen camino
Lamar una aplicación y ejecutar acciones

Hola Buen día/Noche, tengo una pregunta que nos e si la pueda expresar, existen dos aplicaciones independientes llamese A Y B, mi deseo es que desde B llamar a A, hasta a qui no hay problema, el asunto es como decirle a A que ejecute cierto menu y abra la ventana que yo desee desde la Aplicacion B.

EJEMPLO.

Desde la aplicación B decirle a A que abra la ventana de captura de factura.


Considérese que las dos son aplicaciones delphi y que conozco de la estructura de las dos
Responder Con Cita
  #2  
Antiguo 28-11-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Waldo.

Una opción es usar la estructura de windows COPYDATASTRUCT, enviando y capturando el mensaje WM_COPYDATA.

Te pongo un ejemplo bién simple que despliega y pliega un ComboBox situado en el receptor, de acuerdo a dos botones ubicados en el emisor:

Aplicación A (emisor)
Código Delphi [-]
...
type
  TfrSender = class(TForm)
    btnAbrir: TButton;
    btnCerrar: TButton;
    procedure btnAbrirClick(Sender: TObject);
    procedure btnCerrarClick(Sender: TObject);
  private
    procedure SendMsgToReceiver(WndTitle: PChar; Msg: String);
  public
  end;
...

implementation

procedure TfrSender.SendMsgToReceiver(WndTitle: PChar; Msg: string);
var
  HW  : HWND;
  cds : TCopyDataStruct;
begin
  HW := FindWindow(nil, PChar(WndTitle));
  try
    cds.dwData := 0;
    cds.cbData := Length(Msg)+1;
    cds.lpData := PChar(Msg);
    SendMessage(HW, WM_COPYDATA, Integer(Handle), Integer(@cds));
  finally
    CloseHandle(HW)
  end;
end;

procedure TfrSender.btnAbrirClick(Sender: TObject);
begin
  SendMsgToReceiver('frReceiver','Abrir');
end;

procedure TfrSender.btnCerrarClick(Sender: TObject);
begin
  SendMsgToReceiver('frReceiver','Cerrar');
end;

Aplicacion B (receptor)
Código Delphi [-]
...
type
  TfrReciber = class(TForm)
    ComboBox1: TComboBox;
  private
    procedure WMGetData(var Msg: TWMCopyData); message WM_COPYDATA;
  public
  end;
...

implementation

procedure TfrReciber.WMGetData(var Msg: TWMCopyData);
var
  RE: string;
begin
  RE:= Pchar(Msg.CopyDataStruct.lpData);
  if RE = 'Abrir' then
      ComboBox1.Perform(CB_SHOWDROPDOWN, 1, 0);
  if RE = 'Cerrar' then
      ComboBox1.Perform(CB_SHOWDROPDOWN, 0, 0);
end;
También te adjunto los fuentes de ambos para que puedas probarlo.

Saludos.
Archivos Adjuntos
Tipo de Archivo: zip Sender.zip (3,7 KB, 85 visitas)
Tipo de Archivo: zip Receiver.zip (5,5 KB, 54 visitas)
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 28-11-2012 a las 07:17:16.
Responder Con Cita
  #3  
Antiguo 05-03-2013
Eduardo Mendoza Eduardo Mendoza is offline
Registrado
 
Registrado: jun 2006
Posts: 2
Poder: 0
Eduardo Mendoza Va por buen camino
Pregunta

Eliminado por repetido.
No cumple las normas.

Última edición por Casimiro Notevi fecha: 06-03-2013 a las 00:09:49.
Responder Con Cita
  #4  
Antiguo 06-03-2013
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
Cita:
Empezado por Eduardo Mendoza Ver Mensaje
..
Bienvenido a clubdelphi, ¿ya leiste nuestra guía de estilo?, gracias por tu colaboración

Ya has abierto un hilo con tu pregunta y se te ha contestado, si necesitas más aclaraciones entonces sigue en aquel hilo, no repitas la misma pregunta en distintos hilos, gracias.
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
Auto Borrar Aplicacion / Cambiar Privilegios Aplicacion / Ejecutar como Administrador jogagua Varios 15 27-10-2011 01:38:07
Ejecutar aplicacion? c0lo API de Windows 5 24-03-2009 07:58:53
Donde Ejecutar las acciones del formulario lucasarts_18 PHP 5 21-01-2008 18:29:39
Ejecutar aplicacion DOS que no se vea? marceloalegre Varios 1 21-12-2005 13:22:18
Ejecutar una aplicacion Nathan Varios 3 06-03-2004 18:03:42


La franja horaria es GMT +2. Ahora son las 14:42:06.


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