Симулируем нажатие клавиш на клавиатуре 4Delphi , ОС и Железо , КлавишиСимулируем нажатие клавиш на клавиатуре 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; Код написан на языке Delphi и использует функцию Windows API Вот разбивка кода: Первый процедура: Отправка текста Процедура Цикл проходит по каждому символу в строке:
Вторая процедура: Отправка Alt+Tab Процедура Процедура определяет вложенную функцию Основная часть процедуры использует Вот что происходит в более подробном виде:
Замечания Код использует функцию Структура Код использует функцию В целом, этот код предоставляет основное пример использования Windows API для имитации ввода клавиатуры с помощью Delphi. Симулируем нажатие клавиш на клавиатуре с помощью API SendInput в Delphi. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |