Недавно добавленные исходники

•  DeLiKaTeS Tetris (Тетрис)  4 091

•  TDictionary Custom Sort  6 178

•  Fast Watermark Sources  5 980

•  3D Designer  8 859

•  Sik Screen Capture  6 318

•  Patch Maker  6 729

•  Айболит (remote control)  6 724

•  ListBox Drag & Drop  5 582

•  Доска для игры Реверси  95 973

•  Графические эффекты  6 940

•  Рисование по маске  6 197

•  Перетаскивание изображений  5 111

•  Canvas Drawing  5 482

•  Рисование Луны  5 190

•  Поворот изображения  4 737

•  Рисование стержней  3 345

•  Paint on Shape  2 583

•  Генератор кроссвордов  3 482

•  Головоломка Paletto  2 783

•  Теорема Монжа об окружностях  3 582

•  Пазл Numbrix  2 352

•  Заборы и коммивояжеры  3 033

•  Игра HIP  1 990

•  Игра Go (Го)  1 911

•  Симулятор лифта  2 268

•  Программа укладки плитки  1 976

•  Генератор лабиринта  2 429

•  Проверка числового ввода  2 107

•  HEX View  2 437

•  Физический маятник  2 065

 
скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Delphi Sources

Симулируем нажатие клавиш на клавиатуре 4



Оформил: DeeCo

 {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;







Copyright © 2004-2025 "Delphi Sources" by BrokenByte Software. Delphi World FAQ

Группа ВКонтакте