//把c指向的字符数组依次发出去,模拟按键 //用setwindowtext对有的控件,比如密码窗口,好象不起作用 //所以采用发消息模拟按键的方法 for (;*c!='\0';c++ ){ int i = *c; SendMessage(FFirstChild,WM_CHAR,i,NULL);//发送消息,i为ascii码值,比如A为41 }
我用了如何语句,它把窗口的标题改变了,而我要传送一串字符到输入的框内,请问如何修改?procedure TForm1.BitBtn1Click(Sender: TObject); var HWndNotepad:HWnd; begin HWndNotepad := Winprocs.FindWindow(nil, '无标题 - 记事本'); GetFocus; SetWindowText(hwndnotepad,'test'); end;
function callback(h:hwnd;lparam:integer):boolean;stdcall; var buf:array [0..255] of char; begin GetClassname(h,@buf,256); if strpas(buf)='Edit' then Sendmessage(h,wm_settext,5,integer(pchar('abcde'))); result:=false; end;procedure TForm1.Button1Click(Sender: TObject); var h:hwnd; begin h:=findwindow(nil,'未定标题 - 记事本'); if h>0 then enumchildwindows(h,@callback,0); end;
//用setwindowtext对有的控件,比如密码窗口,好象不起作用
//所以采用发消息模拟按键的方法
for (;*c!='\0';c++ ){
int i = *c;
SendMessage(FFirstChild,WM_CHAR,i,NULL);//发送消息,i为ascii码值,比如A为41
}
var
HWndNotepad:HWnd;
begin
HWndNotepad := Winprocs.FindWindow(nil, '无标题 - 记事本');
GetFocus;
SetWindowText(hwndnotepad,'test');
end;
var
buf:array [0..255] of char;
begin
GetClassname(h,@buf,256);
if strpas(buf)='Edit' then
Sendmessage(h,wm_settext,5,integer(pchar('abcde')));
result:=false;
end;procedure TForm1.Button1Click(Sender: TObject);
var
h:hwnd;
begin
h:=findwindow(nil,'未定标题 - 记事本');
if h>0 then
enumchildwindows(h,@callback,0);
end;