自己写了一个可以显示普通应用程序文本框内容的程序,但不知道如何显示网页中文本框(比如密码框)的内容。请问大家能否帮忙搞定。下面是我的代码:var
Fmain: TFmain;
hwnd:THandle;
point:TPoint;
wndcaption:array[0..255] of char;
wndtext:array[0..255] of char;
wndclass:array[0..255] of char;implementationuses Uabout;{$R *.dfm}function getpass(var hwnd: thandle): string;
var
passbuf: integer;
passlong: longint;
passText: PChar;
begin
passlong:=SendMessage(hwnd,WM_GETTEXTLENGTH,0,0)+1; //获取此对象的长度
GetMem(passText,passlong); //开辟一个内存区。存放数据长度为passlong
passbuf:=LongInt(passtext); //获取此数据区的首地址
SendMessage(hwnd,WM_GETTEXT,passlong,passbuf); //发送消息让此对象将密码数据存入首地址为passbuf的数据区。存入长度为passlong
result:=passtext;
end;procedure TFmain.Label1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
GetCursorPos(point);
hwnd:=WindowFromPoint(point);
edit1.Clear;
edit1.Text:=getpass(hwnd);//显示密码明文
end;end.
Fmain: TFmain;
hwnd:THandle;
point:TPoint;
wndcaption:array[0..255] of char;
wndtext:array[0..255] of char;
wndclass:array[0..255] of char;implementationuses Uabout;{$R *.dfm}function getpass(var hwnd: thandle): string;
var
passbuf: integer;
passlong: longint;
passText: PChar;
begin
passlong:=SendMessage(hwnd,WM_GETTEXTLENGTH,0,0)+1; //获取此对象的长度
GetMem(passText,passlong); //开辟一个内存区。存放数据长度为passlong
passbuf:=LongInt(passtext); //获取此数据区的首地址
SendMessage(hwnd,WM_GETTEXT,passlong,passbuf); //发送消息让此对象将密码数据存入首地址为passbuf的数据区。存入长度为passlong
result:=passtext;
end;procedure TFmain.Label1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
GetCursorPos(point);
hwnd:=WindowFromPoint(point);
edit1.Clear;
edit1.Text:=getpass(hwnd);//显示密码明文
end;end.
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货