最近在研究模拟按键操作,但无论如何就是模拟不出来。请教过别人也做不效果,经过查看虚拟键值与ascii码的区别,终于做出来了。本人只做了字母与数字的模拟,其他的参照代码也一样可以做出来的。以下是代码部份:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
mmo1: TMemo;
btn1: TButton;
procedure btn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.btn1Click(Sender: TObject);
var
i:Integer;
b:Integer;
const
j='ABCDEFGHIJKLNMOPQRSTUVWXYZabcdefghijklnmopqrstuvwxyz0123456789';
begin
for I := 1 to Length(j) do
begin
b:=ord(j[i]);
mmo1.SetFocus;
mmo1.Lines.Add(IntToStr(i)+':'+intToStr(ord(j[i])));
if (b>=65) and (b<=90) then
begin
keybd_event(VK_SHIFT,0,0,0);
keybd_event(Ord(j[i]),0,0,0);
keybd_event(Ord(j[i]),0,2,0);
keybd_event(VK_SHIFT,0,2,0);
end
else
if (b>=48) and (b<=57) then
begin
keybd_event(ord(j[i]),0,0,0);
keybd_event(Ord(j[i]),0,2,0);
end
else
if (b>=97) and (b<=122) then
begin
keybd_event(Ord(j[i])-32,0,0,0);
keybd_event(Ord(j[i])-32,0,2,0);
end;
Sleep(150);
end;
end;
end.