Ver la Versión Completa : tipo Hwnd y string
delphos1942
05-11-2013, 18:21:56
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.
delphos1942
05-11-2013, 18:51:52
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.
delphos1942
05-11-2013, 19:19:32
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.
ecfisa
05-11-2013, 21:14:11
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 (http://msdn.microsoft.com/en-us/library/windows/desktop/ms633520(v=vs.85).aspx), en mi caso funciona correctamente.
Ejemplo:
...
var
H: HWND;
Title: array[0..254] of Char;
begin
H := FindWindow(nil, 'Sin título: Bloc de notas');
GetWindowText(H, Title, GetWindowTextLength(H)+1);
ShowMessage(Title);
end;
Aprovecho también para pedirte que cuando agregues código a tu mensaje utilices las etiquetas correspondientes para hacerlo mas legible, el uso es:
http://img403.imageshack.us/img403/3461/75416396.jpg
Saludos :)
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.