Wiki in progress (russification)

dev-linux
Ivan Maslov 3 years ago
parent 52fb23bc1d
commit 5f387a8664

@ -57,9 +57,8 @@ pyOpenRPA - роботы Вам помогут!
Используемые сторонние компоненты (лицензионная чистота) Используемые сторонние компоненты (лицензионная чистота)
********************************************************** **********************************************************
- WinPython, v3.7.1 32-bit & 64-bit, лицензия MIT - WinPython, v3.7.1 32-bit & 64-bit, лицензия MIT (https://github.com/winpython/winpython)
https://github.com/winpython/winpython - Selenium, v3.141.0, лицензия Apache 2.0 (https://github.com/SeleniumHQ/selenium/blob/trunk/LICENSE)
- Selenium, v3.141.0, лицензия Apache 2.0 https://github.com/SeleniumHQ/selenium/blob/trunk/LICENSE)
- pywinauto, v0.6.5, лицензия BSD 3-Clause (https://github.com/pywinauto/pywinauto) - pywinauto, v0.6.5, лицензия BSD 3-Clause (https://github.com/pywinauto/pywinauto)
- Semantic UI, v2.4.1, лицензия MIT (https://github.com/Semantic-Org/Semantic-UI) - Semantic UI, v2.4.1, лицензия MIT (https://github.com/Semantic-Org/Semantic-UI)
- PyAutoGUI, v0.9.44, лицензия BSD 3-Clause (https://github.com/asweigart/pyautogui) - PyAutoGUI, v0.9.44, лицензия BSD 3-Clause (https://github.com/asweigart/pyautogui)
@ -71,4 +70,5 @@ pyOpenRPA - роботы Вам помогут!
- requests, v2.22.0, лицензия Apache 2.0 (https://github.com/psf/requests/blob/main/LICENSE) - requests, v2.22.0, лицензия Apache 2.0 (https://github.com/psf/requests/blob/main/LICENSE)
- JsRender, v1.0.2, лицензия MIT (https://github.com/BorisMoore/jsrender/blob/master/MIT-LICENSE.txt) - JsRender, v1.0.2, лицензия MIT (https://github.com/BorisMoore/jsrender/blob/master/MIT-LICENSE.txt)
- Handlebars, v4.1.2, лицензия MIT, (https://github.com/handlebars-lang/handlebars.js/blob/master/LICENSE) - Handlebars, v4.1.2, лицензия MIT, (https://github.com/handlebars-lang/handlebars.js/blob/master/LICENSE)
- jinja2, v2.11.2, лицензия BSD 3-Clause, (https://github.com/pallets/jinja/blob/main/LICENSE.rst) - jinja2, v2.11.2, лицензия BSD 3-Clause, (https://github.com/pallets/jinja/blob/main/LICENSE.rst)
- JupiterNotebook v6.1.4, лицензия BSD 3-Clause, https://github.com/jupyter/notebook/blob/main/LICENSE

@ -22,10 +22,6 @@ How to use both x32 and x64 python processes (it can be helpfully, if another ap
UIDesktop.Utils.ProcessBitness.SettingsInit(lPyOpenRPA_SettingsDict) UIDesktop.Utils.ProcessBitness.SettingsInit(lPyOpenRPA_SettingsDict)
# Now you can use pyOpenRPA with both bitness. # Now you can use pyOpenRPA with both bitness.
.. automodule:: pyOpenRPA.Robot.Keyboard
:members:
:autosummary:
.. automodule:: pyOpenRPA.Robot.UIDesktop .. automodule:: pyOpenRPA.Robot.UIDesktop
:members: :members:

@ -4,36 +4,29 @@
4. Keyboard 4. Keyboard
#################################### ####################################
Клавиатура - это главный текстовый инструмент, который обладает 100% точностью передачи данных. С его помощью можно отправлять сообщения, ожидать нажатия и выполнять различные комбинации клавиш. На этой странице представлена вся необходимая информация по управлению клавиатурой со стороны программного робота RPA.
В отличие от многих RPA платформ, pyOpenRPA обладает функциями, которые не зависят от текущей раскладки клавиатуры. За счет этого надежность и стабильность программного робота существенно возрастает.
ВНИМАНИЕ! ПРИ ВЫЗОВЕ ФУНКЦИЙ ОБРАЩАЙТЕ ВНИМАНИЕ НА РЕГИСТР.
************************************************** **************************************************
Примеры использования Примеры использования
************************************************** **************************************************
Here you can find the functions description for interaction with desktop GUI applications
How to use both x32 and x64 python processes (it can be helpfully, if another app GUI is on another bitness than your app)
.. code-block:: python .. code-block:: python
# Keyboard: Взаимодействие с клавиатурой # Keyboard: Взаимодействие с клавиатурой
from pyOpenRPA.Robot import Keyboard from pyOpenRPA.Robot import Keyboard
from pyOpenRPA.Robot import Clipboard Keyboard.HotkeyCombination(Keyboard.KEY_HOT_WIN_LEFT,Keyboard.KEY_ENG_R)
Keyboard.send("win+r") Keyboard.Write("cmd")
time.sleep(0.3) Keyboard.Send(Keyboard.KEY_HOT_ENTER, inWaitAfterSecFloat=0.6)
Keyboard.write("cmd") Keyboard.Write("echo %time%")
time.sleep(0.3) Keyboard.Send(Keyboard.KEY_HOT_ENTER)
Keyboard.send("enter") Keyboard.HotkeyCombination(Keyboard.KEY_HOT_CTRL_LEFT, Keyboard.KEY_ENG_A, inWaitAfterSecFloat=0.6)
time.sleep(0.6) Keyboard.HotkeyCombination(Keyboard.KEY_HOT_CTRL_LEFT, Keyboard.KEY_ENG_C, inWaitAfterSecFloat=0.6)
Keyboard.write("echo %time%")
time.sleep(0.3) Коды клавиш см. ниже
Keyboard.send("enter")
time.sleep(0.3)
Keyboard.send("ctrl+a")
time.sleep(0.6)
Clipboard.ClipboardSet("")
Keyboard.send("ctrl+c")
time.sleep(0.6)
lTextRaw = Clipboard.ClipboardGet()
lTimeStr = lTextRaw.split("\n")[-3]
************************************************** **************************************************
Описание методов Описание методов

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

Loading…
Cancel
Save