Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-08-2012
PAL911 PAL911 is offline
Registrado
NULL
 
Registrado: ago 2012
Posts: 5
Poder: 0
PAL911 Va por buen camino
Capturar texto de otro programa

Hola amigos.

Hace rato que los leo y realmente me han ayudado varias veces. Ahora estoy en un proyecto personal, que ya les explicaré de que se trata, y necesito saber si es posible capturar texto a mi programa Delphi desde otro programa ejecutándose en la PC. Se trata del programa del scanner de inyección de mi auto, el cual no me muestra todos los valores de la inyección en su tabla, pero tiene un modo "debug" donde veo la trama original de datos que sale del calculador de inyección, y ahí si está todo y se que es cada valor. Pero cada valor hay que afectarlo por un factor de conversión para tener una cifra entendible por un humano (los originales son hexadecimales y la salida de los A/D generalmente). Entonces, mi idea es capturar los valores, que están en un recuadro de la pantalla (puedo subir una captura si les facilito la tarea de entenderme) y procesarlos con un programa mio para que me vaya corrigiendo los valores en "tiempo real" (se actualiza dos o tres veces por segundo la trama de datos)
Si alguien tiene idea, desde ya le agradezco la ayuda, y si necesitan la captura de pantalla, me avisan y veo como se hace para subirla.

Muchas gracias y espero poder aportarles algo algún día!!

Responder Con Cita
  #2  
Antiguo 18-08-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Hola, lo que no me queda claro es... ¿en qué quieres que te ayudemos?, ¿en pasar valores hexa a decimal?
Responder Con Cita
  #3  
Antiguo 18-08-2012
PAL911 PAL911 is offline
Registrado
NULL
 
Registrado: ago 2012
Posts: 5
Poder: 0
PAL911 Va por buen camino
No, eso lo se hacer! Lo que necesito saber es si es posible (y como) capturar los datos que están en la pantalla del otro programa para usarlos en el mio...
Responder Con Cita
  #4  
Antiguo 21-08-2012
alsn alsn is offline
Miembro
NULL
 
Registrado: abr 2012
Posts: 20
Poder: 0
alsn Va por buen camino
Hola, podrías probar a obtener el manejador del control que muestra los datos con FindWindow y FindWindowEx. Y una vez obtenido, con SendMessage y WM_GETTEXT conseguir esos datos.

Una forma de ver si se puede es que crees un programa con un Timer y un Memo. Y en el evento timer poner el código:


Código Delphi [-]
procedure TForm1.Timer1Timer(Sender: TObject);
var
  hwnd : THandle;
  mousepnt : TPoint;
  WndName, ClsName : String;
  s, sTexto: String;
  Len: Longint;
begin
  GetCursorPos(mousepnt);
  hwnd := WindowFromPoint(mousepnt);
  SetLength(WndName, 255);
  GetWindowText(hwnd, PChar(WndName), 255);
  WndName := PChar(WndName);
  SetLength(ClsName, 255);
  GetClassName(hwnd, PChar(ClsName), 255);
  ClsName := PChar(ClsName);

  sTexto := '';
  Len := SendMessage(hwnd, WM_GETTEXTLENGTH, 0, 0);
  if Len > 0 then
  begin
    SetLength(sTexto, Len);
    SendMessage(hwnd, WM_GETTEXT, Len + 1, Longint(Pchar(sTexto)));
  end;

  s := 'Nombre Clase:   ' + ClsName + #13#10 +
       'Nombre Ventana: ' + WndName + #13#10 +
       'Texto:          ' + sTexto;

  if Memo1.Text <> s then
    Memo1.Text:=s;
end;

Comprobar entonces si al situar el ratón encima de los datos que quieres estos llegan a obtenerse.

Saludos
Responder Con Cita
  #5  
Antiguo 21-08-2012
PAL911 PAL911 is offline
Registrado
NULL
 
Registrado: ago 2012
Posts: 5
Poder: 0
PAL911 Va por buen camino
Muchas gracias alsn!! Eso es justo lo que necesito. Imaginaba que había alguna API que realizara el trabajo de leer valores desde otra ventana, pero no lograba encontrar cual era. Lo pruebo y les comento!!

Responder Con Cita
  #6  
Antiguo 22-08-2012
PAL911 PAL911 is offline
Registrado
NULL
 
Registrado: ago 2012
Posts: 5
Poder: 0
PAL911 Va por buen camino
Bueno, he probado corriendo ese código y colocando el cursor sobre los valores que necesito y lo que sale es que es:

Nombre Clase: AfxFrameOrView42s
Nombre Ventana:
Texto:

lamentablemente estuve buscando en internet y parece que no puede obtenerse los valores de ese control... será tan así?

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
llamar un programa desde otro programa en un computador con dos monitores RONPABLO Varios 0 10-10-2011 18:20:51
Hacer Drag&Drop desde otro programa a texto (RichEdit) o imagen (Image) en mi program rrf Varios 2 24-02-2009 14:38:06
Cargar tu programa desde otro programa rmendoza83 Varios 7 05-01-2009 19:51:33
Capturar un dato de otro ordenador José Arce Varios 5 23-01-2004 23:02:56
Ejecutar un programa DENTRO de otro programa seduerey Varios 8 12-11-2003 13:56:20


La franja horaria es GMT +2. Ahora son las 08:48: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