procedure TForm1.Button1Click(Sender: TObject); var s:string; begin s:='edit1'; if self.FindComponent(s) is TEdit then SendMessage(TEdit(self.FindComponent(s)).Handle,WM_SETFOCUS,0,0);//此处可根据你的需要写相应事件 end;
用shellexecute(handle,'Open',pchar('文件名.exe'),,,sw_shownormal);可以调用外部的.exe文件 use 加上ShellAPI
打开后怎么对他里面的edit进行操作,就是取得各个edit的句柄
unit Unit1;interfaceuses 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.
var s:string;
begin
s:='edit1';
if self.FindComponent(s) is TEdit then
SendMessage(TEdit(self.FindComponent(s)).Handle,WM_SETFOCUS,0,0);//此处可根据你的需要写相应事件
end;
use 加上ShellAPI
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.
ehandle1, ehandle2: THandle;
begin
ehandle1 := FindWindowEx(父窗口句柄, 0, 'Edit', nil); //第一个edit的句柄
ehandle2 := GetWindow(ehandle1 ,GW_HWNDNEXT); //遍历得到第二个edit的句柄