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 26-02-2004
NeWsP NeWsP is offline
Miembro
 
Registrado: oct 2003
Ubicación: Barcelona
Posts: 57
Poder: 21
NeWsP Va por buen camino
Capturar texto de otras ventanas

Buenos dias

tengo un pregunta un poco rara ... ( en mi linea jejejjee )

no se si se puede hacer, supongo q si.

Imaginaos una ventana de otro programa q tiene de titulo "manue" y el contenido de la ventana , es una linea de texto q pone "hola"

Hay alguna forma de capturar ese "hola" ???

lo unico q consigo es capturar el titulo de la ventana ("manue") con el GetWindowText

Espero q me podais ayudar

Muchas gracias por adelantado
Responder Con Cita
  #2  
Antiguo 26-02-2004
Gydba Gydba is offline
Miembro
 
Registrado: ene 2004
Ubicación: Argentina
Posts: 673
Poder: 21
Gydba Va por buen camino
En teoría conociendo el handle del control y mediante la función GetWindowText podés obtener lo que buscas.
Fijate en Planet-Source-Code.com que hay ejemplos en VB que pueden ser adaptados y que tratan de inspectores de ventanas.
__________________
Suerte
.: Gydba :.
Responder Con Cita
  #3  
Antiguo 26-02-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por NeWsP
Hay alguna forma de capturar ese "hola" ???

lo unico q consigo es capturar el titulo de la ventana ("manue") con el GetWindowText

Como te indica Gydba debes obtener el "handle" del control que contiene el texto. Esto lo puedes hacer utilizando la función FindWindowEx de la API de Windows que te permite recorrer los controles que haya en la ventana principal.

// Saludos
Responder Con Cita
  #4  
Antiguo 27-02-2004
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
El unico problema es que la funcion GetWindowText no devuelve el texto de otras aplicaciones que no sean la tuya. Para hacer eso se puede usar el mensage WM_GETTEXT que permite obtener el texto de otras ventanas.

Aqui te dejo un ejemplo que obtiene el texto de todas las ventanas que encuentra y lo escribe en un memo.

Código:
function EnumChildProc(handle: Thandle; Param: lParam): boolean; stdcall;
var
  Buffer: PChar;
  l: integer;
begin
  result:= TRUE;
  l:= sendmessage(handle,WM_GETTEXTLENGTH,0,0);
  if l > 0 then
    begin
      GetMem(Buffer, l+1);
      try
        sendmessage(handle,WM_GETTEXT,l+1,lParam(buffer));
        form1.Memo1.Lines.Add(string(buffer));
      finally
        FreeMem(Buffer);
      end;
    end;
end;

function EnumWindowsProc(handle: Thandle; Param: lParam): boolean; stdcall;
begin
  result:= TRUE;
   EnumChildWindows(handle,@EnumChildProc,0);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  EnumWindows(@EnumWindowsProc,0);
end;
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


La franja horaria es GMT +2. Ahora son las 17:36:36.


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