procedure TForm1.Button2Click(Sender: TObject); var HWindow,hedit: THandle; //句本柄变量 szText: Array[0..255] Of char; //得到的字符串 Begin HWindow := 0; While true Do Begin HWindow := FindWindowEx(0, HWindow, 'SciCalc', Nil);//找计算器的窗体 if HWindow=0 then exit; If HWindow <> 0 Then Begin hEdit := FindWindowEx(hwindow, 0, 'Edit', Nil); //找到edit文本框 if HEdit<>0 then begin SendMessage(hEdit, WM_GetTEXT, 256,integer(@szText[0])); //取值 edit1.Text:= szText; //符值 break; End; end; end; End;
给你写了一个获得记事本文本的例子,你看下吧。好像用GetWindowText只能得到标题的? 这个还要研究一下。 ^_^ ----------------------------------------------------- procedure TForm1.Button1Click(Sender: TObject); var MainHandle,MemoHandle :THandle; Text :Array [0..100] of Char; TextLen :Integer; begin MainHandle := FindWindow('notepad',nil); MemoHandle := FindWIndowEx(MainHandle,0,'Edit',nil); ShowMessage(IntToStr(MemoHandle)); SendMessage(MemoHandle,WM_GETTEXT,100,LongInt(@Text)); Memo1.Text := Text; end;
也应是说,要用API才可以!
var HWindow,hedit: THandle; //句本柄变量
szText: Array[0..255] Of char; //得到的字符串
Begin
HWindow := 0;
While true Do
Begin
HWindow := FindWindowEx(0, HWindow, 'SciCalc', Nil);//找计算器的窗体
if HWindow=0 then exit;
If HWindow <> 0 Then
Begin
hEdit := FindWindowEx(hwindow, 0, 'Edit', Nil); //找到edit文本框
if HEdit<>0 then
begin
SendMessage(hEdit, WM_GetTEXT, 256,integer(@szText[0])); //取值
edit1.Text:= szText; //符值
break;
End;
end;
end;
End;
这个还要研究一下。
^_^
-----------------------------------------------------
procedure TForm1.Button1Click(Sender: TObject);
var
MainHandle,MemoHandle :THandle;
Text :Array [0..100] of Char;
TextLen :Integer;
begin
MainHandle := FindWindow('notepad',nil);
MemoHandle := FindWIndowEx(MainHandle,0,'Edit',nil);
ShowMessage(IntToStr(MemoHandle));
SendMessage(MemoHandle,WM_GETTEXT,100,LongInt(@Text));
Memo1.Text := Text;
end;
不会的,是你用的方法不对,在WINDOWS下,应该都市有控件句柄的
不至于吧,直接调用api函数,跟什么语言没关系吧