Исходник Python syscall-based библиотека для управления клавиатурой и мышкой

  • Автор темы Автор темы Xenely
  • Дата начала Дата начала
Пользователь
Пользователь
Статус
Оффлайн
Регистрация
21 Мар 2021
Сообщения
101
Реакции
32
Привет форумчане, недавно столкнулся с проблемой, что некоторые процессы не дают выполнять некоторые WinAPI функции управления мышкой / клавиатуры, а потому мной было предпринято решение написать небольшую, простую и нативную библиотеку для решения данной проблемы.

Проект:
Пожалуйста, авторизуйтесь для просмотра ссылки.
, Автор:
Пожалуйста, авторизуйтесь для просмотра ссылки.

ntnput - Python библиотека, что использует встроенный в язык ctypes пакет и syscall обертки незадокументированных win32u.dll функций:
1. NtUserInjectMouseInput - для взаимодействия с мышкой
2. NtUserInjectKeyboardInput - для взаимодействия с клавиатурой

За счёт использования скрытых системных вызовов библиотека:
1. Работает быстрее аналогичных
2. Обходит некоторые попытки процесса заблокировать ввод событий клавиатуры / мыши
3. Безопаснее, поскольку обходит WinHooks и прочую лабуду

Реализуемые в библиотеке функции:
Функции мыши:
mouse_move(x, y) - двигает мышь относительно текущей позиции
mouse_move_to(x, y) - двигает мышь по абсолютным x, y координатам экрана
mouse_click(button <по умол. "left">) - нажимает кнопку мыши
mouse_release(button <по умол. "left">) - отпускает кнопку мыши
mouse_click_and_release(button <по умол. "left">, delay_ms <по умол. 0.0>) - нажимает кнопку мыши, ждёт задержку, отпускает

Функции клавиатуры:
keyboard_press(key_code) - нажимает кнопку клавиатуры
keyboard_release(key_code) - отпускает кнопку клавиатуры
keyboard_press_and_release(key_code, delay_ms <по умол. 0.0>) - нажимает кнопку клавиатуры, ждёт задержку, отпускает

Как установить:

Способ #1 (использовать pip):
Код:
Expand Collapse Copy
pip install ntnput

Способ #2 (Ручная, локальная установки):
Для этого способа требуется скачать код из
Пожалуйста, авторизуйтесь для просмотра ссылки.
репозитория, и расположить папку ntnput в директории проекта:
1745706413188.png
 
Последнее редактирование:
Назад
Сверху Снизу