![]() |
tipo Hwnd y string
Hola!
a ver si me guiais un poco: Tengo un string con un numero hexadecimal, como este : 0002025A Este numero corresponde a un handle de una ventana, necesito convertir ese string en una variable tipo hwnd para poder llamar a la funcion getwindowtext, pasarle el hwnd y que me devuelva el titulo de esa ventana. He intentado con un typecast, pasarlo a traves de longint, y nada me ha funcionado. Ideas? gracias. |
Ok, ya lo he conseguido, el tipo hwnd es en realidad un entero sin signo por lo que
var handle: longword; ventana:hwnd begin handle:=strtoint('$'+stringdondeestaelhexadecimal); ventana:= HWND(handle); end ya tengo un handle a esa ventana. PEROOO no logro que me lea el titulo de la ventana. getwindowtext(ventana,titulo,10) siendo ventana un hwnd y titulo un pchar. |
ACTUALIZO solucionado
************ Bueno pues parece que el getwindowtext no funciona, hay que hacer otro metodo: var buffer:string; i:integer; ventana:hwnd; // valor que tenemos del anterior ejemplo begin i:=sendmessage(ventana,WM_GETTEXTLENGTH,0,0); // obtengo la longitud del titulo de ventana setlength(buffer,i); // la defino i:=sendmessage(ventana,wm_gettext,i+1,Lparam(pchar(buffer))); // obtengo el titulo en buffer setlength(buffer,i); // otra vez defino showmessage(buffer); // muestro texto end; Gracias a todos los que me han leido. saludos. |
Hola delphos1942.
Recién leo este hilo y primero que nada, te agradezco por publicar la solución que encontraste (cosa que no todos hacen). ^\||/ Por otro lado me extraña la dificultad que te presenta el uso de la función GetWindowText, en mi caso funciona correctamente. Ejemplo:
Aprovecho también para pedirte que cuando agregues código a tu mensaje utilices las etiquetas correspondientes para hacerlo mas legible, el uso es: ![]() Saludos :) |
| La franja horaria es GMT +2. Ahora son las 00:03:01. |
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