请问如何获取另外一个程序中编辑框内的文本?(100分)

  • 主题发起人 主题发起人 borlandor
  • 开始时间 开始时间
B

borlandor

Unregistered / Unconfirmed
GUEST, unregistred user!
请问在应用程序中如何获取另外一个程序中编辑框内的文本,比如记事本里的内容,多谢!
 
How to do it?
 

procedure TMainForm.TimerTimer(Sender: TObject);
var
Pos: TPoint;
Handle: HWND;
Buf: array[0..1024] of Char;
begin
GetCursorPos(Pos);
Handle := WindowFromPoint(Pos);
SendMessage(Handle, WM_GETTEXT, 1024, Integer(@Buf));
TextEdit.Text := Buf;
end;
 
谢谢!也可以这么作:
function GetTextFromOtherWindow(Hwnd:Integer;UInt:Integer):Boolean;stdcall;
var TextBuf:array[0..255] of char;
begin
SendMessage(Hwnd,WM_GETTEXT,255,Integer(@TextBuf));
Form1.Memo1.Text := TextBuf;
end;

procedure TForm1.Button1Click(Sender: TObject);
var LParam: Integer;
begin
LParam := 0;
EnumChildWindows(GetDeskTopwindow,@GetTextFromOtherWindow,LParam);
end;


 
作为你的软件设计时,应考虑到接口的设计,可以考虑象进程间通讯,或用COM来设计
,这样以后调用就简单了,只调用提供的接口函数。
 
这是一简单的Hook应用,我做了一个简单的Demo,可以取得密码输入框的密码,就是基于这个
原理,有原码,如果想要的话,请给我Email,aizb@163.net或http://aizb.6to23.com。
 
后退
顶部