如何取得别的系统窗口中的控件的内容!!!!????
我输入别的系统窗口名后,想取得其窗口中控件的值。
我测试了一下,系统中放了三个TEdit控件,可以取的第一个控件的句柄,但是取不到它的内容!!
还有我如何取到这三个TEdit控件的句柄呢!
function EnumChildWndProc(AhWnd:LongInt;
AlParam:lParam):boolean;stdcall;
var
WndClassName: array[0..254] of Char;
WndCaption: array[0..254] of Char;
begin
GetClassName(AhWnd,wndClassName,254);
GetWindowText(aHwnd,WndCaption,254);
with form1.memo1 do
begin
lines.add( string(wndClassName));
lines.add( string(wndCaption));
lines.add('-------');
end;
result:=true;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
hWnd,hWnd_edit:Integer;
str:String;
begin
memo1.Lines.Clear;
Memo1.Lines.Add(Edit1.Text+' 有如下控件类名称');
hWnd:=FindWindow(nil,pchar(Edit1.Text));//输入系统窗口名称
hWnd_edit:=findwindowex(hWnd,0,'Tedit',nil);
if ((hWnd<>0)and(hWnd_edit<>0) )then
begin
//EnumChildWindows(hWnd,@EnumChildWndProc,0);
SendMessage(hWnd_edit,WM_SETTEXT,0,Integer(pchar('HHHH')));
SendMessage(hWnd_edit,WM_GETTEXT,0,Integer(pchar(str)));
Edit2.Text:=IntToStr(hWnd_edit);
ShowMessage(str); ///执行时这个显示的时空字符,事实上我给那个控件写入了'HHHH'.
end
else MessageBox(self.handle,'没找到该窗口句柄','提示',0);
end;