@ -1,5 +1,6 @@
from keyboard import *
import time
# ШЕСТНАДЦАТИРИЧНЫЙ С К А Н -КОД В РУССКОЙ РАСКЛАДКЕ (НЕЗАВИСИМО О Т ВЫБРАННОГО ЯЗЫКА Н А КЛАВИАТУРЕ)
# ОТОБРАЖЕНИЕ С К А Н КОДОВ Н А КЛАВИАТУРЕ https://snipp.ru/handbk/scan-codes
@ -130,8 +131,8 @@ KEY_HOT_CTRL_LEFT = 0x1D
KEY_HOT_CTRL_RIGHT = 0x11D
KEY_HOT_ALT_LEFT = 0x38
KEY_HOT_ALT_RIGHT = 0x138
KEY_HOT_WIN_LEFT = 0x5B
KEY_HOT_WIN_RIGHT = 0x5C
KEY_HOT_WIN_LEFT = 57435 #OLD AND DONT WORK 0x5B
KEY_HOT_WIN_RIGHT = 57436 #OLD AND DONT WORK 0x5C
KEY_HOT_CAPS_LOCK = 0x3A
KEY_HOT_NUM_LOCK = 0x45
KEY_HOT_SCROLL_LOCK = 0x46
@ -160,45 +161,121 @@ KEY_HOT_7 = 0x8
KEY_HOT_8 = 0x9
KEY_HOT_9 = 0xA
def Write ( inTextStr : str , inDelayFloat : float = 0 , inRestoreStateAfterBool : bool = True , inExactBool : bool = None ):
def Write ( inTextStr : str , inDelayFloat : float = 0 , inRestoreStateAfterBool : bool = True , inExactBool : bool = None , inWaitAfterSecFloat : float = 0.4 ):
"""
Печат ь текста . Н е зависит от текущей раскладки клавиатуры ! Посылает искусственные клавишные события в О С , моделируя печать данного текста . Знаки , не доступные на клавиатуре , напечатаны как явный unicode знаки , использующие определенную для О С функциональность , такие как alt + codepoint .
Печат ает текст , который был передан в переменной inTextStr ( поддерживает передачу в одной строке символов разного языка ) . Н е зависит от текущей раскладки клавиатуры ! Посылает искусственные клавишные события в О С , моделируя печать данного текста . Знаки , не доступные на клавиатуре , напечатаны как явный unicode знаки , использующие определенную для О С функциональность , такие как alt + codepoint .
Чтобы гарантировать текстовую целостность , все в настоящее время нажатые ключи выпущены прежде текст напечатан , и модификаторы восстановлены впоследствии .
ВНИМАНИЕ ! Н Е ЗАВИСИТ О Т ТЕКУЩЕЙ РАСКЛАДКИ КЛАВИАТУРЫ
. . code - block : : python
# Keyboard: Взаимодействие с клавиатурой
from pyOpenRPA . Robot import Keyboard
Keyboard . Write ( " Привет мой милый мир! Hello my dear world! " )
: param inTextStr : Текст , отправляемый на печать . Н е зависит от текущей раскладки клавиатуры !
: type inTextStr : str
: param inDelayFloat : Число секунд , которое ожидать между нажатиями . defaults to 0
: param inDelayFloat : Число секунд , которое ожидать между нажатиями . По умолчанию 0
: type inDelayFloat : float , опционально
: param inRestoreStateAfterBool : Может использоваться , чтобы восстановить регистр нажатых ключей после того , как текст напечатан , т . е . нажимает ключи , которые были выпущены в начало .
: type inRestoreStateAfterBool : bool , опционально
: param inExactBool : Печатает все знаки как явный unicode . Необязательный параметр
: type inExactBool : bool , опционально
: param inWaitAfterSecFloat : Количество секунд , которые ожидать после выполнения операции . По умолчанию 0.4
: type inWaitAfterSecFloat : float , опционально
"""
write ( text = inTextStr , delay = inDelayFloat , restore_state_after = inRestoreStateAfterBool , exact = inExactBool )
time . sleep ( inWaitAfterSecFloat )
def HotkeyCombination ( * inKeyList , inDelaySecFloat = 0.3 ):
def HotkeyCombination ( * inKeyList , inDelaySecFloat = 0.3 ,inWaitAfterSecFloat : float = 0.4 ):
""" Получает перечень кнопок для одновременного нажатия. Между нажатиями программа ожидания время inDelaySecFloat
ВНИМАНИЕ ! Н Е ЗАВИСИТ О Т ТЕКУЩЕЙ РАСКЛАДКИ КЛАВИАТУРЫ
. . code - block : : python
# Keyboard: Взаимодействие с клавиатурой
from pyOpenRPA . Robot import Keyboard
Keyboard . HotkeyCombination ( " ctrl " , Keyboard . KEY_ENG_A ) # Ctrl + a
Keyboard . HotkeyCombination ( " ctrl " , Keyboard . KEY_ENG_C ) # Ctrl + c
: param inKeyList : Список клавиш для одновременного нажатия
Keyboard . HotkeyCombination ( Keyboard . KEY_HOT_CTRL_LEFT , Keyboard . KEY_ENG_A ) # Ctrl + a
Keyboard . HotkeyCombination ( Keyboard . KEY_HOT_CTRL_LEFT , Keyboard . KEY_ENG_C ) # Ctrl + c
Keyboard . HotkeyCombination ( Keyboard . KEY_HOT_CTRL_LEFT , Keyboard . KEY_ENG_A )
Keyboard . HotkeyCombination ( Keyboard . KEY_HOT_ALT_LEFT , Keyboard . KEY_HOT_TAB , Keyboard . KEY_HOT_TAB )
: param inKeyList : Список клавиш для одновременного нажатия . Перечень кнопок см . в разделе " Коды кнопок " . Пример : KEY_HOT_CTRL_LEFT , KEY_ENG_A
: param inDelaySecFloat : Интервал между нажатиями . Необходим в связи с тем , что операционной системе требуется время на реакцию на нажатие клавиш , по умолчанию : 0.3
: type inDelaySecFloat : float , опционально
: param inWaitAfterSecFloat : Количество секунд , которые ожидать после выполнения операции . По умолчанию 0.4
: type inWaitAfterSecFloat : float , опционально
"""
for l_key_item in inKeyList :
press ( l_key_item )
if l_key_item == inKeyList [ - 1 ] :
send ( l_key_item )
else :
press ( l_key_item )
time . sleep ( inDelaySecFloat )
for l_key_item in inKeyList :
release ( l_key_item )
lRevKeyList = list ( reversed ( inKeyList ) )
for l_key_item in lRevKeyList :
if l_key_item == lRevKeyList [ 0 ] :
pass
else :
release ( l_key_item )
time . sleep ( inDelaySecFloat )
time . sleep ( inWaitAfterSecFloat )
def HotkeyCtrlA_CtrlC ( ) - > None :
def HotkeyCtrlA_CtrlC ( inWaitAfterSecFloat : float = 0.4 ) - > None :
""" Выполнить выделение текста, после чего скопировать е г о в буфер обмена
ВНИМАНИЕ ! Н Е ЗАВИСИТ О Т ТЕКУЩЕЙ РАСКЛАДКИ КЛАВИАТУРЫ
. . code - block : : python
# Keyboard: Взаимодействие с клавиатурой
from pyOpenRPA . Robot import Keyboard
Keyboard . HotkeyCtrlA_CtrlC ( ) # Отправить команды: выделить все, скопировать в буфер обмена
: param inWaitAfterSecFloat : Количество секунд , которые ожидать после выполнения операции . По умолчанию 0.4
: type inWaitAfterSecFloat : float , опционально
"""
HotkeyCombination ( KEY_HOT_CTRL_LEFT , KEY_ENG_A ) # Ctrl + a
HotkeyCombination ( KEY_HOT_CTRL_LEFT , KEY_ENG_C ) # Ctrl + c
time . sleep ( inWaitAfterSecFloat )
def Send ( inKeyInt : int , inDoPressBool : bool = True , inDoReleaseBool : bool = True , inWaitAfterSecFloat : float = 0.4 ) - > None :
"""
Посылает событие в операционную систему , которые выполняет нажатие и отпускание данной клавиши
ВНИМАНИЕ ! ЗАВИСИТ О Т ТЕКУЩЕЙ РАСКЛАДКИ КЛАВИАТУРЫ
. . code - block : : python
# Keyboard: Взаимодействие с клавиатурой
from pyOpenRPA . Robot import Keyboard
Keyboard . Send ( Keyboard . KEY_ENG_A ) # Нажать кноку A. Если будет активна русская раскладка, то будет выведена буква ф.
: param inKeyInt : Перечень кнопок см . в разделе " Коды кнопок " . Пример : KEY_HOT_CTRL_LEFT , KEY_ENG_A
: type inKeyInt : int
: param inDoPressBool : Выполнить событие нажатия кнопки , По умолчанию True
: type inDoPressBool : bool , опционально
: param inDoReleaseBool : Выполнить событие отпускания кнопки , По умолчанию True
: type inDoReleaseBool : bool , опционально
: param inWaitAfterSecFloat : Количество секунд , которые ожидать после выполнения операции . По умолчанию 0.4
: type inWaitAfterSecFloat : float , опционально
"""
send ( hotkey = inKeyInt , do_press = inDoPressBool , do_release = inDoReleaseBool )
time . sleep ( inWaitAfterSecFloat )
def Wait ( inKeyInt : int , inWaitAfterSecFloat : float = 0.4 ) :
""" Блокирует осуществление программы, пока данная обозначенная кнопка не будет нажата.
ВНИМАНИЕ ! Н Е ЗАВИСИТ О Т ТЕКУЩЕЙ РАСКЛАДКИ КЛАВИАТУРЫ . ОЖИДАЕТ НАЖАТИЕ СООТВЕТСВУЮЩЕЙ ФИЗИЧЕСКОЙ КЛАВИШИ
. . code - block : : python
# Keyboard: Взаимодействие с клавиатурой
from pyOpenRPA . Robot import Keyboard
Keyboard . Wait ( Keyboard . KEY_ENG_A ) # Ждать нажатие кнопки A.
: param inKeyInt : Перечень кнопок см . в разделе " Коды кнопок " . Пример : KEY_HOT_CTRL_LEFT , KEY_ENG_A
: type inKeyInt : int
: param inWaitAfterSecFloat : Количество секунд , которые ожидать после выполнения операции . По умолчанию 0.4
: type inWaitAfterSecFloat : float , опционально
"""
HotkeyCombination ( " ctrl " , KEY_ENG_A ) # Ctrl + a
HotkeyCombination ( " ctrl " , KEY_ENG_C ) # Ctrl + c
wait( hotkey = inKeyInt )
time. sleep ( inWaitAfterSecFloat )