同时有两个EDIT的值怎么分别输入到不一样的EDIT值里.(100分)

  • 主题发起人 主题发起人 jjm1227
  • 开始时间 开始时间
J

jjm1227

Unregistered / Unconfirmed
GUEST, unregistred user!
var
h1,h2,h3,h4,h5,h6,h7:thandle;
st1,st2:string;
begin

h1:=findwindow('#32770',进出口表');
if h1=0 then exit;

h2:=findwindowex(h1,0,'Edit',nil);
if h2=0 then exit;
SendMessage(h2,EM_REPLACESEL,180,Integer(Pchar(Edit1.TEXT)));

h3:=findwindowex(h1,0,'Edit',nil);
if h2=0 then exit;
SendMessage(h3,EM_REPLACESEL,180,Integer(Pchar(Edit1.TEXT)));

我是想做一个软件的批量登陆,但在那个软件里就用户和密码的值都是EDIT的,要怎么样做才可以做到分别输入到不同的EDIT里呢?
 
有两个方法可以试用一下。
一、用Spy++之类的工具查看一下Edit控件的uID,如果这个uID是固定不变的话,可以用下面的方法分别获取两个Edit控件的句柄。

const
EDIT_NAME_ID = XXXX; // 第一个Edit控件的uID值
EDIT_PASS_ID = XXXX; // 第二个Edit控件的uID值
var hMainWindow:HWND; // 要查找Edit控件的登录窗口句柄
hEditName:HWND; // 第一个Edit控件句柄
hEditPass:HWND; // 第二个Edit控件句柄
begin
hMainWindow := FindWindow('#32770',进出口表');
hEditName := GetDlgItem(hMainWindow,EDIT_NAME_ID);
hEditPass := GetDlgItem(hMainWindow,EDIT_NAME_ID);
end;
// 第二个方法就是以Edit控件相对于窗口的POINT偏移来获取Edit控件句柄
var Point:TPoint;
hMainWindow:HWND;
hEditName:HWND;
hEditPass:HWND;
begin
hMainWindow := FindWindow('#32770',进出口表');
Point.X := XXX; // 填充第一个Edit相对于窗口的X和Y偏移
Point.Y := XXX;
hEditName := WindowFromPoint(hMainWindow,Point);
Point.X := XXX; // 填充第二个Edit相对于窗口的X和Y偏移
Point.Y := XXX;
hEditPass := WindowFromPoint(hMainWindow,Point);
end;
 
前面的代码有个函数写错了,应该是
WindowFromPoint改成ChildWindowFromPoint函数才对。
 
后退
顶部