Содержание материала

Code:

{With SendInput API}

 

// Example: Send text

procedure TForm1.Button1Click(Sender: TObject);

const

   Str: string = 'writing writing writing';

var

  Inp: TInput;

  I: Integer;

begin

  Edit1.SetFocus;

 

  for I := 1 to Length(Str) do

  begin

    // press

   Inp.Itype := INPUT_KEYBOARD;

    Inp.ki.wVk := Ord(UpCase(Str[i]));

    Inp.ki.dwFlags := 0;

    SendInput(1, Inp, SizeOf(Inp));

 

    // release

   Inp.Itype := INPUT_KEYBOARD;

    Inp.ki.wVk := Ord(UpCase(Str[i]));

    Inp.ki.dwFlags := KEYEVENTF_KEYUP;

    SendInput(1, Inp, SizeOf(Inp));

 

    Application.ProcessMessages;

    Sleep(80);

  end;

end;

 

// Example: Simulate Alt+Tab

procedure SendAltTab;

var

  KeyInputs: array of TInput;

  KeyInputCount: Integer;

 

  procedure KeybdInput(VKey: Byte; Flags: DWORD);

  begin

    Inc(KeyInputCount);

    SetLength(KeyInputs, KeyInputCount);

    KeyInputs[KeyInputCount - 1].Itype := INPUT_KEYBOARD;

    with KeyInputs[KeyInputCount - 1].ki do

    begin

      wVk := VKey;

      wScan := MapVirtualKey(wVk, 0);

      dwFlags := KEYEVENTF_EXTENDEDKEY;

      dwFlags := Flags or dwFlags;

      time := 0;

      dwExtraInfo := 0;

    end;

  end;

begin

  KeybdInput(VK_MENU, 0);                // Alt

KeybdInput(VK_TAB, 0);                 // Tab

KeybdInput(VK_TAB, KEYEVENTF_KEYUP);   // Tab

KeybdInput(VK_MENU, KEYEVENTF_KEYUP); // Alt

SendInput(KeyInputCount, KeyInputs[0], SizeOf(KeyInputs[0]));

end;

 

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить