You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ORPA-pyOpenRPA/Wiki/RUS_Guide/markdown/Robot/07_screen.md

892 lines
39 KiB

2 years ago
# 7. Функции Screen
## Общее
Документация к модулю будет опубликована в Июле 2022. По всем вопросам роботизации WEB приложений обращайтесь в центр поддержки клиентов pyOpenRPA.
Дорогие коллеги!
Мы знаем, что с pyOpenRPA вы сможете существенно улучшить качество вашего бизнеса. Платформа роботизации pyOpenRPA - это разработка, которая дает возможность делать виртуальных сотрудников (программных роботов RPA) выгодными, начиная от эффекта всего в **10 тыс. руб.** И управлять ими будете только Вы!
Если у вас останутся вопросы, то вы всегда можете обратиться в центр поддержки клиентов pyOpenRPA. Контакты: 2. Лицензия & Контакты
pyOpenRPA - роботы помогут!
## Класс Box
Экземпляр класса pyscreeze.Box, который характеризует прямоугольную область на экране.
top - координата левой верхней точки в пикселях по оси X (горизонталь)
left - координата левой верхней точки в пикселях по оси Y (вертикаль)
height - расстояние вниз от левой верхней точки в пикселях
width - расстояние вправо от левой верхней точки в пикселях
## Класс Point
Экземпляр класса pyscreeze.Point, который характеризует точку на экране.
x - координата точки в пикселях по оси X (горизонталь)
y - координата точки в пикселях по оси Y (вертикаль)
## Символьное указание точки (inPointRuleStr)
### LU|CU|RU
### LC|CC|RC
LD|CD|RD
Символьное указание точки - точка относительно которой выполнить изменение прямоугольной области.
> «CC»,
Формат образования кода: XY, где
* X обозначает положение по горизонтали (допустимые значения: «L», «C», «R»)
* Y обозначает положение по вертикали (допустимые значения: «U», «C», «D»)
Допустимые значения:
* «CC» - центр по горизонтали, центр по вертикали
* «LU» - левый край по горизонтали, верхний край по вертикали
* «LD» - левый край по горизонтали, нижний край по вертикали
* «RD» - правый край по горизонтали, нижний край по вертикали
* «RU» - правый край по горизонтали, верхний край по вертикали
X-10 - корректировка координаты по оси X на 10 пикселей влево
Y+20 - корректировка координаты по оси Y на 20 пикселей вниз
## Символьное указание области (inAnchorRuleStr)
### LU|CU|RU
### LC|CC|RC
LD|CD|RD
Символьное указание области поиска - область относительно которой выполнить поиск другой прямоугольной области.
> «CC»,
Формат образования кода: XY, где
* X обозначает область по горизонтали (допустимые значения: «L», «C», «R»)
* Y обозначает область по вертикали (допустимые значения: «U», «C», «D»)
Допустимые значения:
* «CC» - выбранная прямоугольная область
* «LU» - слева и сверху от выбранной прямоугольной области
* «LD» - слева и снизу от выбранной прямоугольной области
* «LС» - слева от выбранной прямоугольной области
* «RC» - справа от выбранной прямоугольной области
* «СU» - сверху от выбранной прямоугольной области
* «CD» - сверху от выбранной прямоугольной области
* «RD» - справа и снизу от выбранной прямоугольной области
* «RU» - справа и сверху от выбранной прямоугольной области
Опция «S» (strict) - искомый объект должен всеми своими координатами находиться в обозначенной прямоугольной области
Формат допускает комбинации нескольких областей в одной строке.
Пример:
«CC,LU,LD,S»
«CC|LU|LD|S»
«CCLULDS»
Графическая интерпретация:
+|-
```
|-
-----
-|+|
```
-
—–
+|-
```
|
```
-
## Описание функций
**Functions:**
| `BoxAnchorRuleCheck`(inBox[, inAnchorBox, …])
| Выполнить проверку соответствия всем условиям вхождения inBox в inAnchorBox с учетом правил inAnchorRule
|
| `BoxCreate`(inTopInt, inLeftInt, inHeightInt, …)
| Создать экземпляр прямоугольной области.
|
| `BoxDraw`(inBox[, inColorStr, inThicknessInt])
| Выполнить подсветку прямоугольной области inBox на экране
|
| `BoxGetPoint`(inBox[, inPointRuleStr])
| Получить точку pyscreeze.Point по заданной прямоугольной области pyscreeze.Box и строковому параметру расположения inPointRuleStr.
|
| `BoxModify`(inBox[, inDWidthInt, …])
| Изменить ширину / высоту прямоугольной области.
|
| `BoxMoveTo`(inBox[, inDXInt, inDYInt])
| Переместить прямоугольную область (сохранить длину/ширину).
|
| `BoxOverlay`(inBox1, inBox2)
| Проверить наложение 2-х прямоугольных областей друг на друга.
|
| `ImageClick`(inImgPathStr[, inBoxIndexInt, …])
| Выполнить поиск прямоугольной области по изображению.
|
| `ImageExists`(inImgPathStr[, …])
| Проверить, имеется ли на экране хотя бы один подходящий объект.
|
| `ImageLocateAll`(inImgPathStr[, …])
| Искать на экране графические объекты, которые похожи на inImgPathStr.
|
| `ImageWaitAppear`(inImgPathStr[, …])
| Ожидать появление изображения на протяжении inWaitSecFloat секунд.
|
| `ImageWaitDisappear`(inImgPathStr[, …])
| Ожидать исчезновение изображения на протяжении inWaitSecFloat секунд.
|
| `PointClick`(inPoint[, inClickCountInt, …])
| Нажатие (вниз) кнопки мыши и затем немедленно выпуск (вверх) её.
|
| `PointClickDouble`(inPoint[, inWaitAfterSecFloat])
| Двойное нажатие левой клавиши мыши.
|
| `PointCreate`(inXInt, inYInt)
| Создать точку pyscreeze.Point.
|
| `PointDown`(inPoint[, inButtonStr, …])
| Переместить указатель по координатам inPoint, после чего нажать (вниз) клавишу мыши и не отпускать до выполнения соответсвующей команды (см.
|
| `PointModify`(inPoint, inDXInt, inDYInt)
| Скорректировать точку pyscreeze.Point.
|
| `PointMoveTo`(inPoint[, inWaitAfterSecFloat])
| Переместить указатель мыши на позицию inXInt, inYInt за время inMoveDurationSecFloat.
|
| `PointUp`(inPoint[, inButtonStr, …])
| Отпустить (вверх) клавишу мыши.
|
### pyOpenRPA.Robot.Screen.BoxAnchorRuleCheck(inBox, inAnchorBox=None, inAnchorRuleStr=None)
Выполнить проверку соответствия всем условиям вхождения inBox в inAnchorBox с учетом правил inAnchorRule
```
# Screen: Взаимодействие с экраном
from pyOpenRPA.Robot import Screen
lBox1 = Screen.BoxCreate(inTopInt=265, inLeftInt=62, inHeightInt=100, inWidthInt=90)
lBox2 = Screen.BoxCreate(inTopInt=160, inLeftInt=160, inHeightInt=100, inWidthInt=100)
lBox3 = Screen.BoxCreate(inTopInt=460, inLeftInt=60, inHeightInt=100, inWidthInt=100)
l = Screen.BoxAnchorRuleCheck(inBox=lBox1, inAnchorBox=[lBox2,lBox3], inAnchorRuleStr=["LD","CUS"])
Screen.BoxDraw([lBox1,lBox2,lBox3])
```
* **Параметры**
* **inBox** (*pyscreeze.Box*) Экземпляр класса прямоугольной области Box
* **inAnchorBox** (*pyscreeze.Box или list из pyscreeze.Box*) Экземпляр класса прямоугольной области Box
* **inAnchorRuleStr** (*str или list из str*) Символьное указание области проверки соответствия. Может принимать единственное значение (единый формат для всех inAnchorBox), или список форматов для каждого inAnchorBox (если inAnchorBox является списком Box)
* **Результат**
True - соответствует всем правилам
* **Тип результата**
bool
### pyOpenRPA.Robot.Screen.BoxCreate(inTopInt: int, inLeftInt: int, inHeightInt: int, inWidthInt: int)
Создать экземпляр прямоугольной области.
!ВНИМАНИЕ! Координаты inTopInt, inLeftInt определяют верхний левый край прямоугольной области.
* **Параметры**
* **inTopInt** (*int*) Координата левой верхней точки в пикселях по оси X (горизонталь)
* **inLeftInt** (*int*) Координата левой верхней точки в пикселях по оси Y (вертикаль)
* **inHeightInt** (*int*) Расстояние вниз от левой верхней точки в пикселях
* **inWidthInt** (*int*) Расстояние вправо от левой верхней точки в пикселях
### pyOpenRPA.Robot.Screen.BoxDraw(inBox, inColorStr='green', inThicknessInt=2)
Выполнить подсветку прямоугольной области inBox на экране
!ВНИМАНИЕ! РАБОТАЕТ ТОЛЬКО НА ОС WINDOWS
!ВНИМАНИЕ! ПОДДЕРЖИВАЕТ ПАКЕТНУЮ ОБРАТКУ ПРИ ПЕРЕДАЧЕ СПИСКА ЭКЗЕМПЛЯРОВ BOX
```
# Screen: Взаимодействие с экраном
from pyOpenRPA.Robot import Screen
# ВАРИАНТ ОТРИСОВКИ 1ГО ЭЛЕМЕНТА
# Создать пробную прямоугольную область
lBox = Screen.BoxCreate(inTopInt=10, inLeftInt=10, inHeightInt=10, inWidthInt=10)
Screen.BoxDraw(lBox)
# ВАРИАНТ ПАКЕТНОЙ ОТРИСОВКИ
# Создать пробную прямоугольную область
lBox = Screen.BoxCreate(inTopInt=10, inLeftInt=10, inHeightInt=100, inWidthInt=100)
lBox2 = Screen.BoxCreate(inTopInt=60, inLeftInt=60, inHeightInt=100, inWidthInt=100)
Screen.BoxDraw([lBox, lBox2])
```
* **Параметры**
* **inBox** (*pyscreeze.Box*) Экземпляр класса прямоугольной области Box
* **inColorStr** (*str**, **необязательный*) цвет подсветки прямоугольной области. Варианты: „red“, „green“, „blue“. По умолчанию „green“
* **inThicknessInt** (*int**, **необязательный*) толщина подсветки прямоугольной области. По умолчанию 2
### pyOpenRPA.Robot.Screen.BoxGetPoint(inBox, inPointRuleStr='CC')
Получить точку pyscreeze.Point по заданной прямоугольной области pyscreeze.Box и строковому параметру расположения inPointRuleStr.
```
# Screen: Взаимодействие с мышью объектами экрана
from pyOpenRPA.Robot import Screen
lBox1 = Screen.BoxCreate(inTopInt=10, inLeftInt=10, inHeightInt=100, inWidthInt=1000)
lPoint = Screen.BoxGetPoint(inBox=lBox1, inPointRuleStr="LC")
```
* **Параметры**
* **inBox** (*pyscreeze.Box**, **обязательный*) Прямоугольная область на экране
* **inPointRuleStr** (*str**, **опциональный*) Правило идентификации точки на прямоугольной области (правила формирования см. выше). Варианты: «LU»,»CU»,»RU»,»LC»,»CC»,»RC»,»LD»,»CD»,»RD». По умолчанию «CC»
* **Результат**
Точка на экране
* **Тип результата**
pyscreeze.Point
### pyOpenRPA.Robot.Screen.BoxModify(inBox, inDWidthInt=None, inDHeightInt=None, inPointRuleStr='CC')
Изменить ширину / высоту прямоугольной области.
!ВНИМАНИЕ! ПОДДЕРЖИВАЕТ ПАКЕТНУЮ ОБРАТКУ ПРИ ПЕРЕДАЧЕ СПИСКА ЭКЗЕМПЛЯРОВ BOX
!ВНИМАНИЕ! ЕСЛИ СМЕЩЕНИЕ ПРИВЕДЕТ К ОБРАЗОВАНИЮ ДРОБНОГО ЧИСЛА, БУДЕТ ВЫПОЛНЕНО ОКРУГЛЕНИЕ ПО МАТЕМАТИЧЕСКИМ ПРАВИЛАМ
```
# Screen: Взаимодействие с экраном
from pyOpenRPA.Robot import Screen
# Вариант изменения 1-го элемента
# Создать пробную прямоугольную область
lBox = Screen.BoxCreate(inTopInt=10, inLeftInt=10, inHeightInt=10, inWidthInt=10)
# Скорректировать пробную прямоугольную область
lBox2 = Screen.BoxModify(lBox,10,10,"CC"); print(lBox2)
lBox2 = Screen.BoxModify(lBox,10,10,"LU"); print(lBox2)
lBox2 = Screen.BoxModify(lBox,10,10,"LD"); print(lBox2)
lBox2 = Screen.BoxModify(lBox,10,10,"RU"); print(lBox2)
lBox2 = Screen.BoxModify(lBox,10,10,"RD"); print(lBox2)
```
* **Параметры**
* **inBox** (*pyscreeze.Box*) Экземпляр класса прямоугольной области Box
* **inDXInt** (*int**, **опциональный*) Смещение левой верхней координаты по оси X в пикселях (горизонтальная ось).
* **inDYInt** (*int**, **опциональный*) Смещение левой верхней координаты по оси Y в пикселях (вертикальная ось).
* **inPointRuleStr** (*str**, **опциональный*) Символьное указание точки (подробнее см. выше), относительно которой выполнить изменение прямоугольной области. Допустимые значения: «CC» (по умолчанию), «LU», «LD», «RD», «RU»
* **Результат**
Экземпляр класса прямоугольной области Box
* **Тип результата**
pyscreeze.Box
### pyOpenRPA.Robot.Screen.BoxMoveTo(inBox, inDXInt=None, inDYInt=None)
Переместить прямоугольную область (сохранить длину/ширину).
!ВНИМАНИЕ! ПОДДЕРЖИВАЕТ ПАКЕТНУЮ ОБРАТКУ ПРИ ПЕРЕДАЧЕ СПИСКА ЭКЗЕМПЛЯРОВ BOX
```
# Screen: Взаимодействие с экраном
from pyOpenRPA.Robot import Screen
# Вариант изменения 1-го элемента
# Создать пробную прямоугольную область
lBox = Screen.BoxCreate(inTopInt=10, inLeftInt=10, inHeightInt=10, inWidthInt=10)
# Переместить пробную прямоугольную область
lBox = Screen.BoxMoveTo(lBox, inDXInt=100, inDYInt=200)
```
* **Параметры**
* **inBox** (*pyscreeze.Box*) Экземпляр класса прямоугольной области Box
* **inDXInt** (*int**, **опциональный*) Смещение левой верхней координаты по оси X в пикселях (горизонтальная ось).
* **inDYInt** (*int**, **опциональный*) Смещение левой верхней координаты по оси Y в пикселях (вертикальная ось).
* **Результат**
Экземпляр класса прямоугольной области Box
* **Тип результата**
pyscreeze.Box
### pyOpenRPA.Robot.Screen.BoxOverlay(inBox1, inBox2)
Проверить наложение 2-х прямоугольных областей друг на друга.
```
# Screen: Взаимодействие с экраном
from pyOpenRPA.Robot import Screen
lBox1 = Screen.BoxCreate(inTopInt=10, inLeftInt=10, inHeightInt=100, inWidthInt=1000)
lBox2 = Screen.BoxCreate(inTopInt=160, inLeftInt=160, inHeightInt=100, inWidthInt=100)
Screen.BoxDraw([lBox1, lBox2])
Screen.BoxOverlay(lBox1,lBox2)
```
* **Параметры**
* **inBox1** (*pyscreeze.Box*) Экземпляр класса прямоугольной области Box
* **inBox2** (*pyscreeze.Box*) Экземпляр класса прямоугольной области Box
* **Результат**
True - inBox1 наложен на inBox2
* **Тип результата**
bool
### pyOpenRPA.Robot.Screen.ImageClick(inImgPathStr: str, inBoxIndexInt: int = 0, inPointRuleStr: str = 'CC', inIsGrayModeBool: bool = False, inConfidenceFloat: float = 1.0, inWaitSecFloat: float = 0, inWaitIntervalSecFloat: float = 0)
Выполнить поиск прямоугольной области по изображению.
```
# Screen: Взаимодействие с объектами экрана
from pyOpenRPA.Robot import Screen
Screen.ImageClick(inImgPathStr="Button.png",inConfidenceFloat=0.9)
```
* **Параметры**
* **inImgPathStr** (*str**, **относительный или абсолютный*) Путь к изображению, которое требуется искать на экране
* **inBoxIndexInt** (*int**, **опционально*) Индекс прямоугольной области, по которой выполнить клик (если обнаружено несколько областей Box), По умолчанию 0
* **inPointRuleStr** (*str**, **опциональный*) Правило идентификации точки на прямоугольной области (правила формирования см. выше). Варианты: «LU»,»CU»,»RU»,»LC»,»CC»,»RC»,»LD»,»CD»,»RD». По умолчанию «CC»
* **inIsGrayModeBool** (*bool**, **опционально*) True - выполнить поиск изображения в режиме серых оттенков (ускоряет производительность, если допускается искажение цвета). По умолчанию False
* **inConfidenceFloat** (*float**, **опционально*) Показатель точности. 1.0 - идентичное соответствие, 0.0 - полное несоответствие. По умолчанию 1.0
* **inWaitSecFloat** (*float**, **опциональный*) Время ожидания появления изображения в сек. По умолчанию 0
* **inWaitIntervalSecFloat** (*float**, **опциональный*) Интервал повторной проверки наличия изображения. По умолчанию 0
### pyOpenRPA.Robot.Screen.ImageExists(inImgPathStr: str, inIsGrayModeBool: bool = False, inConfidenceFloat: float = 1.0)
Проверить, имеется ли на экране хотя бы один подходящий объект. Вернуть булево значение
```
# Screen: Взаимодействие с объектами экрана
from pyOpenRPA.Robot import Screen
lResult = Screen.ImageExists(inImgPathStr="Button.png",inConfidenceFloat=0.9)
```
* **Параметры**
* **inImgPathStr** (*str**, **относительный или абсолютный*) Путь к изображению, которое требуется искать на экране
* **inIsGrayModeBool** (*bool**, **опционально*) True - выполнить поиск изображения в режиме серых оттенков (ускоряет производительность, если допускается искажение цвета). По умолчанию False
* **inConfidenceFloat** (*float**, **опционально*) Показатель точности. 1.0 - идентичное соответствие, 0.0 - полное несоответствие. По умолчанию 1.0
* **Результат**
Список из pyscreeze.Box
* **Тип результата**
list
### pyOpenRPA.Robot.Screen.ImageLocateAll(inImgPathStr: str, inIsGrayModeBool: bool = False, inConfidenceFloat: float = 1.0)
Искать на экране графические объекты, которые похожи на inImgPathStr. Вернуть список прямоугольных областей на экране (pyscreeze.Box)
```
# Screen: Взаимодействие с объектами экрана
from pyOpenRPA.Robot import Screen
Screen.ImageLocateAll(inImgPathStr="Button.png",inConfidenceFloat=0.9)
```
* **Параметры**
* **inImgPathStr** (*str**, **относительный или абсолютный*) Путь к изображению, которое требуется искать на экране
* **inIsGrayModeBool** (*bool**, **опционально*) True - выполнить поиск изображения в режиме серых оттенков (ускоряет производительность, если допускается искажение цвета). По умолчанию False
* **inConfidenceFloat** (*float**, **опционально*) Показатель точности. 1.0 - идентичное соответствие, 0.0 - полное несоответствие. По умолчанию 1.0
* **Результат**
Список из pyscreeze.Box
* **Тип результата**
list
### pyOpenRPA.Robot.Screen.ImageWaitAppear(inImgPathStr: str, inWaitSecFloat: float = 60, inWaitIntervalSecFloat: float = 1.0, inIsGrayModeBool: bool = False, inConfidenceFloat: float = 1.0)
Ожидать появление изображения на протяжении inWaitSecFloat секунд. Проверять с периодичностью inWaitIntervalSecFloat. Вернуть список прямоугольных областей, которые удовлетворяют условию
```
# Screen: Взаимодействие с объектами экрана
from pyOpenRPA.Robot import Screen
lBoxList = Screen.ImageWaitAppear(inImgPathStr="Button.png",inConfidenceFloat=0.9)
```
* **Параметры**
* **inImgPathStr** (*str**, **относительный или абсолютный*) Путь к изображению, которое требуется искать на экране
* **inWaitSecFloat** (*float**, **опциональный*) Время ожидания появления изображения в сек. По умолчанию IMAGE_WAIT_SEC_FLOAT (60)
* **inWaitIntervalSecFloat** (*float**, **опциональный*) Интервал повторной проверки наличия изображения. По умолчанию IMAGE_WAIT_INTERVAL_SEC_FLOAT (1)
* **inIsGrayModeBool** (*bool**, **опционально*) True - выполнить поиск изображения в режиме серых оттенков (ускоряет производительность, если допускается искажение цвета). По умолчанию False
* **inConfidenceFloat** (*float**, **опционально*) Показатель точности. 1.0 - идентичное соответствие, 0.0 - полное несоответствие. По умолчанию 1.0
* **Результат**
Список из pyscreeze.Box или [] если прошло время ожидания.
* **Тип результата**
list
### pyOpenRPA.Robot.Screen.ImageWaitDisappear(inImgPathStr: str, inWaitSecFloat: float = 60, inWaitIntervalSecFloat: float = 1.0, inIsGrayModeBool: bool = False, inConfidenceFloat: float = 1.0)
Ожидать исчезновение изображения на протяжении inWaitSecFloat секунд. Проверять с периодичностью inWaitIntervalSecFloat.
```
# Screen: Взаимодействие с объектами экрана
from pyOpenRPA.Robot import Screen
Screen.ImageWaitDisappear(inImgPathStr="Button.png",inConfidenceFloat=0.9)
```
* **Параметры**
* **inImgPathStr** (*str**, **относительный или абсолютный*) Путь к изображению, которое требуется искать на экране
* **inWaitSecFloat** (*float**, **опциональный*) Время ожидания появления изображения в сек. По умолчанию IMAGE_WAIT_SEC_FLOAT (60)
* **inWaitIntervalSecFloat** (*float**, **опциональный*) Интервал повторной проверки наличия изображения. По умолчанию IMAGE_WAIT_INTERVAL_SEC_FLOAT (1)
* **inIsGrayModeBool** (*bool**, **опционально*) True - выполнить поиск изображения в режиме серых оттенков (ускоряет производительность, если допускается искажение цвета). По умолчанию False
* **inConfidenceFloat** (*float**, **опционально*) Показатель точности. 1.0 - идентичное соответствие, 0.0 - полное несоответствие. По умолчанию 1.0
### pyOpenRPA.Robot.Screen.PointClick(inPoint: pyscreeze.Point, inClickCountInt: int = 1, inIntervalSecFloat: float = 0.0, inButtonStr: str = 'left', inMoveDurationSecFloat: float = 0.0, inWaitAfterSecFloat: Optional[float] = None)
Нажатие (вниз) кнопки мыши и затем немедленно выпуск (вверх) её. Допускается следующая параметризация.
```
# Screen: Взаимодействие с мышью объектами экрана
from pyOpenRPA.Robot import Screen
lPoint = Screen.PointCreate(100,150)
Screen.PointClick(lPoint) #Выполнить нажатие левой клавиши мыши
```
* **Параметры**
* **inPoint** (*pyscreeze.Point**, **обязательный*) Точка на экране, по которой выполнить нажатие мыши
* **inClickCountInt** (*int**, **опциональный*) Количество нажатий (вниз и вверх) кнопкой мыши, По умолчанию 1
* **inIntervalSecFloat** (*float**, **опциональный*) Интервал ожидания в секундах между нажатиями, По умолчанию 0.0
* **inButtonStr** (*str**, **опциональный*) Номер кнопки, которую требуется нажать. Возможные варианты: „left“, „middle“, „right“ или 1, 2, 3. В остальных случаях инициирует исключение ValueError. По умолчанию „left“
* **inMoveDurationSecFloat** (*float**, **опциональный*) Время перемещения указателя мыши, По умолчанию 0.0 (моментальное перемещение)
* **inWaitAfterSecFloat** (*float**, **опциональный*) Количество секунд, которые ожидать после выполнения операции. По умолчанию установлено в настройках модуля Mouse (базовое значение 0.4)
### pyOpenRPA.Robot.Screen.PointClickDouble(inPoint: pyscreeze.Point, inWaitAfterSecFloat: Optional[float] = None)
Двойное нажатие левой клавиши мыши. Данное действие аналогично вызову функции (см. ниже).
```
# Screen: Взаимодействие с мышью объектами экрана
from pyOpenRPA.Robot import Screen
lPoint = Screen.PointCreate(100,150)
Screen.PointClickDouble(lPoint) #Выполнить двойное нажатие левой клавиши мыши
```
* **Параметры**
* **inPoint** (*pyscreeze.Point**, **обязательный*) Точка на экране, по которой выполнить нажатие мыши
* **inWaitAfterSecFloat** (*float**, **опциональный*) Количество секунд, которые ожидать после выполнения операции. По умолчанию установлено в настройках модуля Mouse (базовое значение 0.4)
### pyOpenRPA.Robot.Screen.PointCreate(inXInt, inYInt)
Создать точку pyscreeze.Point.
```
# Screen: Взаимодействие с мышью объектами экрана
from pyOpenRPA.Robot import Screen
lPoint = Screen.PointCreate(inXInt=10, inYInt=10)
```
* **Параметры**
* **inXInt** (*int**, **опциональный*) Смещение указателя мыши по оси X (горизонтальная ось).
* **inYInt** (*int**, **опциональный*) Смещение указателя мыши по оси Y (вертикальная ось).
* **Результат**
Точка на экране
* **Тип результата**
pyscreeze.Point
### pyOpenRPA.Robot.Screen.PointDown(inPoint: pyscreeze.Point, inButtonStr: str = 'left', inWaitAfterSecFloat: Optional[float] = None)
Переместить указатель по координатам inPoint, после чего нажать (вниз) клавишу мыши и не отпускать до выполнения соответсвующей команды (см. Up).
```
# Screen: Взаимодействие с мышью объектами экрана
from pyOpenRPA.Robot import Screen
lPoint = Screen.PointCreate(100,150)
Screen.PointDown(lPoint)
```
* **Параметры**
* **inPoint** (*pyscreeze.Point**, **обязательный*) Точка на экране, по которой выполнить нажатие мыши
* **inButtonStr** (*str**, **опциональный*) Номер кнопки, которую требуется нажать. Возможные варианты: „left“, „middle“, „right“ или 1, 2, 3. В остальных случаях инициирует исключение ValueError. По умолчанию „left“
* **inWaitAfterSecFloat** (*float**, **опциональный*) Количество секунд, которые ожидать после выполнения операции. По умолчанию установлено в настройках модуля Mouse (базовое значение 0.4)
### pyOpenRPA.Robot.Screen.PointModify(inPoint, inDXInt, inDYInt)
Скорректировать точку pyscreeze.Point.
```
# Screen: Взаимодействие с мышью объектами экрана
from pyOpenRPA.Robot import Screen
lPoint = Screen.PointCreate(inXInt=10, inYInt=10)
lPoint = Screen.PointModify(inPoint=lPoint, inDXInt=90, inDYInt=10)
```
* **Параметры**
* **inPoint** (*pyscreeze.Point**, **обязательный*) Точка на экране, по которой выполнить нажатие мыши
* **inDXInt** (*int**, **опциональный*) Смещение указателя мыши по оси X (горизонтальная ось).
* **inDYInt** (*int**, **опциональный*) Смещение указателя мыши по оси Y (вертикальная ось).
* **Результат**
Точка на экране
* **Тип результата**
pyscreeze.Point
### pyOpenRPA.Robot.Screen.PointMoveTo(inPoint: pyscreeze.Point, inWaitAfterSecFloat: Optional[float] = None)
Переместить указатель мыши на позицию inXInt, inYInt за время inMoveDurationSecFloat.
!ВНИМАНИЕ! Отсчет координат inXInt, inYInt начинается с левого верхнего края рабочей области (экрана).
```
# Screen: Взаимодействие с мышью объектами экрана
from pyOpenRPA.Robot import Screen
lPoint = Screen.PointCreate(100,150)
Screen.PointMoveTo(inXInt=100, inYInt=200)
```
* **Параметры**
* **inPoint** (*pyscreeze.Point**, **обязательный*) Точка на экране, по которой выполнить нажатие мыши
* **inWaitAfterSecFloat** (*float**, **опциональный*) Количество секунд, которые ожидать после выполнения операции. По умолчанию установлено в настройках модуля Mouse (базовое значение 0.4)
### pyOpenRPA.Robot.Screen.PointUp(inPoint: pyscreeze.Point, inButtonStr: str = 'left', inWaitAfterSecFloat: Optional[float] = None)
Отпустить (вверх) клавишу мыши.
```
# Screen: Взаимодействие с мышью объектами экрана
from pyOpenRPA.Robot import Screen
lPoint = Screen.PointCreate(100,150)
Screen.PointUp(lPoint)
```
* **Параметры**
* **inPoint** (*pyscreeze.Point**, **обязательный*) Точка на экране, по которой выполнить нажатие мыши
* **inButtonStr** (*str**, **опциональный*) Номер кнопки, которую требуется поднять. Возможные варианты: „left“, „middle“, „right“ или 1, 2, 3. В остальных случаях инициирует исключение ValueError. По умолчанию „left“
* **inWaitAfterSecFloat** (*float**, **опциональный*) Количество секунд, которые ожидать после выполнения операции. По умолчанию установлено в настройках модуля Mouse (базовое значение 0.4)
## Быстрая навигация
* [Сообщество pyOpenRPA (telegram)](https://t.me/pyOpenRPA)
* [Сообщество pyOpenRPA (tenchat)](https://tenchat.ru/iMaslov?utm_source=19f2a84f-3268-437f-950c-d987ae42af24)
* [Сообщество pyOpenRPA (вконтакте)](https://vk.com/pyopenrpa)
* [Презентация pyOpenRPA](https://pyopenrpa.ru/Index/pyOpenRPA_product_service.pdf)
* [Портал pyOpenRPA](https://pyopenrpa.ru)
* [Репозиторий pyOpenRPA](https://gitlab.com/UnicodeLabs/OpenRPA)
.. v1.2.13 replace:: v1.2.13