土豆芝士球的做法:Delphi中如何查看其他程序上控件的标题

来源:百度文库 编辑:神马品牌网 时间:2024/04/29 21:51:28
Delphi中如何获取其他程序上控件的标题(Caption,Text等),假设已经知道该控件所在窗口的句柄。
谢谢紫衣侠隐的回答,我的意思是假设现在有一个已知句柄的窗口,该窗口上有数个文本框,想获取这几个文本框内的文字,不用鼠标移动到文本框就可以获取。

Var
lpszWindowText:Array[0..254] of char;
hHandle:THandle;
Begin
hHandle:=已知句柄;
GetWindowText(hHandle, @lpszWindowText, 254);
ShowMessage('其标题为:'+StrPas(lpszWindowText));
End;

可以这样获取某窗口内文本框的内容:
***********************************************
Var
hEdt,hWindow:THandle;

//回调函数的载体,用于处理对找到的edit后的操作
Procedure OnGetEditHandle(hWnd:HWND)
var
cName: array[0..180] of Char;
lpszEdtText:Array[0..254] of char;
Begin
GetClassName(hwnd, cName, 180);
IF Pos('EDIT',UpperCase(StrPas(cName)))>0 Then
Begin
SendMessage(hwnd,WM_GETTEXT,254,Integer(@lpszEdtText));
//也可以试试下面这个,不过这个当为密码框时失效
//GetWindowText(hwnd, @lpszEdtText, 254);
ShowMessage('Edit文本为:'+StrPas(lpszEdtText));
End

End;

hWindow:=窗口的句柄;
//枚举子窗口,获取Edit句柄,然后获取文本
EnumChildWindows(hWindow, @OnGetEditHandle, Integer(@hEdt));