Sources
Delphi Russian Knowledge Base
DRKB - это самая большая и удобная в использовании база знаний по Дельфи в рунете, составленная Виталием Невзоровым

Эмулирование мыши / клавиатуры через SendInput()

01.01.2007
procedure TForm1.Button1Click(Sender: TObject);

 
var
  TI
:TInput;
  MI
: TMouseInput;
  P
:TPoint;
begin
 
GetCursorPos(P);
  MI
.dx := P.X;
  MI
.dy := P.Y;
  MI
.mouseData := 0;
  MI
.dwFlags := MOUSEEVENTF_RIGHTDOWN ;
  MI
.time := 10;
  TI
.mi := MI;
  TI
.Itype := INPUT_MOUSE;
 
SendInput(1, TI, SizeOf(TInput));
  MI
.dwFlags:=MOUSEEVENTF_RIGHTUP;
  TI
.mi := MI;
 
SendInput(1, TI, SizeOf(TInput));
end;
procedure TForm1.Button1Click(Sender: TObject);
const
 
SomeText = 'SendInput test.';
var
  TI
: TInput;
  KI
: TKeybdInput;
  I
: Integer;
begin
  Edit1
.SetFocus;
  TI
.Itype := INPUT_KEYBOARD;
 
for I := 1 to Length(SomeText) do
 
begin
    KI
.wVk := Ord(UpCase(SomeText[I]));
    KI
.dwFlags := 0;
    TI
.ki := KI;
   
SendInput(1, TI, SizeOf(TI));
    KI
.dwFlags := KEYEVENTF_KEYUP;
    TI
.ki := KI;
   
SendInput(1, TI, SizeOf(TI));
 
end;
end;

Взято из https://forum.sources.ru

Автор: Rouse_