El uso es el siguiente:
NPARENDANDLE: HWND;
NCHILDHANDLE: HWND;
NPARENTHANDLE: = FindWindow (nil, '' Notepad '');
Si nParentHandle <> 0 entonces
nchildhandle: = findchildwindow (nparenthandle, '' somechilditsclassname '');
------ Código de funciones ------
varilla
hwndfindchildwindow: hwnd;
function enumwindowsforfindchildwindowproc (whandle: hwnd; lParam: lParam): bool;
estúpido
Max_window_name_len = 80;
varilla
StargetClassName: String;
nhandle: hwnd;
ScurrClassName: String;
Bresult: booleano;
Comenzar
if (hwndfindchildwindow <> 0) entonces
salida;
stargetClassName: = PChar (LPARAM);
ScurrClassName: = GetWindowClass (Whandle);
Bresult: = Comparetext (ScurrClassName, StargetClassName) = 0;
If (Bresult) entonces
hwndfindchildwindow: = Whandle
demás
Findchildwindow (whandle, pchar (lparam));
fin;
función findchildwindow (hwndparent: hwnd; classname: pchar): hwnd;
Comenzar
intentar
Enumchildwindows (hwndparent, @enumwindowsforfindchildwindowproc, longInt (pchar (className)));
Resultados: = hwndfindchildwindow;
excepto
en excepción hacer
Resultados: = 0;
fin;
fin;
// volver al formulario actual con enfoque
función getFocusedWindowFromParent (Parentwnd: hwnd): hwnd;
varilla
OTRO READ,
Buffer: dword;
idcurrhread: dword;
Comenzar
OtroThread: = GetWindowThreadProcessID (Parentwnd, @Buffer);
idcurrthread: = getCurrentThreadID;
Si adjectThreadInput (idcurrhread, otro
Resultado: = getFocus;
AdjectThreadInput (idcurrThread, otro thread, falso);
fin
demás
Resultado: = getFocus;
fin;
// Obtener el subformador que actualmente se enfoca, incluso si es la forma de otras aplicaciones
función getfocusedchildwindow: hwnd;
Comenzar
Resultado: = GetFocusedWindowFromParent (getForegroundWindow);
fin;
// Obtener el texto del formulario
function eigetwintext (nhandle: integer): string;
varilla
PCTEXT: Array [0..32768] de char;
Comenzar
SendMessage (nhandle, wm_gettext, 32768, longInt (@pctext));
Resultados: = PCTEXT;
fin;
// Establecer el texto del formulario
procedimiento eisetwintext (nhandle: integer; const slewText: string);
Comenzar
SendMessage (nhandle, wm_settext, longitud (snewText), longInt (pchar (trim (snewText))));
fin;
// devuelve el nombre de clase del formulario
función eigetwindowclass (const nhandle: hwnd): string;
varilla
SzClassName: Array [0..255] de char;
Comenzar
GetClassName (nhandle, szclassname, 255);
Resultado: = szClassName;
fin;