如题,获取文本输入框的句柄后,要想输入框发送字符,发完后按按钮!窗体句柄已经获得,请问接下来应该怎么做?拜托大家了
解决方案 »
- 请问,Delphi 中Unicode 字符串替换函数有吗?,谢谢!
- cxgird全方位的中文学习资料
- adodataset的Filter问题,为什么不能在语句中使用mid()函数呢?
- 用delphi如何开发B/S的系统,有没有参考资料,或者推荐几本书!!!
- 天才学生的天才答案zt
- 怎么安装DevExpress套件?很急!
- 菜鸟提问:请问如下一个简单的c的struct如何翻译成object pascal语言?
- 请问怎么实现向EDIT中输入文本是从右向左输入?
- 使用過 devExpress 控件組中TdxDBGrid 控件的朋友,進來看一下好碼!
- 大家分数都长了吧,调查一下,都长了多少?我长了470.
- 高手进来!不用第三个变量,如何交量两个变量的值!
- 如何 实现 动态 显示 HINT ???????????????????????????急!!!!!
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Memo1: TMemo;
Label1: TLabel;
Button1: TButton;
Label2: TLabel;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
EditNo: integer;
fTextHandle: HWND;
implementation
{$R *.DFM}
function GetEditHandle(hwnd: Integer; lparam: Longint):Boolean; stdcall;
var
bufClass: array[0..255] of Char;
bufstr:array[0..255] of Char;
begin
Result := True;
GetClassName(hwnd,bufClass,256);
if StrPas(BufClass)='TEdit' then
begin
inc(EditNo);
if EditNo=3 then //你关心的Edit序号=3
begin
GetWindowText(hwnd,bufstr,100);
form1.memo1.lines.add(strpas(bufstr));
PInteger(lparam)^ := hwnd;
Result:=False;
end;
end;
end;procedure TForm1.Button1Click(Sender: TObject);
var
Handle: Integer;
tmpHandle: Integer;
begin
Handle:=0 ; tmpHandle:=0;
EditNo:=0;
Handle := FindWindow(nil,'收费窗口');
if Handle<>0 then
begin
EditNo:=0;
tmpHandle := Handle;
EnumChildWindows(tmpHandle,@GetEditHandle,Integer(@tmpHandle));
end;
end;
end.
给edit发送wm_copydata消息
然后给button发送点击的消息你可以搜索一下
var
bufClass: array[0..255] of Char;
bufstr:array[0..255] of Char;
begin
Result := True;
GetClassName(hwnd,bufClass,256);
if StrPas(BufClass)='TEdit' then
begin
GetWindowText(hwnd,bufstr,100);
form1.memo1.lines.add(strpas(bufstr));
PInteger(lparam)^ := hwnd;
Result:=False;
end;
end;我想请问,上面的获取edit的函数,if StrPas(BufClass)='TEdit' then是什么意思?
其中的TEdit是要获取的窗口中的输入框的控件类型吗?