建议首先用spy++看看窗口的层次结构 然后……
var
handle, ehandle1, ehandle2: THandle;
begin
handle:=findwindow( '父窗口类' , '父窗口标题' );
ehandle1 := FindWindowEx(父窗口句柄, 0, 'Edit ', nil); //第一个edit的句柄
ehandle2 := GetWindow(ehandle1 ,GW_HWNDNEXT); //遍历得到第二个edit的句柄
获得多个EDIT里面的内容然后提交到数据库中:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, DB, ADODB;
type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Edit7: TEdit;
Edit8: TEdit;
Edit9: TEdit;
Edit10: TEdit;
Edit11: TEdit;
Edit12: TEdit;
Button2: TButton;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Button3: TButton;
GroupBox1: TGroupBox;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
GroupBox2: TGroupBox;
Label16: TLabel;
Label17: TLabel;
Label18: TLabel;
Label19: TLabel;
ADOConnection1: TADOConnection;
ADOQuery1: TADOQuery;
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
S: string;
L: Integer;
x12,x11,x10,x9,x8,x7,x6,x5,x4,x3,x2,x1,main,vHandle:THandle;
begin
vHandle := FindWindow(nil, '证件照图片浏览 ');
if vHandle = 0 then
ShowMessage ( '目标窗口没找到! ');
main := FindWindowEx(vHandle, 0, 'edit ',nil);
x1:=findwindowex(vhandle,main, 'edit ',nil) ;
x2:=findwindowex(vhandle,x1, 'edit ',nil) ;
x3:=findwindowex(vhandle,x2, 'edit ',nil) ;
x4:=findwindowex(vhandle,x3, 'edit ',nil) ;
x5:=findwindowex(vhandle,x4, 'edit ',nil) ;
x6:=findwindowex(vhandle,x5, 'edit ',nil) ;
x7:=findwindowex(vhandle,x6, 'edit ',nil) ;
x8:=findwindowex(vhandle,x7, 'edit ',nil) ;
x9:=findwindowex(vhandle,x8, 'edit ',nil) ;
x10:=findwindowex(vhandle,x9, 'edit ',nil) ;
x11:=findwindowex(vhandle,x10, 'edit ',nil) ;
x12:=findwindowex(vhandle,x11, 'edit ',nil) ;
L := x1;
if L <= 0 then Exit;
SetLength(S, L);
SendMessage(x1, WM_GETTEXT, L, Integer(@S[1]));
edit1.Text:=s;
L := x2;
if L <= 0 then Exit;
SetLength(S, L);
SendMessage(x2, WM_GETTEXT, L, Integer(@S[1]));
edit2.Text:=s;
L := x3;
if L <= 0 then Exit;
SetLength(S, L);
SendMessage(x3, WM_GETTEXT, L, Integer(@S[1]));
edit3.Text:=s;
L := x4;
if L <= 0 then Exit;
SetLength(S, L);
SendMessage(x4, WM_GETTEXT, L, Integer(@S[1]));
edit4.Text:=s;
L := x5;
if L <= 0 then Exit;
SetLength(S, L);
SendMessage(x5, WM_GETTEXT, L, Integer(@S[1]));
edit5.Text:=s;
L := x6;
if L <= 0 then Exit;
SetLength(S, L);
SendMessage(x6, WM_GETTEXT, L, Integer(@S[1]));
edit6.Text:=s;
L := x7;
if L <= 0 then Exit;
SetLength(S, L);
SendMessage(x7, WM_GETTEXT, L, Integer(@S[1]));
edit7.Text:=s;
L := x8;
if L <= 0 then Exit;
SetLength(S, L);
SendMessage(x8, WM_GETTEXT, L, Integer(@S[1]));
edit8.Text:=s;
L := x9;
if L <= 0 then Exit;
SetLength(S, L);
SendMessage(x9, WM_GETTEXT, L, Integer(@S[1]));
edit9.Text:=s;
L := x10;
if L <= 0 then Exit;
SetLength(S, L);
SendMessage(x10, WM_GETTEXT, L, Integer(@S[1]));
edit10.Text:=s;
L := x11;
if L <= 0 then Exit;
SetLength(S, L);
SendMessage(x11, WM_GETTEXT, L, Integer(@S[1]));
edit11.Text:=s;
L := x12;
if L <= 0 then Exit;
SetLength(S, L);
SendMessage(x12, WM_GETTEXT, L, Integer(@S[1]));
edit12.Text:=s;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
form1.Close;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add( 'select * from 学生信息 ');
ADOQuery1.Open;
ADOQuery1.Edit;
ADOQuery1.Last;
ADOQuery1.Append;
ADOQuery1.FieldByName( '图片编号 ').AsString:=Edit1.Text;
ADOQuery1.FieldByName( '姓名 ').AsString:=edit2.Text;
ADOQuery1.FieldByName( '身份证 ').AsString:=Edit3.Text;
ADOQuery1.FieldByName( '学校 ').AsString:=Edit4.Text;
ADOQuery1.FieldByName( '学校代码 ').AsString:=edit5.Text;
ADOQuery1.FieldByName( '性别 ').AsString:=Edit6.Text;
ADOQuery1.FieldByName( '学号 ').AsString:=Edit7.Text;
ADOQuery1.FieldByName( '毕业时间 ').AsString:=edit8.Text;
ADOQuery1.FieldByName( '学位 ').AsString:=Edit9.Text;
ADOQuery1.FieldByName( '办学性质 ').AsString:=Edit10.Text;
ADOQuery1.FieldByName( '学生代码 ').AsString:=edit11.Text;
ADOQuery1.FieldByName( '专业 ').AsString:=Edit12.Text;
ADOQuery1.Post;
edit1.text:= ' ';
edit2.text:= ' ';
edit3.text:= ' ';
edit4.text:= ' ';
edit5.text:= ' ';
edit6.text:= ' ';
edit7.text:= ' ';
edit8.text:= ' ';
edit9.text:= ' ';
edit10.text:= ' ';
edit11.text:= ' ';
edit12.text:= ' ';
end;
end.