elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  ¿Es posible recuperar el texto de un control label mediante API's?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ¿Es posible recuperar el texto de un control label mediante API's?  (Leído 3,586 veces)
TFL

Desconectado Desconectado

Mensajes: 2


Ver Perfil
¿Es posible recuperar el texto de un control label mediante API's?
« en: 6 Noviembre 2006, 20:58 pm »

Hola a todos,
Tras andar buscando y buscando me he decido a preguntar, no se si es algo imposible pero ahí va ...
Estoy intentando obtener el texto de las etiquetas de un formulario de una aplicación de VB.
¿Existe alguna forma de localizar los controles sin ventana, por ejemplo el control label, mediante API's?
Según he leído los controles sin ventana no envían ni reciben mensajes, entonces, que mecanismo se utiliza cuando se cambia el texto de la etiqueta mediante la expresión:
Form1.Label1.Caption = "HOLA"
¿Se imprime el texto en una región predefinida del área cliente de la ventana del formulario?
¿Son las etiquetas regiones independientes de la ventana del formulario y tienen algún manejador alternativo?
Bueno...., muchas preguntas son, a ver si podéis arrojar algo de luz sobre mi problema.
Gracias.


En línea

Hendrix
In The Kernel Land
Colaborador
***
Desconectado Desconectado

Mensajes: 2.276



Ver Perfil WWW
Re: ¿Es posible recuperar el texto de un control label mediante API's?
« Respuesta #1 en: 6 Noviembre 2006, 22:17 pm »

 :o :o :o no e entendido ninguna palabra, explikate mejor... ;) ;)

PD: Para el moderador, que borre el otro post, ya que kon un post es suficiente.

Salu2



En línea

"Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián
sircid

Desconectado Desconectado

Mensajes: 107


¡Nacido para ******te!


Ver Perfil
Re: ¿Es posible recuperar el texto de un control label mediante API's?
« Respuesta #2 en: 6 Noviembre 2006, 22:50 pm »

habra sido un despite o un error y habra posteado dos veces.

creo que la label no es mas que eso que tu dices. un print con propiedades top, left. si intentas pedir el caption de una label desde vb6 no podras hacerlo como lo haces con un text. no se si con apis se podra.

tan necesario se te hace para que no puedas prescindir de ello?
En línea

LeandroA
Moderador
***
Desconectado Desconectado

Mensajes: 760


www.leandroascierto.com


Ver Perfil WWW
Re: ¿Es posible recuperar el texto de un control label mediante API's?
« Respuesta #3 en: 7 Noviembre 2006, 02:18 am »

HOLA NO SE PUEDE PUES NO TINE HWND

sALUDOS
En línea

Kizar


Desconectado Desconectado

Mensajes: 1.325


kizar_net


Ver Perfil
Re: ¿Es posible recuperar el texto de un control label mediante API's?
« Respuesta #4 en: 7 Noviembre 2006, 18:40 pm »

HOLA NO SE PUEDE PUES NO TINE HWND

Hay le has dao, no tiene Handle, controles como el textbox., button y demas si que se puede coger el texto desde cualquier ventana, pero el label no es mas que un dibujo en el formulario.
En línea

NekroByte


Desconectado Desconectado

Mensajes: 639


Ver Perfil WWW
Re: ¿Es posible recuperar el texto de un control label mediante API's?
« Respuesta #5 en: 8 Noviembre 2006, 00:41 am »

Un Label no es ningún dibujo ni nada, es una ventana, por lo tanto tiene un hWnd.

Lo que ocurre es que es una ventana hija de la instancia de tu aplicación, y para encontrar su hWnd primero debes encontrar el de la madre y luego usar la api EnumChildWindows para que te liste todos. O más fácil: con Label.hWnd y listo, jaja, sin tanta complicación.

Para obtener lo que tiene escrito es con GetWindowName().
En línea

LeandroA
Moderador
***
Desconectado Desconectado

Mensajes: 760


www.leandroascierto.com


Ver Perfil WWW
Re: ¿Es posible recuperar el texto de un control label mediante API's?
« Respuesta #6 en: 8 Noviembre 2006, 07:11 am »

Un Label no es ningún dibujo ni nada, es una ventana, por lo tanto tiene un hWnd.

Lo que ocurre es que es una ventana hija de la instancia de tu aplicación, y para encontrar su hWnd primero debes encontrar el de la madre y luego usar la api EnumChildWindows para que te liste todos. O más fácil: con Label.hWnd y listo, jaja, sin tanta complicación.

Para obtener lo que tiene escrito es con GetWindowName().


mmm, que error  ;D hay ventanas que no poseen hwnd una de ellas es el label (que si te fijas no posee la propiedad label1.hwnd)y otra por ejemplo es el control image, si has echo alguna ves un ocx fijate en la ventana del usercontrol que tienen una propiedad llamada  windowless y veras que es ta pierde las propiedades de una ventana convencional (hija o no ) es masomenos como una forma de dibujo y no una ventana , y fijate que quita el hwnd
En línea

TFL

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: ¿Es posible recuperar el texto de un control label mediante API's?
« Respuesta #7 en: 8 Noviembre 2006, 13:35 pm »

En pimer lugar, perdón por el doble post, fue debido a un error de envío..., y agradecer vuestro interés.
Estoy de acuerdo con vosotros en que el control label de VB es un control sin ventana (sin hwnd), y que posiblemente se dibuje en el área cliente del formulario.
Considerando esto último pensé que la etiqueta podría encontrarse en una región determinada del área cliente del formulario y a partir del hwnd y el hdc del formulario que contiene al control label y utilizando las funciones API gráficas del "gdi32" podría encontrar un manejador para la región y a partir de él el texto del control label.
Bueno..., pues tras buscar API's sólo pude escribir en regiones del área cliente mediante la función TextOut (junto con otras), obtener manejadores de regiones definidas por mí mediante
funciones como CreateRectRgn, GetClipRgn, y en fin, sólo escribir y dibujar sobre la ventana del formulario...
¿Es éste un buen camino?, lo digo porque como hay muchísimas API's puede que no haya dado con ella ...
Quizás la solución podría estar en saber qué son para windows los controles sin ventana, es decir, al igual que los controles con ventana son identificados por el hwnd, ¿cómo identifica a los controles sin ventana?
Creo que si es posible cambiar el texto del control label desde código (Form1.Label1.Caption ="HOLA"), existirá alguna forma de localizar ese texto.
¿Es posible?, ¿Alguna sugerencia?...
Salu2.
En línea

tena


Desconectado Desconectado

Mensajes: 668



Ver Perfil
Re: ¿Es posible recuperar el texto de un control label mediante API's?
« Respuesta #8 en: 25 Noviembre 2006, 19:04 pm »

solo por curiosidad, me hice una pequeña aplicacion pedorra con un label, y al fijarme con el Microsoft Spy++ de VB solamente me mostraba el form y ninguna ventana hija, asi que como la mayoria de aqui concluyo que no tiene handle.

Saludos
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Control de cubatas mediante tarjetas
Programación General
kitos86 4 2,103 Último mensaje 20 Febrero 2013, 12:47 pm
por HdM
Customizar texto 2 o 3 veces dentro del mismo label? « 1 2 »
.NET (C#, VB.NET, ASP)
z3nth10n 13 7,935 Último mensaje 5 Julio 2013, 15:23 pm
por z3nth10n
Ayuda con cifrar un texto mediante ascci u.u
Programación C/C++
AliceLopez14 3 2,472 Último mensaje 23 Marzo 2015, 03:40 am
por engel lex
Obtener texto de label en aplicación externa WPF
.NET (C#, VB.NET, ASP)
TomaSs 4 4,962 Último mensaje 14 Mayo 2016, 04:13 am
por TomaSs
Cambiar texto de Label sin que se superponga (Tkinter)
Scripting
SlayerBur 1 5,054 Último mensaje 16 Abril 2022, 21:27 pm
por Yidu
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines