【DELPHI】 对多个窗体(最小化)模拟键盘输入

来源:百度知道 编辑:UC知道 时间:2024/09/28 09:03:48
对多个最少化的窗体模拟键盘输入。
指定隐藏的窗体也行。

方法1(keybd_event):
procedure TForm1.btn2Click(Sender:TObject);
var
h:HWND;
begin
h:=FindWindow('notepad',nil);
SetForegroundWindow(h);
ShowWindow(h,SW_HIDE);
SendKeys('564565465',False);
ShowWindow(h,SW_SHOW);
end;
SendKeys是D7光盘的里的一个sndkey32单元的函数。
方法2(SendMessage):
procedure SendKeysMsg(focushld:hwnd;sSend:string);
var
i:integer; ch:byte;
begin
if focushld=0 then Exit;
i:=1;
while i<=Length(sSend) do
begin
ch:=byte(sSend[i]);
if IsDBCSLeadByte(ch) then
begin
Inc(i);
SendMessage(focushld,WM_IME_CHAR,MakeWord(byte(sSend[i]),ch),0);
end
else
SendMessage(focushld,WM_IME_CHAR,word(ch),0);
Inc(i);
end;
end;

procedure TForm1.btn1Click(Sender:TObject);
var
h:HWND;
begin
h:=FindWindow('notepad',nil);
h:=FindW