docs update

dev-linux
Ivan Maslov 2 years ago
parent 84fe68a54b
commit 40c68d6d06

@ -25,10 +25,10 @@ def BrowserChromeStart(inDriverExePathStr:str = None, inChromeExePathStr:str = N
#lWebDriverChromeOptionsInstance2 = webdriver.ChromeOptions()
if inProfilePathStr is not None:
inProfilePathStr = os.path.abspath(inProfilePathStr)
lWebDriverChromeOptionsInstance.add_argument(f"user-data-dir={inProfilePathStr}")
lWebDriverChromeOptionsInstance.add_argument(f"user-data-dir={os.path.abspath(inProfilePathStr)}")
# Add extensions
for lExtensionItemFullPath in inExtensionPathList:
lWebDriverChromeOptionsInstance.add_extension (lExtensionItemFullPath)
lWebDriverChromeOptionsInstance.add_extension (os.path.abspath(lExtensionItemFullPath))
#if inDriverExePathStr == "built-in":
# Run with specified web driver path
gBrowser = webdriver.Chrome(executable_path = inDriverExePathStr, options=lWebDriverChromeOptionsInstance)

@ -0,0 +1,180 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[Box(left=550, top=244, width=29, height=29), Box(left=550, top=298, width=29, height=29), Box(left=550, top=352, width=29, height=29), Box(left=550, top=406, width=29, height=29), Box(left=550, top=460, width=29, height=29), Box(left=550, top=514, width=29, height=29), Box(left=550, top=568, width=29, height=29), Box(left=550, top=622, width=29, height=29), Box(left=550, top=676, width=29, height=29), Box(left=550, top=730, width=29, height=29), Box(left=550, top=784, width=29, height=29), Box(left=550, top=838, width=29, height=29)]\n"
]
}
],
"source": [
"import sys\n",
"import os\n",
"sys.path.insert(0, os.path.abspath(\"..\\\\..\\\\Sources\"))\n",
"import time\n",
"from pyOpenRPA.Robot import Keyboard\n",
"\n",
"# Screen: Взаимодействие с объектами экрана\n",
"from pyOpenRPA.Robot import Screen\n",
"lBoxList = Screen.ImageLocateAll(inImgPathStr=\"screencontact.PNG\",inConfidenceFloat=0.9)\n",
"print(lBoxList)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"Screen.BoxDraw(inBox = lBoxList)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[Box(left=500, top=244, width=29, height=29), Box(left=500, top=298, width=29, height=29), Box(left=500, top=352, width=29, height=29), Box(left=500, top=406, width=29, height=29), Box(left=500, top=460, width=29, height=29), Box(left=500, top=514, width=29, height=29), Box(left=500, top=568, width=29, height=29), Box(left=500, top=622, width=29, height=29), Box(left=500, top=676, width=29, height=29), Box(left=500, top=730, width=29, height=29), Box(left=500, top=784, width=29, height=29), Box(left=500, top=838, width=29, height=29)]\n"
]
}
],
"source": [
"lBox2List = Screen.BoxMoveTo(inBox=lBoxList,inDXInt=-50)\n",
"print(lBox2List)\n",
"Screen.BoxDraw(inBox = lBox2List)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
"lPoint = Screen.BoxGetPoint(lBox2List[0])"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
"Screen.PointClick(lPoint)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[Box(left=489, top=243, width=46, height=32)]\n"
]
}
],
"source": [
"lBoxList = Screen.ImageLocateAll(inImgPathStr=\"sendmessage.PNG\",inConfidenceFloat=0.9)\n",
"print(lBoxList)"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [],
"source": [
"Screen.PointClick(Screen.BoxGetPoint(Screen.ImageLocateAll(inImgPathStr=\"sendmessage.PNG\",inConfidenceFloat=0.9)[0]))"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[Box(left=169, top=193, width=409, height=687)]"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Screen.ImageLocateAll(inImgPathStr=\"emptytray.PNG\",inConfidenceFloat=0.9)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.2"
},
"varInspector": {
"cols": {
"lenName": 16,
"lenType": 16,
"lenVar": 40
},
"kernels_config": {
"python": {
"delete_cmd_postfix": "",
"delete_cmd_prefix": "del ",
"library": "var_list.py",
"varRefreshCmd": "print(var_dic_list())"
},
"r": {
"delete_cmd_postfix": ") ",
"delete_cmd_prefix": "rm(",
"library": "var_list.r",
"varRefreshCmd": "cat(var_dic_list()) "
}
},
"types_to_exclude": [
"module",
"function",
"builtin_function_or_method",
"instance",
"_Feature"
],
"window_display": false
}
},
"nbformat": 4,
"nbformat_minor": 4
}

@ -2,15 +2,31 @@
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"execution_count": 15,
"metadata": {},
"outputs": [],
"outputs": [
{
"ename": "PermissionError",
"evalue": "[Errno 13] Permission denied: 'C:\\\\Abs\\\\Archive\\\\scopeSrcUL\\\\pyOpenRPA\\\\Resources\\\\extTest'",
"output_type": "error",
"traceback": [
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[1;31mPermissionError\u001b[0m Traceback (most recent call last)",
"\u001b[1;32m<ipython-input-15-803dca804cb1>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[0;32m 3\u001b[0m \u001b[0msys\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpath\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0minsert\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mos\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpath\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mabspath\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"..\\\\..\\\\Sources\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 4\u001b[0m \u001b[1;32mfrom\u001b[0m \u001b[0mpyOpenRPA\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mRobot\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mUIWeb\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 5\u001b[1;33m \u001b[0mUIWeb\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mBrowserChromeStart\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0minExtensionPathList\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;34m\"..\\\\..\\\\Resources\\\\extTest\"\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 6\u001b[0m \u001b[0mUIWeb\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mPageOpen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"https://mail.ru\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[1;32mC:\\Abs\\Archive\\scopeSrcUL\\pyOpenRPA\\Sources\\pyOpenRPA\\Robot\\UIWeb.py\u001b[0m in \u001b[0;36mBrowserChromeStart\u001b[1;34m(inDriverExePathStr, inChromeExePathStr, inExtensionPathList, inProfilePathStr)\u001b[0m\n\u001b[0;32m 32\u001b[0m \u001b[1;31m#if inDriverExePathStr == \"built-in\":\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 33\u001b[0m \u001b[1;31m# Run with specified web driver path\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 34\u001b[1;33m \u001b[0mgBrowser\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mwebdriver\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mChrome\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mexecutable_path\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0minDriverExePathStr\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0moptions\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mlWebDriverChromeOptionsInstance\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 35\u001b[0m \u001b[1;31m#else:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 36\u001b[0m \u001b[1;31m# lWebDriverInstance = webdriver.Chrome(options = lWebDriverChromeOptionsInstance)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[1;32mC:\\Abs\\Archive\\scopeSrcUL\\pyOpenRPA\\Resources\\WPy64-3720\\python-3.7.2.amd64\\lib\\site-packages\\selenium\\webdriver\\chrome\\webdriver.py\u001b[0m in \u001b[0;36m__init__\u001b[1;34m(self, executable_path, port, options, service_args, desired_capabilities, service_log_path, chrome_options, keep_alive)\u001b[0m\n\u001b[0;32m 62\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 63\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mdesired_capabilities\u001b[0m \u001b[1;32mis\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 64\u001b[1;33m \u001b[0mdesired_capabilities\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0moptions\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mto_capabilities\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 65\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 66\u001b[0m \u001b[0mdesired_capabilities\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mupdate\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0moptions\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mto_capabilities\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[1;32mC:\\Abs\\Archive\\scopeSrcUL\\pyOpenRPA\\Resources\\WPy64-3720\\python-3.7.2.amd64\\lib\\site-packages\\selenium\\webdriver\\chrome\\options.py\u001b[0m in \u001b[0;36mto_capabilities\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 200\u001b[0m \u001b[0mcaps\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_caps\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 201\u001b[0m \u001b[0mchrome_options\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mexperimental_options\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcopy\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 202\u001b[1;33m \u001b[0mchrome_options\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;34m\"extensions\"\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mextensions\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 203\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mbinary_location\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 204\u001b[0m \u001b[0mchrome_options\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;34m\"binary\"\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mbinary_location\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[1;32mC:\\Abs\\Archive\\scopeSrcUL\\pyOpenRPA\\Resources\\WPy64-3720\\python-3.7.2.amd64\\lib\\site-packages\\selenium\\webdriver\\chrome\\options.py\u001b[0m in \u001b[0;36mextensions\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 107\u001b[0m \u001b[0mencoded_extensions\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;33m[\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 108\u001b[0m \u001b[1;32mfor\u001b[0m \u001b[0mext\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_extension_files\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 109\u001b[1;33m \u001b[0mfile_\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mopen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mext\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m'rb'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 110\u001b[0m \u001b[1;31m# Should not use base64.encodestring() which inserts newlines every\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 111\u001b[0m \u001b[1;31m# 76 characters (per RFC 1521). Chromedriver has to remove those\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[1;31mPermissionError\u001b[0m: [Errno 13] Permission denied: 'C:\\\\Abs\\\\Archive\\\\scopeSrcUL\\\\pyOpenRPA\\\\Resources\\\\extTest'"
]
}
],
"source": [
"import sys\n",
"import os\n",
"sys.path.insert(0, os.path.abspath(\"..\\\\..\\\\Sources\"))\n",
"from pyOpenRPA.Robot import UIWeb\n",
"UIWeb.BrowserChromeStart()\n",
"UIWeb.BrowserChromeStart(inExtensionPathList=[\"..\\\\..\\\\Resources\\\\extTest\"])\n",
"UIWeb.PageOpen(\"https://mail.ru\")"
]
},

@ -105,7 +105,7 @@
<li class="toctree-l1"><a class="reference internal" href="Robot/04_keyboard.html">4. Функции Keyboard</a></li>
<li class="toctree-l1"><a class="reference internal" href="Robot/05_clipboard.html">5. Функции Clipboard</a></li>
<li class="toctree-l1"><a class="reference internal" href="Robot/06_mouse.html">6. Функции Mouse</a></li>
<li class="toctree-l1"><a class="reference internal" href="Robot/07_image.html">7. Функции Image</a></li>
<li class="toctree-l1"><a class="reference internal" href="Robot/07_screen.html">7. Функции Screen</a></li>
<li class="toctree-l1"><a class="reference internal" href="Robot/08_HowToUse.html">8. Как использовать?</a></li>
</ul>
<p class="caption"><span class="caption-text">МОДУЛЬ СТУДИЯ</span></p>

@ -110,7 +110,7 @@
<li class="toctree-l1"><a class="reference internal" href="Robot/04_keyboard.html">4. Функции Keyboard</a></li>
<li class="toctree-l1"><a class="reference internal" href="Robot/05_clipboard.html">5. Функции Clipboard</a></li>
<li class="toctree-l1"><a class="reference internal" href="Robot/06_mouse.html">6. Функции Mouse</a></li>
<li class="toctree-l1"><a class="reference internal" href="Robot/07_image.html">7. Функции Image</a></li>
<li class="toctree-l1"><a class="reference internal" href="Robot/07_screen.html">7. Функции Screen</a></li>
<li class="toctree-l1"><a class="reference internal" href="Robot/08_HowToUse.html">8. Как использовать?</a></li>
</ul>
<p class="caption"><span class="caption-text">МОДУЛЬ СТУДИЯ</span></p>
@ -267,6 +267,9 @@
<li><p>jinja2, v2.11.2, лицензия BSD 3-Clause, <a class="reference external" href="https://github.com/pallets/jinja/blob/main/LICENSE.rst">https://github.com/pallets/jinja/blob/main/LICENSE.rst</a></p></li>
<li><p>JupiterNotebook v6.1.4, лицензия BSD 3-Clause, <a class="reference external" href="https://github.com/jupyter/notebook/blob/main/LICENSE">https://github.com/jupyter/notebook/blob/main/LICENSE</a></p></li>
<li><p>schedule, v1.1.0, лицензия MIT, <a class="reference external" href="https://github.com/dbader/schedule/blob/master/LICENSE.txt">https://github.com/dbader/schedule/blob/master/LICENSE.txt</a></p></li>
<li><p>pyscreeze</p></li>
<li><p>opencv</p></li>
<li><p>numpy</p></li>
</ul>
</div>
<div class="section" id="id12">

@ -101,7 +101,7 @@
<li class="toctree-l1"><a class="reference internal" href="../Robot/04_keyboard.html">4. Функции Keyboard</a></li>
<li class="toctree-l1"><a class="reference internal" href="../Robot/05_clipboard.html">5. Функции Clipboard</a></li>
<li class="toctree-l1"><a class="reference internal" href="../Robot/06_mouse.html">6. Функции Mouse</a></li>
<li class="toctree-l1"><a class="reference internal" href="../Robot/07_image.html">7. Функции Image</a></li>
<li class="toctree-l1"><a class="reference internal" href="../Robot/07_screen.html">7. Функции Screen</a></li>
<li class="toctree-l1"><a class="reference internal" href="../Robot/08_HowToUse.html">8. Как использовать?</a></li>
</ul>
<p class="caption"><span class="caption-text">МОДУЛЬ СТУДИЯ</span></p>

@ -101,7 +101,7 @@
<li class="toctree-l1"><a class="reference internal" href="../Robot/04_keyboard.html">4. Функции Keyboard</a></li>
<li class="toctree-l1"><a class="reference internal" href="../Robot/05_clipboard.html">5. Функции Clipboard</a></li>
<li class="toctree-l1"><a class="reference internal" href="../Robot/06_mouse.html">6. Функции Mouse</a></li>
<li class="toctree-l1"><a class="reference internal" href="../Robot/07_image.html">7. Функции Image</a></li>
<li class="toctree-l1"><a class="reference internal" href="../Robot/07_screen.html">7. Функции Screen</a></li>
<li class="toctree-l1"><a class="reference internal" href="../Robot/08_HowToUse.html">8. Как использовать?</a></li>
</ul>
<p class="caption"><span class="caption-text">МОДУЛЬ СТУДИЯ</span></p>

@ -101,7 +101,7 @@
<li class="toctree-l1"><a class="reference internal" href="../Robot/04_keyboard.html">4. Функции Keyboard</a></li>
<li class="toctree-l1"><a class="reference internal" href="../Robot/05_clipboard.html">5. Функции Clipboard</a></li>
<li class="toctree-l1"><a class="reference internal" href="../Robot/06_mouse.html">6. Функции Mouse</a></li>
<li class="toctree-l1"><a class="reference internal" href="../Robot/07_image.html">7. Функции Image</a></li>
<li class="toctree-l1"><a class="reference internal" href="../Robot/07_screen.html">7. Функции Screen</a></li>
<li class="toctree-l1"><a class="reference internal" href="../Robot/08_HowToUse.html">8. Как использовать?</a></li>
</ul>
<p class="caption"><span class="caption-text">МОДУЛЬ СТУДИЯ</span></p>
@ -1106,6 +1106,7 @@
<dt id="pyOpenRPA.Orchestrator.__Orchestrator__.OSCMD">
<code class="sig-prename descclassname">pyOpenRPA.Orchestrator.__Orchestrator__.</code><code class="sig-name descname">OSCMD</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inCMDStr</span></em>, <em class="sig-param"><span class="n">inRunAsyncBool</span><span class="o">=</span><span class="default_value">True</span></em>, <em class="sig-param"><span class="n">inLogger</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/pyOpenRPA/Orchestrator/__Orchestrator__.html#OSCMD"><span class="viewcode-link">[исходный код]</span></a><a class="headerlink" href="#pyOpenRPA.Orchestrator.__Orchestrator__.OSCMD" title="Ссылка на это определение"></a></dt>
<dd><p>Отправить команду на выполнение на сессию, где выполняется Оркестратор.</p>
<p>Поддерживается: Windows: +, Linux: +</p>
<dl class="field-list simple">
<dt class="field-odd">Параметры</dt>
<dd class="field-odd"><ul class="simple">
@ -1231,6 +1232,7 @@
<code class="sig-prename descclassname">pyOpenRPA.Orchestrator.__Orchestrator__.</code><code class="sig-name descname">OrchestratorPySearchInit</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inGlobPatternStr</span></em>, <em class="sig-param"><span class="n">inDefStr</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">inDefArgNameGSettingsStr</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">inAsyncInitBool</span><span class="o">=</span><span class="default_value">False</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/pyOpenRPA/Orchestrator/__Orchestrator__.html#OrchestratorPySearchInit"><span class="viewcode-link">[исходный код]</span></a><a class="headerlink" href="#pyOpenRPA.Orchestrator.__Orchestrator__.OrchestratorPySearchInit" title="Ссылка на это определение"></a></dt>
<dd><p>Выполнить поиск и инициализацию пользовательских .py файлов в Оркестраторе (например панелей управления роботов)</p>
<p>Добавляет инициализированный модуль в пространство sys.modules как imported (имя модуля = имя файла без расширения).</p>
<p>ВНИМАНИЕ! ПРЕОБРАЗУЕТ ПУТИ МЕЖДУ WINDOWS И LINUX НОТАЦИЯМИ</p>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="c1"># ВАРИАНТ ИСПОЛЬЗОВАНИЯ 1 (инициализация модуля py без вызова каких-либо функций внутри)</span>
<span class="c1"># автоинициализация всех .py файлов, с префиксом CP_, которые расположены в папке ControlPanel</span>
<span class="n">Orchestrator</span><span class="o">.</span><span class="n">OrchestratorPySearchInit</span><span class="p">(</span><span class="n">inGlobPatternStr</span><span class="o">=</span><span class="s2">&quot;ControlPanel\CP_*.py&quot;</span><span class="p">)</span>

@ -101,7 +101,7 @@
<li class="toctree-l1"><a class="reference internal" href="../Robot/04_keyboard.html">4. Функции Keyboard</a></li>
<li class="toctree-l1"><a class="reference internal" href="../Robot/05_clipboard.html">5. Функции Clipboard</a></li>
<li class="toctree-l1"><a class="reference internal" href="../Robot/06_mouse.html">6. Функции Mouse</a></li>
<li class="toctree-l1"><a class="reference internal" href="../Robot/07_image.html">7. Функции Image</a></li>
<li class="toctree-l1"><a class="reference internal" href="../Robot/07_screen.html">7. Функции Screen</a></li>
<li class="toctree-l1"><a class="reference internal" href="../Robot/08_HowToUse.html">8. Как использовать?</a></li>
</ul>
<p class="caption"><span class="caption-text">МОДУЛЬ СТУДИЯ</span></p>

@ -101,7 +101,7 @@
<li class="toctree-l1"><a class="reference internal" href="../Robot/04_keyboard.html">4. Функции Keyboard</a></li>
<li class="toctree-l1"><a class="reference internal" href="../Robot/05_clipboard.html">5. Функции Clipboard</a></li>
<li class="toctree-l1"><a class="reference internal" href="../Robot/06_mouse.html">6. Функции Mouse</a></li>
<li class="toctree-l1"><a class="reference internal" href="../Robot/07_image.html">7. Функции Image</a></li>
<li class="toctree-l1"><a class="reference internal" href="../Robot/07_screen.html">7. Функции Screen</a></li>
<li class="toctree-l1"><a class="reference internal" href="../Robot/08_HowToUse.html">8. Как использовать?</a></li>
</ul>
<p class="caption"><span class="caption-text">МОДУЛЬ СТУДИЯ</span></p>
@ -221,13 +221,15 @@
<span class="c1"># Config settings</span>
<span class="n">lPyOpenRPASourceFolderPathStr</span> <span class="o">=</span> <span class="sa">r</span><span class="s2">&quot;..\Sources&quot;</span> <span class="c1"># Path for test pyOpenRPA package</span>
<span class="n">lPyOpenRPASourceFolderPathStr</span> <span class="o">=</span> <span class="p">(</span><span class="sa">r</span><span class="s2">&quot;../Sources&quot;</span><span class="p">)</span> <span class="c1"># Path for test pyOpenRPA package</span>
<span class="c1"># Operations</span>
<span class="k">if</span> <span class="n">lPyOpenRPASourceFolderPathStr</span> <span class="o">!=</span> <span class="s2">&quot;&quot;</span><span class="p">:</span> <span class="n">sys</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">insert</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">lPyOpenRPASourceFolderPathStr</span><span class="p">)))</span> <span class="c1"># Path for test pyOpenRPA package</span>
<span class="c1"># Start import after config the pyOpenRPA folder</span>
<span class="kn">from</span> <span class="nn">pyOpenRPA.Orchestrator</span> <span class="kn">import</span> <span class="n">SettingsTemplate</span> <span class="c1"># Import functionallity</span>
<span class="kn">from</span> <span class="nn">pyOpenRPA.Tools</span> <span class="kn">import</span> <span class="n">CrossOS</span>
<span class="kn">from</span> <span class="nn">pyOpenRPA</span> <span class="kn">import</span> <span class="n">Orchestrator</span> <span class="c1"># Import orchestrator main</span>
<span class="c1">#Run as administrator</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">Orchestrator</span><span class="o">.</span><span class="n">OrchestratorIsAdmin</span><span class="p">():</span>
@ -245,7 +247,10 @@
<span class="c1"># TEST Add Supertoken for the all access between robots</span>
<span class="n">Orchestrator</span><span class="o">.</span><span class="n">UACSuperTokenUpdate</span><span class="p">(</span><span class="n">inGSettings</span><span class="o">=</span><span class="n">gSettings</span><span class="p">,</span> <span class="n">inSuperTokenStr</span><span class="o">=</span><span class="s2">&quot;1992-04-03-0643-ru-b4ff-openrpa52zzz&quot;</span><span class="p">)</span>
<span class="c1"># Add first interface!</span>
<span class="k">if</span> <span class="n">CrossOS</span><span class="o">.</span><span class="n">IS_WINDOWS_BOOL</span><span class="p">:</span>
<span class="n">Orchestrator</span><span class="o">.</span><span class="n">WebListenCreate</span><span class="p">(</span><span class="n">inGSettings</span><span class="o">=</span><span class="n">gSettings</span><span class="p">)</span>
<span class="k">if</span> <span class="n">CrossOS</span><span class="o">.</span><span class="n">IS_LINUX_BOOL</span><span class="p">:</span>
<span class="n">Orchestrator</span><span class="o">.</span><span class="n">WebListenCreate</span><span class="p">(</span><span class="n">inGSettings</span><span class="o">=</span><span class="n">gSettings</span><span class="p">,</span> <span class="n">inPortInt</span><span class="o">=</span><span class="mi">1024</span><span class="p">)</span>
<span class="c1"># Restore DUMP</span>
<span class="n">Orchestrator</span><span class="o">.</span><span class="n">OrchestratorSessionRestore</span><span class="p">(</span><span class="n">inGSettings</span><span class="o">=</span><span class="n">gSettings</span><span class="p">)</span>
<span class="c1"># Autoinit control panels starts with CP_</span>

@ -101,7 +101,7 @@
<li class="toctree-l1"><a class="reference internal" href="../Robot/04_keyboard.html">4. Функции Keyboard</a></li>
<li class="toctree-l1"><a class="reference internal" href="../Robot/05_clipboard.html">5. Функции Clipboard</a></li>
<li class="toctree-l1"><a class="reference internal" href="../Robot/06_mouse.html">6. Функции Mouse</a></li>
<li class="toctree-l1"><a class="reference internal" href="../Robot/07_image.html">7. Функции Image</a></li>
<li class="toctree-l1"><a class="reference internal" href="../Robot/07_screen.html">7. Функции Screen</a></li>
<li class="toctree-l1"><a class="reference internal" href="../Robot/08_HowToUse.html">8. Как использовать?</a></li>
</ul>
<p class="caption"><span class="caption-text">МОДУЛЬ СТУДИЯ</span></p>

@ -106,7 +106,7 @@
<li class="toctree-l1"><a class="reference internal" href="04_keyboard.html">4. Функции Keyboard</a></li>
<li class="toctree-l1"><a class="reference internal" href="05_clipboard.html">5. Функции Clipboard</a></li>
<li class="toctree-l1"><a class="reference internal" href="06_mouse.html">6. Функции Mouse</a></li>
<li class="toctree-l1"><a class="reference internal" href="07_image.html">7. Функции Image</a></li>
<li class="toctree-l1"><a class="reference internal" href="07_screen.html">7. Функции Screen</a></li>
<li class="toctree-l1"><a class="reference internal" href="08_HowToUse.html">8. Как использовать?</a></li>
</ul>
<p class="caption"><span class="caption-text">МОДУЛЬ СТУДИЯ</span></p>
@ -218,7 +218,7 @@
<li><p><strong>Уровень доступа к графическим каналам передачи данных (мышь, экран)</strong></p>
<ul>
<li><p>Mouse: инструменты взаимодействия с мышью. Перейти к описанию функций: <a class="reference internal" href="06_mouse.html#module-robot-mouse"><span class="std std-ref">6. Функции Mouse</span></a></p></li>
<li><p>Image: инструменты взаимодействия с эраном рабочего стола. Перейти к описанию функций: <a class="reference internal" href="07_image.html#module-robot-image"><span class="std std-ref">7. Функции Image</span></a></p></li>
<li><p>Screen: инструменты взаимодействия с эраном рабочего стола. Перейти к описанию функций: <a class="reference internal" href="07_screen.html#module-robot-screen"><span class="std std-ref">7. Функции Screen</span></a></p></li>
</ul>
</li>
</ul>

@ -107,7 +107,7 @@
<li class="toctree-l1"><a class="reference internal" href="04_keyboard.html">4. Функции Keyboard</a></li>
<li class="toctree-l1"><a class="reference internal" href="05_clipboard.html">5. Функции Clipboard</a></li>
<li class="toctree-l1"><a class="reference internal" href="06_mouse.html">6. Функции Mouse</a></li>
<li class="toctree-l1"><a class="reference internal" href="07_image.html">7. Функции Image</a></li>
<li class="toctree-l1"><a class="reference internal" href="07_screen.html">7. Функции Screen</a></li>
<li class="toctree-l1"><a class="reference internal" href="08_HowToUse.html">8. Как использовать?</a></li>
</ul>
<p class="caption"><span class="caption-text">МОДУЛЬ СТУДИЯ</span></p>
@ -1035,7 +1035,7 @@
<dl class="py function">
<dt id="pyOpenRPA.Robot.UIDesktop.UIO_FocusHighlight">
<code class="sig-prename descclassname">pyOpenRPA.Robot.UIDesktop.</code><code class="sig-name descname">UIO_FocusHighlight</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">lWrapperObject</span></em>, <em class="sig-param"><span class="n">colour</span><span class="o">=</span><span class="default_value">'green'</span></em>, <em class="sig-param"><span class="n">thickness</span><span class="o">=</span><span class="default_value">2</span></em>, <em class="sig-param"><span class="n">fill</span><span class="o">=</span><span class="default_value">1</span></em>, <em class="sig-param"><span class="n">rect</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/pyOpenRPA/Robot/UIDesktop.html#UIO_FocusHighlight"><span class="viewcode-link">[исходный код]</span></a><a class="headerlink" href="#pyOpenRPA.Robot.UIDesktop.UIO_FocusHighlight" title="Ссылка на это определение"></a></dt>
<code class="sig-prename descclassname">pyOpenRPA.Robot.UIDesktop.</code><code class="sig-name descname">UIO_FocusHighlight</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">lWrapperObject</span></em>, <em class="sig-param"><span class="n">colour</span><span class="o">=</span><span class="default_value">'green'</span></em>, <em class="sig-param"><span class="n">thickness</span><span class="o">=</span><span class="default_value">2</span></em>, <em class="sig-param"><span class="n">fill</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">rect</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/pyOpenRPA/Robot/UIDesktop.html#UIO_FocusHighlight"><span class="viewcode-link">[исходный код]</span></a><a class="headerlink" href="#pyOpenRPA.Robot.UIDesktop.UIO_FocusHighlight" title="Ссылка на это определение"></a></dt>
<dd><p>Установить фокус и выполнить подсветку UIO объекта на экране</p>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="c1"># UIDesktop: Взаимодействие с UI объектами приложений</span>
<span class="kn">from</span> <span class="nn">pyOpenRPA.Robot</span> <span class="kn">import</span> <span class="n">UIDesktop</span>
@ -1080,7 +1080,7 @@
<dl class="py function">
<dt id="pyOpenRPA.Robot.UIDesktop.UIO_Highlight">
<code class="sig-prename descclassname">pyOpenRPA.Robot.UIDesktop.</code><code class="sig-name descname">UIO_Highlight</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">lWrapperObject</span></em>, <em class="sig-param"><span class="n">colour</span><span class="o">=</span><span class="default_value">'green'</span></em>, <em class="sig-param"><span class="n">thickness</span><span class="o">=</span><span class="default_value">2</span></em>, <em class="sig-param"><span class="n">fill</span><span class="o">=</span><span class="default_value">1</span></em>, <em class="sig-param"><span class="n">rect</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">inFlagSetFocus</span><span class="o">=</span><span class="default_value">False</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/pyOpenRPA/Robot/UIDesktop.html#UIO_Highlight"><span class="viewcode-link">[исходный код]</span></a><a class="headerlink" href="#pyOpenRPA.Robot.UIDesktop.UIO_Highlight" title="Ссылка на это определение"></a></dt>
<code class="sig-prename descclassname">pyOpenRPA.Robot.UIDesktop.</code><code class="sig-name descname">UIO_Highlight</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">lWrapperObject</span></em>, <em class="sig-param"><span class="n">colour</span><span class="o">=</span><span class="default_value">'green'</span></em>, <em class="sig-param"><span class="n">thickness</span><span class="o">=</span><span class="default_value">2</span></em>, <em class="sig-param"><span class="n">fill</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">rect</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">inFlagSetFocus</span><span class="o">=</span><span class="default_value">False</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/pyOpenRPA/Robot/UIDesktop.html#UIO_Highlight"><span class="viewcode-link">[исходный код]</span></a><a class="headerlink" href="#pyOpenRPA.Robot.UIDesktop.UIO_Highlight" title="Ссылка на это определение"></a></dt>
<dd><p>Выполнить подсветку UIO объекта на экране</p>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="c1"># UIDesktop: Взаимодействие с UI объектами приложений</span>
<span class="kn">from</span> <span class="nn">pyOpenRPA.Robot</span> <span class="kn">import</span> <span class="n">UIDesktop</span>

@ -105,7 +105,7 @@
<li class="toctree-l1"><a class="reference internal" href="04_keyboard.html">4. Функции Keyboard</a></li>
<li class="toctree-l1"><a class="reference internal" href="05_clipboard.html">5. Функции Clipboard</a></li>
<li class="toctree-l1"><a class="reference internal" href="06_mouse.html">6. Функции Mouse</a></li>
<li class="toctree-l1"><a class="reference internal" href="07_image.html">7. Функции Image</a></li>
<li class="toctree-l1"><a class="reference internal" href="07_screen.html">7. Функции Screen</a></li>
<li class="toctree-l1"><a class="reference internal" href="08_HowToUse.html">8. Как использовать?</a></li>
</ul>
<p class="caption"><span class="caption-text">МОДУЛЬ СТУДИЯ</span></p>

@ -109,7 +109,7 @@
</li>
<li class="toctree-l1"><a class="reference internal" href="05_clipboard.html">5. Функции Clipboard</a></li>
<li class="toctree-l1"><a class="reference internal" href="06_mouse.html">6. Функции Mouse</a></li>
<li class="toctree-l1"><a class="reference internal" href="07_image.html">7. Функции Image</a></li>
<li class="toctree-l1"><a class="reference internal" href="07_screen.html">7. Функции Screen</a></li>
<li class="toctree-l1"><a class="reference internal" href="08_HowToUse.html">8. Как использовать?</a></li>
</ul>
<p class="caption"><span class="caption-text">МОДУЛЬ СТУДИЯ</span></p>
@ -240,19 +240,22 @@
<tr class="row-odd"><td><p><a class="reference internal" href="#pyOpenRPA.Robot.Keyboard.HotkeyCtrlA_CtrlC" title="pyOpenRPA.Robot.Keyboard.HotkeyCtrlA_CtrlC"><code class="xref py py-obj docutils literal notranslate"><span class="pre">HotkeyCtrlA_CtrlC</span></code></a>([inWaitAfterSecFloat])</p></td>
<td><p>Выполнить выделение текста, после чего скопировать его в буфер обмена ВНИМАНИЕ! НЕ ЗАВИСИТ ОТ ТЕКУЩЕЙ РАСКЛАДКИ КЛАВИАТУРЫ</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="#pyOpenRPA.Robot.Keyboard.IsDown" title="pyOpenRPA.Robot.Keyboard.IsDown"><code class="xref py py-obj docutils literal notranslate"><span class="pre">IsDown</span></code></a>(inKeyInt)</p></td>
<tr class="row-even"><td><p><a class="reference internal" href="#pyOpenRPA.Robot.Keyboard.HotkeyCtrlV" title="pyOpenRPA.Robot.Keyboard.HotkeyCtrlV"><code class="xref py py-obj docutils literal notranslate"><span class="pre">HotkeyCtrlV</span></code></a>([inWaitAfterSecFloat])</p></td>
<td><p>Выполнить вставку текста из буфера обмена ВНИМАНИЕ! НЕ ЗАВИСИТ ОТ ТЕКУЩЕЙ РАСКЛАДКИ КЛАВИАТУРЫ</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference internal" href="#pyOpenRPA.Robot.Keyboard.IsDown" title="pyOpenRPA.Robot.Keyboard.IsDown"><code class="xref py py-obj docutils literal notranslate"><span class="pre">IsDown</span></code></a>(inKeyInt)</p></td>
<td><p>Проверить, опущена ли клавиша.</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference internal" href="#pyOpenRPA.Robot.Keyboard.Send" title="pyOpenRPA.Robot.Keyboard.Send"><code class="xref py py-obj docutils literal notranslate"><span class="pre">Send</span></code></a>(inKeyInt[, inDoPressBool, …])</p></td>
<tr class="row-even"><td><p><a class="reference internal" href="#pyOpenRPA.Robot.Keyboard.Send" title="pyOpenRPA.Robot.Keyboard.Send"><code class="xref py py-obj docutils literal notranslate"><span class="pre">Send</span></code></a>(inKeyInt[, inDoPressBool, …])</p></td>
<td><p>Имитация нажатия/отпускания любой физической клавиши.</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="#pyOpenRPA.Robot.Keyboard.Up" title="pyOpenRPA.Robot.Keyboard.Up"><code class="xref py py-obj docutils literal notranslate"><span class="pre">Up</span></code></a>(inKeyInt[, inWaitAfterSecFloat])</p></td>
<tr class="row-odd"><td><p><a class="reference internal" href="#pyOpenRPA.Robot.Keyboard.Up" title="pyOpenRPA.Robot.Keyboard.Up"><code class="xref py py-obj docutils literal notranslate"><span class="pre">Up</span></code></a>(inKeyInt[, inWaitAfterSecFloat])</p></td>
<td><p>Отпустить (поднять) клавишу.</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference internal" href="#pyOpenRPA.Robot.Keyboard.Wait" title="pyOpenRPA.Robot.Keyboard.Wait"><code class="xref py py-obj docutils literal notranslate"><span class="pre">Wait</span></code></a>(inKeyInt[, inWaitAfterSecFloat])</p></td>
<tr class="row-even"><td><p><a class="reference internal" href="#pyOpenRPA.Robot.Keyboard.Wait" title="pyOpenRPA.Robot.Keyboard.Wait"><code class="xref py py-obj docutils literal notranslate"><span class="pre">Wait</span></code></a>(inKeyInt[, inWaitAfterSecFloat])</p></td>
<td><p>Блокирует осуществление программы, пока данная обозначенная клавиша не будет нажата.</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="#pyOpenRPA.Robot.Keyboard.Write" title="pyOpenRPA.Robot.Keyboard.Write"><code class="xref py py-obj docutils literal notranslate"><span class="pre">Write</span></code></a>(inTextStr[, inDelayFloat, …])</p></td>
<tr class="row-odd"><td><p><a class="reference internal" href="#pyOpenRPA.Robot.Keyboard.Write" title="pyOpenRPA.Robot.Keyboard.Write"><code class="xref py py-obj docutils literal notranslate"><span class="pre">Write</span></code></a>(inTextStr[, inDelayFloat, …])</p></td>
<td><p>Печатает текст, который был передан в переменной inTextStr (поддерживает передачу в одной строке символов разного языка).</p></td>
</tr>
</tbody>
@ -333,6 +336,23 @@
</dl>
</dd></dl>
<dl class="py function">
<dt id="pyOpenRPA.Robot.Keyboard.HotkeyCtrlV">
<code class="sig-prename descclassname">pyOpenRPA.Robot.Keyboard.</code><code class="sig-name descname">HotkeyCtrlV</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inWaitAfterSecFloat</span><span class="p">:</span> <span class="n">float</span> <span class="o">=</span> <span class="default_value">0.4</span></em><span class="sig-paren">)</span> &#x2192; None<a class="reference internal" href="../_modules/pyOpenRPA/Robot/Keyboard.html#HotkeyCtrlV"><span class="viewcode-link">[исходный код]</span></a><a class="headerlink" href="#pyOpenRPA.Robot.Keyboard.HotkeyCtrlV" title="Ссылка на это определение"></a></dt>
<dd><p>Выполнить вставку текста из буфера обмена
ВНИМАНИЕ! НЕ ЗАВИСИТ ОТ ТЕКУЩЕЙ РАСКЛАДКИ КЛАВИАТУРЫ</p>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="c1"># Keyboard: Взаимодействие с клавиатурой</span>
<span class="kn">from</span> <span class="nn">pyOpenRPA.Robot</span> <span class="kn">import</span> <span class="n">Keyboard</span>
<span class="n">Keyboard</span><span class="o">.</span><span class="n">HotkeyCtrlV</span><span class="p">()</span>
</pre></div>
</div>
<dl class="field-list simple">
<dt class="field-odd">Параметры</dt>
<dd class="field-odd"><p><strong>inWaitAfterSecFloat</strong> (<em>float</em><em>, </em><em>опциональный</em>) Количество секунд, которые ожидать после выполнения операции. По умолчанию установлено в настройках модуля Keyboard (базовое значение 0.4)</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt id="pyOpenRPA.Robot.Keyboard.IsDown">
<code class="sig-prename descclassname">pyOpenRPA.Robot.Keyboard.</code><code class="sig-name descname">IsDown</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inKeyInt</span><span class="p">:</span> <span class="n">int</span></em><span class="sig-paren">)</span> &#x2192; bool<a class="reference internal" href="../_modules/pyOpenRPA/Robot/Keyboard.html#IsDown"><span class="viewcode-link">[исходный код]</span></a><a class="headerlink" href="#pyOpenRPA.Robot.Keyboard.IsDown" title="Ссылка на это определение"></a></dt>

@ -105,7 +105,7 @@
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="06_mouse.html">6. Функции Mouse</a></li>
<li class="toctree-l1"><a class="reference internal" href="07_image.html">7. Функции Image</a></li>
<li class="toctree-l1"><a class="reference internal" href="07_screen.html">7. Функции Screen</a></li>
<li class="toctree-l1"><a class="reference internal" href="08_HowToUse.html">8. Как использовать?</a></li>
</ul>
<p class="caption"><span class="caption-text">МОДУЛЬ СТУДИЯ</span></p>

@ -41,7 +41,7 @@
<link rel="index" title="Алфавитный указатель" href="../genindex.html" />
<link rel="search" title="Поиск" href="../search.html" />
<link rel="next" title="7. Функции Image" href="07_image.html" />
<link rel="next" title="7. Функции Screen" href="07_screen.html" />
<link rel="prev" title="5. Функции Clipboard" href="05_clipboard.html" />
</head>
@ -106,7 +106,7 @@
<li class="toctree-l2"><a class="reference internal" href="#id3">Быстрая навигация</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="07_image.html">7. Функции Image</a></li>
<li class="toctree-l1"><a class="reference internal" href="07_screen.html">7. Функции Screen</a></li>
<li class="toctree-l1"><a class="reference internal" href="08_HowToUse.html">8. Как использовать?</a></li>
</ul>
<p class="caption"><span class="caption-text">МОДУЛЬ СТУДИЯ</span></p>
@ -273,7 +273,6 @@
<dd class="field-odd"><ul class="simple">
<li><p><strong>inXInt</strong> (<em>int</em><em>, </em><em>опциональный</em>) Целевая позиция указателя мыши по оси X (горизонтальная ось).</p></li>
<li><p><strong>inYInt</strong> (<em>int</em><em>, </em><em>опциональный</em>) Целевая позиция указателя мыши по оси Y (вертикальная ось).</p></li>
<li><p><strong>inButtonStr</strong> (<em>str</em><em>, </em><em>опциональный</em>) Номер кнопки, которую требуется нажать. Возможные варианты: „left“, „middle“, „right“ или 1, 2, 3. В остальных случаях инициирует исключение ValueError. По умолчанию „left“</p></li>
<li><p><strong>inWaitAfterSecFloat</strong> (<em>float</em><em>, </em><em>опциональный</em>) Количество секунд, которые ожидать после выполнения операции. По умолчанию установлено в настройках модуля Mouse (базовое значение 0.4)</p></li>
</ul>
</dd>
@ -414,7 +413,7 @@
</div>
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="07_image.html" class="btn btn-neutral float-right" title="7. Функции Image" accesskey="n" rel="next">Следующая <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
<a href="07_screen.html" class="btn btn-neutral float-right" title="7. Функции Screen" accesskey="n" rel="next">Следующая <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
<a href="05_clipboard.html" class="btn btn-neutral float-left" title="5. Функции Clipboard" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Предыдущая</a>
</div>

@ -1,271 +0,0 @@
<!DOCTYPE html>
<html class="writer-html5" lang="ru" >
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>7. Функции Image &mdash; документация pyOpenRPA v1.2.13 v1.2.13</title>
<link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<link rel="shortcut icon" href="../_static/favicon.ico"/>
<!--[if lt IE 9]>
<script src="../_static/js/html5shiv.min.js"></script>
<![endif]-->
<script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script src="../_static/jquery.js"></script>
<script src="../_static/underscore.js"></script>
<script src="../_static/doctools.js"></script>
<script src="../_static/translations.js"></script>
<script type="text/javascript" src="../_static/js/theme.js"></script>
<link rel="index" title="Алфавитный указатель" href="../genindex.html" />
<link rel="search" title="Поиск" href="../search.html" />
<link rel="next" title="8. Как использовать?" href="08_HowToUse.html" />
<link rel="prev" title="6. Функции Mouse" href="06_mouse.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="../index.html" class="icon icon-home"> pyOpenRPA v1.2.13
</a>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
<input type="text" name="q" placeholder="Поиск в документации" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<p class="caption"><span class="caption-text">ОБЩЕЕ</span></p>
<ul>
<li class="toctree-l1"><a class="reference external" href="https://pyopenrpa.ru/wiki/guide/index">Выбрать версию</a></li>
<li class="toctree-l1"><a class="reference internal" href="../01_HowToInstall.html">1. Первый запуск</a></li>
<li class="toctree-l1"><a class="reference internal" href="../03_Copyrights_Contacts.html">2. Лицензия &amp; Контакты</a></li>
</ul>
<p class="caption"><span class="caption-text">МОДУЛЬ РОБОТ</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="01_Robot.html">1. Описание</a></li>
<li class="toctree-l1"><a class="reference internal" href="02_uidesktop.html">2. Функции UIDesktop</a></li>
<li class="toctree-l1"><a class="reference internal" href="03_uiweb.html">3. Функции UIWeb</a></li>
<li class="toctree-l1"><a class="reference internal" href="04_keyboard.html">4. Функции Keyboard</a></li>
<li class="toctree-l1"><a class="reference internal" href="05_clipboard.html">5. Функции Clipboard</a></li>
<li class="toctree-l1"><a class="reference internal" href="06_mouse.html">6. Функции Mouse</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">7. Функции Image</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#id1">Общее</a></li>
<li class="toctree-l2"><a class="reference internal" href="#id2">Быстрая навигация</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="08_HowToUse.html">8. Как использовать?</a></li>
</ul>
<p class="caption"><span class="caption-text">МОДУЛЬ СТУДИЯ</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../Studio/01_Studio.html">1. Описание</a></li>
<li class="toctree-l1"><a class="reference internal" href="../Studio/02_HowToUse.html">2. Как использовать?</a></li>
</ul>
<p class="caption"><span class="caption-text">МОДУЛЬ ОРКЕСТРАТОР</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../Orchestrator/01_Orchestrator.html">1. Описание</a></li>
<li class="toctree-l1"><a class="reference internal" href="../Orchestrator/02_Defs.html">2. Функции</a></li>
<li class="toctree-l1"><a class="reference internal" href="../Orchestrator/03_gSettingsTemplate.html">3. Настройки GSettings (шаблон)</a></li>
<li class="toctree-l1"><a class="reference internal" href="../Orchestrator/04_HowToUse.html">4. Как использовать?</a></li>
<li class="toctree-l1"><a class="reference internal" href="../Orchestrator/05_UAC.html">5. Права доступа пользователей UAC</a></li>
</ul>
<p class="caption"><span class="caption-text">МОДУЛЬ АГЕНТ</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../Agent/02_Defs.html">2. Функции</a></li>
</ul>
<p class="caption"><span class="caption-text">ИНСТРУМЕНТЫ</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../Tools/02_Defs.html">2. Функции StopSafe</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<nav class="wy-nav-top" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../index.html">pyOpenRPA v1.2.13</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="../index.html" class="icon icon-home"></a> &raquo;</li>
<li>7. Функции Image</li>
<li class="wy-breadcrumbs-aside">
<a href="../_sources/Robot/07_image.rst.txt" rel="nofollow"> Просмотреть исходный код страницы</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<div class="section" id="image">
<span id="module-robot-image"></span><h1>7. Функции Image<a class="headerlink" href="#image" title="Ссылка на этот заголовок"></a></h1>
<div class="section" id="id1">
<h2>Общее<a class="headerlink" href="#id1" title="Ссылка на этот заголовок"></a></h2>
<p>Документация к модулю будет опубликована в Июле 2022. По всем вопросам роботизации WEB приложений обращайтесь в центр поддержки клиентов pyOpenRPA.</p>
<p>Дорогие коллеги!</p>
<p>Мы знаем, что с pyOpenRPA вы сможете существенно улучшить качество вашего бизнеса. Платформа роботизации pyOpenRPA - это разработка, которая дает возможность делать виртуальных сотрудников (программных роботов RPA) выгодными, начиная от эффекта всего в <strong>10 тыс. руб.</strong> И управлять ими будете только Вы!</p>
<p>Если у вас останутся вопросы, то вы всегда можете обратиться в центр поддержки клиентов pyOpenRPA. Контакты: <a class="reference internal" href="../03_Copyrights_Contacts.html#copyrights-contacts"><span class="std std-ref">2. Лицензия &amp; Контакты</span></a></p>
<p>pyOpenRPA - роботы помогут!</p>
</div>
<div class="section" id="id2">
<h2>Быстрая навигация<a class="headerlink" href="#id2" title="Ссылка на этот заголовок"></a></h2>
<ul class="simple">
<li><p><a class="reference external" href="https://t.me/pyOpenRPA">Сообщество pyOpenRPA (telegram)</a></p></li>
<li><p><a class="reference external" href="https://tenchat.ru/iMaslov?utm_source=19f2a84f-3268-437f-950c-d987ae42af24">Сообщество pyOpenRPA (tenchat)</a></p></li>
<li><p><a class="reference external" href="https://vk.com/pyopenrpa">Сообщество pyOpenRPA (вконтакте)</a></p></li>
<li><p><a class="reference external" href="https://pyopenrpa.ru/Index/pyOpenRPA_product_service.pdf">Презентация pyOpenRPA</a></p></li>
<li><p><a class="reference external" href="https://pyopenrpa.ru">Портал pyOpenRPA</a></p></li>
<li><p><a class="reference external" href="https://gitlab.com/UnicodeLabs/OpenRPA">Репозиторий pyOpenRPA</a></p></li>
</ul>
<p> .. v1.2.13 replace:: v1.2.13</p>
<p></p>
</div>
</div>
</div>
</div>
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="08_HowToUse.html" class="btn btn-neutral float-right" title="8. Как использовать?" accesskey="n" rel="next">Следующая <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
<a href="06_mouse.html" class="btn btn-neutral float-left" title="6. Функции Mouse" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Предыдущая</a>
</div>
<hr/>
<div role="contentinfo">
<p>
&#169; Copyright 2022, ООО &#34;ОПЕН РПА&#34;.
</p>
</div>
Собрано при помощи <a href="https://www.sphinx-doc.org/">Sphinx</a> с использованием
<a href="https://github.com/readthedocs/sphinx_rtd_theme">темы,</a>
предоставленной <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>

@ -0,0 +1,925 @@
<!DOCTYPE html>
<html class="writer-html5" lang="ru" >
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>7. Функции Screen &mdash; документация pyOpenRPA v1.2.13 v1.2.13</title>
<link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<link rel="shortcut icon" href="../_static/favicon.ico"/>
<!--[if lt IE 9]>
<script src="../_static/js/html5shiv.min.js"></script>
<![endif]-->
<script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script src="../_static/jquery.js"></script>
<script src="../_static/underscore.js"></script>
<script src="../_static/doctools.js"></script>
<script src="../_static/translations.js"></script>
<script type="text/javascript" src="../_static/js/theme.js"></script>
<link rel="index" title="Алфавитный указатель" href="../genindex.html" />
<link rel="search" title="Поиск" href="../search.html" />
<link rel="next" title="8. Как использовать?" href="08_HowToUse.html" />
<link rel="prev" title="6. Функции Mouse" href="06_mouse.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="../index.html" class="icon icon-home"> pyOpenRPA v1.2.13
</a>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
<input type="text" name="q" placeholder="Поиск в документации" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<p class="caption"><span class="caption-text">ОБЩЕЕ</span></p>
<ul>
<li class="toctree-l1"><a class="reference external" href="https://pyopenrpa.ru/wiki/guide/index">Выбрать версию</a></li>
<li class="toctree-l1"><a class="reference internal" href="../01_HowToInstall.html">1. Первый запуск</a></li>
<li class="toctree-l1"><a class="reference internal" href="../03_Copyrights_Contacts.html">2. Лицензия &amp; Контакты</a></li>
</ul>
<p class="caption"><span class="caption-text">МОДУЛЬ РОБОТ</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="01_Robot.html">1. Описание</a></li>
<li class="toctree-l1"><a class="reference internal" href="02_uidesktop.html">2. Функции UIDesktop</a></li>
<li class="toctree-l1"><a class="reference internal" href="03_uiweb.html">3. Функции UIWeb</a></li>
<li class="toctree-l1"><a class="reference internal" href="04_keyboard.html">4. Функции Keyboard</a></li>
<li class="toctree-l1"><a class="reference internal" href="05_clipboard.html">5. Функции Clipboard</a></li>
<li class="toctree-l1"><a class="reference internal" href="06_mouse.html">6. Функции Mouse</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">7. Функции Screen</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#id1">Общее</a></li>
<li class="toctree-l2"><a class="reference internal" href="#box">Класс Box</a></li>
<li class="toctree-l2"><a class="reference internal" href="#point">Класс Point</a></li>
<li class="toctree-l2"><a class="reference internal" href="#inpointrulestr">Символьное указание точки (inPointRuleStr)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#lu-cu-ru">LU|CU|RU</a></li>
<li class="toctree-l3"><a class="reference internal" href="#lc-cc-rc">LC|CC|RC</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#inanchorrulestr">Символьное указание области (inAnchorRuleStr)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#id2">LU|CU|RU</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id3">LC|CC|RC</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#module-pyOpenRPA.Robot.Screen">Описание функций</a></li>
<li class="toctree-l2"><a class="reference internal" href="#id7">Быстрая навигация</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="08_HowToUse.html">8. Как использовать?</a></li>
</ul>
<p class="caption"><span class="caption-text">МОДУЛЬ СТУДИЯ</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../Studio/01_Studio.html">1. Описание</a></li>
<li class="toctree-l1"><a class="reference internal" href="../Studio/02_HowToUse.html">2. Как использовать?</a></li>
</ul>
<p class="caption"><span class="caption-text">МОДУЛЬ ОРКЕСТРАТОР</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../Orchestrator/01_Orchestrator.html">1. Описание</a></li>
<li class="toctree-l1"><a class="reference internal" href="../Orchestrator/02_Defs.html">2. Функции</a></li>
<li class="toctree-l1"><a class="reference internal" href="../Orchestrator/03_gSettingsTemplate.html">3. Настройки GSettings (шаблон)</a></li>
<li class="toctree-l1"><a class="reference internal" href="../Orchestrator/04_HowToUse.html">4. Как использовать?</a></li>
<li class="toctree-l1"><a class="reference internal" href="../Orchestrator/05_UAC.html">5. Права доступа пользователей UAC</a></li>
</ul>
<p class="caption"><span class="caption-text">МОДУЛЬ АГЕНТ</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../Agent/02_Defs.html">2. Функции</a></li>
</ul>
<p class="caption"><span class="caption-text">ИНСТРУМЕНТЫ</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../Tools/02_Defs.html">2. Функции StopSafe</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<nav class="wy-nav-top" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../index.html">pyOpenRPA v1.2.13</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="../index.html" class="icon icon-home"></a> &raquo;</li>
<li>7. Функции Screen</li>
<li class="wy-breadcrumbs-aside">
<a href="../_sources/Robot/07_screen.rst.txt" rel="nofollow"> Просмотреть исходный код страницы</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<div class="section" id="screen">
<span id="module-robot-screen"></span><h1>7. Функции Screen<a class="headerlink" href="#screen" title="Ссылка на этот заголовок"></a></h1>
<div class="section" id="id1">
<h2>Общее<a class="headerlink" href="#id1" title="Ссылка на этот заголовок"></a></h2>
<p>Документация к модулю будет опубликована в Июле 2022. По всем вопросам роботизации WEB приложений обращайтесь в центр поддержки клиентов pyOpenRPA.</p>
<p>Дорогие коллеги!</p>
<p>Мы знаем, что с pyOpenRPA вы сможете существенно улучшить качество вашего бизнеса. Платформа роботизации pyOpenRPA - это разработка, которая дает возможность делать виртуальных сотрудников (программных роботов RPA) выгодными, начиная от эффекта всего в <strong>10 тыс. руб.</strong> И управлять ими будете только Вы!</p>
<p>Если у вас останутся вопросы, то вы всегда можете обратиться в центр поддержки клиентов pyOpenRPA. Контакты: <a class="reference internal" href="../03_Copyrights_Contacts.html#copyrights-contacts"><span class="std std-ref">2. Лицензия &amp; Контакты</span></a></p>
<p>pyOpenRPA - роботы помогут!</p>
</div>
<div class="section" id="box">
<h2>Класс Box<a class="headerlink" href="#box" title="Ссылка на этот заголовок"></a></h2>
<p>Экземпляр класса pyscreeze.Box, который характеризует прямоугольную область на экране.</p>
<p>top - координата левой верхней точки в пикселях по оси X (горизонталь)
left - координата левой верхней точки в пикселях по оси Y (вертикаль)
height - расстояние вниз от левой верхней точки в пикселях
width - расстояние вправо от левой верхней точки в пикселях</p>
</div>
<div class="section" id="point">
<h2>Класс Point<a class="headerlink" href="#point" title="Ссылка на этот заголовок"></a></h2>
<p>Экземпляр класса pyscreeze.Point, который характеризует точку на экране.</p>
<p>x - координата точки в пикселях по оси X (горизонталь)
y - координата точки в пикселях по оси Y (вертикаль)</p>
</div>
<div class="section" id="inpointrulestr">
<h2>Символьное указание точки (inPointRuleStr)<a class="headerlink" href="#inpointrulestr" title="Ссылка на этот заголовок"></a></h2>
<div class="section" id="lu-cu-ru">
<h3>LU|CU|RU<a class="headerlink" href="#lu-cu-ru" title="Ссылка на этот заголовок"></a></h3>
</div>
<div class="section" id="lc-cc-rc">
<h3>LC|CC|RC<a class="headerlink" href="#lc-cc-rc" title="Ссылка на этот заголовок"></a></h3>
<p>LD|CD|RD</p>
<p>Символьное указание точки - точка относительно которой выполнить изменение прямоугольной области.</p>
<blockquote>
<div><p>«CC»,</p>
</div></blockquote>
<p>Формат образования кода: XY, где</p>
<ul class="simple">
<li><p>X обозначает положение по горизонтали (допустимые значения: «L», «C», «R»)</p></li>
<li><p>Y обозначает положение по вертикали (допустимые значения: «U», «C», «D»)</p></li>
</ul>
<p>Допустимые значения:</p>
<ul class="simple">
<li><p>«CC» - центр по горизонтали, центр по вертикали</p></li>
<li><p>«LU» - левый край по горизонтали, верхний край по вертикали</p></li>
<li><p>«LD» - левый край по горизонтали, нижний край по вертикали</p></li>
<li><p>«RD» - правый край по горизонтали, нижний край по вертикали</p></li>
<li><p>«RU» - правый край по горизонтали, верхний край по вертикали</p></li>
</ul>
<p>X-10 - корректировка координаты по оси X на 10 пикселей влево
Y+20 - корректировка координаты по оси Y на 20 пикселей вниз</p>
</div>
</div>
<div class="section" id="inanchorrulestr">
<h2>Символьное указание области (inAnchorRuleStr)<a class="headerlink" href="#inanchorrulestr" title="Ссылка на этот заголовок"></a></h2>
<div class="section" id="id2">
<h3>LU|CU|RU<a class="headerlink" href="#id2" title="Ссылка на этот заголовок"></a></h3>
</div>
<div class="section" id="id3">
<h3>LC|CC|RC<a class="headerlink" href="#id3" title="Ссылка на этот заголовок"></a></h3>
<p>LD|CD|RD</p>
<p>Символьное указание области поиска - область относительно которой выполнить поиск другой прямоугольной области.</p>
<blockquote>
<div><p>«CC»,</p>
</div></blockquote>
<p>Формат образования кода: XY, где</p>
<ul class="simple">
<li><p>X обозначает область по горизонтали (допустимые значения: «L», «C», «R»)</p></li>
<li><p>Y обозначает область по вертикали (допустимые значения: «U», «C», «D»)</p></li>
</ul>
<p>Допустимые значения:</p>
<ul class="simple">
<li><p>«CC» - выбранная прямоугольная область</p></li>
<li><p>«LU» - слева и сверху от выбранной прямоугольной области</p></li>
<li><p>«LD» - слева и снизу от выбранной прямоугольной области</p></li>
<li><p>«LС» - слева от выбранной прямоугольной области</p></li>
<li><p>«RC» - справа от выбранной прямоугольной области</p></li>
<li><p>«СU» - сверху от выбранной прямоугольной области</p></li>
<li><p>«CD» - сверху от выбранной прямоугольной области</p></li>
<li><p>«RD» - справа и снизу от выбранной прямоугольной области</p></li>
<li><p>«RU» - справа и сверху от выбранной прямоугольной области</p></li>
</ul>
<p>Опция «S» (strict) - искомый объект должен всеми своими координатами находиться в обозначенной прямоугольной области</p>
<p>Формат допускает комбинации нескольких областей в одной строке.
Пример:
«CC,LU,LD,S»
«CC|LU|LD|S»
«CCLULDS»</p>
<p>Графическая интерпретация:
+|-<a href="#id11"><span class="problematic" id="id12">|-
-----
-|+|</span></a>-
—–
+|-<a href="#id4"><span class="problematic" id="id5">|</span></a>-</p>
</div>
</div>
<div class="section" id="module-pyOpenRPA.Robot.Screen">
<span id="id6"></span><h2>Описание функций<a class="headerlink" href="#module-pyOpenRPA.Robot.Screen" title="Ссылка на этот заголовок"></a></h2>
<p><strong>Functions:</strong></p>
<table class="longtable docutils align-default">
<colgroup>
<col style="width: 10%" />
<col style="width: 90%" />
</colgroup>
<tbody>
<tr class="row-odd"><td><p><a class="reference internal" href="#pyOpenRPA.Robot.Screen.BoxAnchorRuleCheck" title="pyOpenRPA.Robot.Screen.BoxAnchorRuleCheck"><code class="xref py py-obj docutils literal notranslate"><span class="pre">BoxAnchorRuleCheck</span></code></a>(inBox[, inAnchorBox, …])</p></td>
<td><p>Выполнить проверку соответствия всем условиям вхождения inBox в inAnchorBox с учетом правил inAnchorRule</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="#pyOpenRPA.Robot.Screen.BoxCreate" title="pyOpenRPA.Robot.Screen.BoxCreate"><code class="xref py py-obj docutils literal notranslate"><span class="pre">BoxCreate</span></code></a>(inTopInt, inLeftInt, inHeightInt, …)</p></td>
<td><p>Создать экземпляр прямоугольной области.</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference internal" href="#pyOpenRPA.Robot.Screen.BoxDraw" title="pyOpenRPA.Robot.Screen.BoxDraw"><code class="xref py py-obj docutils literal notranslate"><span class="pre">BoxDraw</span></code></a>(inBox[, inColorStr, inThicknessInt])</p></td>
<td><p>Выполнить подсветку прямоугольной области inBox на экране</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="#pyOpenRPA.Robot.Screen.BoxGetPoint" title="pyOpenRPA.Robot.Screen.BoxGetPoint"><code class="xref py py-obj docutils literal notranslate"><span class="pre">BoxGetPoint</span></code></a>(inBox[, inPointRuleStr])</p></td>
<td><p>Получить точку pyscreeze.Point по заданной прямоугольной области pyscreeze.Box и строковому параметру расположения inPointRuleStr.</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference internal" href="#pyOpenRPA.Robot.Screen.BoxModify" title="pyOpenRPA.Robot.Screen.BoxModify"><code class="xref py py-obj docutils literal notranslate"><span class="pre">BoxModify</span></code></a>(inBox[, inDWidthInt, …])</p></td>
<td><p>Изменить ширину / высоту прямоугольной области.</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="#pyOpenRPA.Robot.Screen.BoxMoveTo" title="pyOpenRPA.Robot.Screen.BoxMoveTo"><code class="xref py py-obj docutils literal notranslate"><span class="pre">BoxMoveTo</span></code></a>(inBox[, inDXInt, inDYInt])</p></td>
<td><p>Переместить прямоугольную область (сохранить длину/ширину).</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference internal" href="#pyOpenRPA.Robot.Screen.BoxOverlay" title="pyOpenRPA.Robot.Screen.BoxOverlay"><code class="xref py py-obj docutils literal notranslate"><span class="pre">BoxOverlay</span></code></a>(inBox1, inBox2)</p></td>
<td><p>Проверить наложение 2-х прямоугольных областей друг на друга.</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="#pyOpenRPA.Robot.Screen.ImageClick" title="pyOpenRPA.Robot.Screen.ImageClick"><code class="xref py py-obj docutils literal notranslate"><span class="pre">ImageClick</span></code></a>(inImgPathStr[, inBoxIndexInt, …])</p></td>
<td><p>Выполнить поиск прямоугольной области по изображению.</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference internal" href="#pyOpenRPA.Robot.Screen.ImageExists" title="pyOpenRPA.Robot.Screen.ImageExists"><code class="xref py py-obj docutils literal notranslate"><span class="pre">ImageExists</span></code></a>(inImgPathStr[, …])</p></td>
<td><p>Проверить, имеется ли на экране хотя бы один подходящий объект.</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="#pyOpenRPA.Robot.Screen.ImageLocateAll" title="pyOpenRPA.Robot.Screen.ImageLocateAll"><code class="xref py py-obj docutils literal notranslate"><span class="pre">ImageLocateAll</span></code></a>(inImgPathStr[, …])</p></td>
<td><p>Искать на экране графические объекты, которые похожи на inImgPathStr.</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference internal" href="#pyOpenRPA.Robot.Screen.ImageWaitAppear" title="pyOpenRPA.Robot.Screen.ImageWaitAppear"><code class="xref py py-obj docutils literal notranslate"><span class="pre">ImageWaitAppear</span></code></a>(inImgPathStr[, …])</p></td>
<td><p>Ожидать появление изображения на протяжении inWaitSecFloat секунд.</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="#pyOpenRPA.Robot.Screen.ImageWaitDisappear" title="pyOpenRPA.Robot.Screen.ImageWaitDisappear"><code class="xref py py-obj docutils literal notranslate"><span class="pre">ImageWaitDisappear</span></code></a>(inImgPathStr[, …])</p></td>
<td><p>Ожидать исчезновение изображения на протяжении inWaitSecFloat секунд.</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference internal" href="#pyOpenRPA.Robot.Screen.PointClick" title="pyOpenRPA.Robot.Screen.PointClick"><code class="xref py py-obj docutils literal notranslate"><span class="pre">PointClick</span></code></a>(inPoint[, inClickCountInt, …])</p></td>
<td><p>Нажатие (вниз) кнопки мыши и затем немедленно выпуск (вверх) её.</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="#pyOpenRPA.Robot.Screen.PointClickDouble" title="pyOpenRPA.Robot.Screen.PointClickDouble"><code class="xref py py-obj docutils literal notranslate"><span class="pre">PointClickDouble</span></code></a>(inPoint[, inWaitAfterSecFloat])</p></td>
<td><p>Двойное нажатие левой клавиши мыши.</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference internal" href="#pyOpenRPA.Robot.Screen.PointCreate" title="pyOpenRPA.Robot.Screen.PointCreate"><code class="xref py py-obj docutils literal notranslate"><span class="pre">PointCreate</span></code></a>(inXInt, inYInt)</p></td>
<td><p>Создать точку pyscreeze.Point.</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="#pyOpenRPA.Robot.Screen.PointDown" title="pyOpenRPA.Robot.Screen.PointDown"><code class="xref py py-obj docutils literal notranslate"><span class="pre">PointDown</span></code></a>(inPoint[, inButtonStr, …])</p></td>
<td><p>Переместить указатель по координатам inPoint, после чего нажать (вниз) клавишу мыши и не отпускать до выполнения соответсвующей команды (см.</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference internal" href="#pyOpenRPA.Robot.Screen.PointModify" title="pyOpenRPA.Robot.Screen.PointModify"><code class="xref py py-obj docutils literal notranslate"><span class="pre">PointModify</span></code></a>(inPoint, inDXInt, inDYInt)</p></td>
<td><p>Скорректировать точку pyscreeze.Point.</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="#pyOpenRPA.Robot.Screen.PointMoveTo" title="pyOpenRPA.Robot.Screen.PointMoveTo"><code class="xref py py-obj docutils literal notranslate"><span class="pre">PointMoveTo</span></code></a>(inPoint[, inWaitAfterSecFloat])</p></td>
<td><p>Переместить указатель мыши на позицию inXInt, inYInt за время inMoveDurationSecFloat.</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference internal" href="#pyOpenRPA.Robot.Screen.PointUp" title="pyOpenRPA.Robot.Screen.PointUp"><code class="xref py py-obj docutils literal notranslate"><span class="pre">PointUp</span></code></a>(inPoint[, inButtonStr, …])</p></td>
<td><p>Отпустить (вверх) клавишу мыши.</p></td>
</tr>
</tbody>
</table>
<dl class="py function">
<dt id="pyOpenRPA.Robot.Screen.BoxAnchorRuleCheck">
<code class="sig-prename descclassname">pyOpenRPA.Robot.Screen.</code><code class="sig-name descname">BoxAnchorRuleCheck</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inBox</span></em>, <em class="sig-param"><span class="n">inAnchorBox</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">inAnchorRuleStr</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span> &#x2192; bool<a class="reference internal" href="../_modules/pyOpenRPA/Robot/Screen.html#BoxAnchorRuleCheck"><span class="viewcode-link">[исходный код]</span></a><a class="headerlink" href="#pyOpenRPA.Robot.Screen.BoxAnchorRuleCheck" title="Ссылка на это определение"></a></dt>
<dd><p>Выполнить проверку соответствия всем условиям вхождения inBox в inAnchorBox с учетом правил inAnchorRule</p>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="c1"># Screen: Взаимодействие с экраном</span>
<span class="kn">from</span> <span class="nn">pyOpenRPA.Robot</span> <span class="kn">import</span> <span class="n">Screen</span>
<span class="n">lBox1</span> <span class="o">=</span> <span class="n">Screen</span><span class="o">.</span><span class="n">BoxCreate</span><span class="p">(</span><span class="n">inTopInt</span><span class="o">=</span><span class="mi">265</span><span class="p">,</span> <span class="n">inLeftInt</span><span class="o">=</span><span class="mi">62</span><span class="p">,</span> <span class="n">inHeightInt</span><span class="o">=</span><span class="mi">100</span><span class="p">,</span> <span class="n">inWidthInt</span><span class="o">=</span><span class="mi">90</span><span class="p">)</span>
<span class="n">lBox2</span> <span class="o">=</span> <span class="n">Screen</span><span class="o">.</span><span class="n">BoxCreate</span><span class="p">(</span><span class="n">inTopInt</span><span class="o">=</span><span class="mi">160</span><span class="p">,</span> <span class="n">inLeftInt</span><span class="o">=</span><span class="mi">160</span><span class="p">,</span> <span class="n">inHeightInt</span><span class="o">=</span><span class="mi">100</span><span class="p">,</span> <span class="n">inWidthInt</span><span class="o">=</span><span class="mi">100</span><span class="p">)</span>
<span class="n">lBox3</span> <span class="o">=</span> <span class="n">Screen</span><span class="o">.</span><span class="n">BoxCreate</span><span class="p">(</span><span class="n">inTopInt</span><span class="o">=</span><span class="mi">460</span><span class="p">,</span> <span class="n">inLeftInt</span><span class="o">=</span><span class="mi">60</span><span class="p">,</span> <span class="n">inHeightInt</span><span class="o">=</span><span class="mi">100</span><span class="p">,</span> <span class="n">inWidthInt</span><span class="o">=</span><span class="mi">100</span><span class="p">)</span>
<span class="n">l</span> <span class="o">=</span> <span class="n">Screen</span><span class="o">.</span><span class="n">BoxAnchorRuleCheck</span><span class="p">(</span><span class="n">inBox</span><span class="o">=</span><span class="n">lBox1</span><span class="p">,</span> <span class="n">inAnchorBox</span><span class="o">=</span><span class="p">[</span><span class="n">lBox2</span><span class="p">,</span><span class="n">lBox3</span><span class="p">],</span> <span class="n">inAnchorRuleStr</span><span class="o">=</span><span class="p">[</span><span class="s2">&quot;LD&quot;</span><span class="p">,</span><span class="s2">&quot;CUS&quot;</span><span class="p">])</span>
<span class="n">Screen</span><span class="o">.</span><span class="n">BoxDraw</span><span class="p">([</span><span class="n">lBox1</span><span class="p">,</span><span class="n">lBox2</span><span class="p">,</span><span class="n">lBox3</span><span class="p">])</span>
</pre></div>
</div>
<dl class="field-list simple">
<dt class="field-odd">Параметры</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>inBox</strong> (<em>pyscreeze.Box</em>) Экземпляр класса прямоугольной области Box</p></li>
<li><p><strong>inAnchorBox</strong> (<em>pyscreeze.Box или list из pyscreeze.Box</em>) Экземпляр класса прямоугольной области Box</p></li>
<li><p><strong>inAnchorRuleStr</strong> (<em>str или list из str</em>) Символьное указание области проверки соответствия. Может принимать единственное значение (единый формат для всех inAnchorBox), или список форматов для каждого inAnchorBox (если inAnchorBox является списком Box)</p></li>
</ul>
</dd>
<dt class="field-even">Результат</dt>
<dd class="field-even"><p>True - соответствует всем правилам</p>
</dd>
<dt class="field-odd">Тип результата</dt>
<dd class="field-odd"><p>bool</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt id="pyOpenRPA.Robot.Screen.BoxCreate">
<code class="sig-prename descclassname">pyOpenRPA.Robot.Screen.</code><code class="sig-name descname">BoxCreate</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inTopInt</span><span class="p">:</span> <span class="n">int</span></em>, <em class="sig-param"><span class="n">inLeftInt</span><span class="p">:</span> <span class="n">int</span></em>, <em class="sig-param"><span class="n">inHeightInt</span><span class="p">:</span> <span class="n">int</span></em>, <em class="sig-param"><span class="n">inWidthInt</span><span class="p">:</span> <span class="n">int</span></em><span class="sig-paren">)</span> &#x2192; pyscreeze.Box<a class="reference internal" href="../_modules/pyOpenRPA/Robot/Screen.html#BoxCreate"><span class="viewcode-link">[исходный код]</span></a><a class="headerlink" href="#pyOpenRPA.Robot.Screen.BoxCreate" title="Ссылка на это определение"></a></dt>
<dd><p>Создать экземпляр прямоугольной области.</p>
<p>!ВНИМАНИЕ! Координаты inTopInt, inLeftInt определяют верхний левый край прямоугольной области.</p>
<dl class="field-list simple">
<dt class="field-odd">Параметры</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>inTopInt</strong> (<em>int</em>) Координата левой верхней точки в пикселях по оси X (горизонталь)</p></li>
<li><p><strong>inLeftInt</strong> (<em>int</em>) Координата левой верхней точки в пикселях по оси Y (вертикаль)</p></li>
<li><p><strong>inHeightInt</strong> (<em>int</em>) Расстояние вниз от левой верхней точки в пикселях</p></li>
<li><p><strong>inWidthInt</strong> (<em>int</em>) Расстояние вправо от левой верхней точки в пикселях</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt id="pyOpenRPA.Robot.Screen.BoxDraw">
<code class="sig-prename descclassname">pyOpenRPA.Robot.Screen.</code><code class="sig-name descname">BoxDraw</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inBox</span></em>, <em class="sig-param"><span class="n">inColorStr</span><span class="o">=</span><span class="default_value">'green'</span></em>, <em class="sig-param"><span class="n">inThicknessInt</span><span class="o">=</span><span class="default_value">2</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/pyOpenRPA/Robot/Screen.html#BoxDraw"><span class="viewcode-link">[исходный код]</span></a><a class="headerlink" href="#pyOpenRPA.Robot.Screen.BoxDraw" title="Ссылка на это определение"></a></dt>
<dd><p>Выполнить подсветку прямоугольной области inBox на экране</p>
<p>!ВНИМАНИЕ! РАБОТАЕТ ТОЛЬКО НА ОС WINDOWS</p>
<p>!ВНИМАНИЕ! ПОДДЕРЖИВАЕТ ПАКЕТНУЮ ОБРАТКУ ПРИ ПЕРЕДАЧЕ СПИСКА ЭКЗЕМПЛЯРОВ BOX</p>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="c1"># Screen: Взаимодействие с экраном</span>
<span class="kn">from</span> <span class="nn">pyOpenRPA.Robot</span> <span class="kn">import</span> <span class="n">Screen</span>
<span class="c1"># ВАРИАНТ ОТРИСОВКИ 1ГО ЭЛЕМЕНТА</span>
<span class="c1"># Создать пробную прямоугольную область</span>
<span class="n">lBox</span> <span class="o">=</span> <span class="n">Screen</span><span class="o">.</span><span class="n">BoxCreate</span><span class="p">(</span><span class="n">inTopInt</span><span class="o">=</span><span class="mi">10</span><span class="p">,</span> <span class="n">inLeftInt</span><span class="o">=</span><span class="mi">10</span><span class="p">,</span> <span class="n">inHeightInt</span><span class="o">=</span><span class="mi">10</span><span class="p">,</span> <span class="n">inWidthInt</span><span class="o">=</span><span class="mi">10</span><span class="p">)</span>
<span class="n">Screen</span><span class="o">.</span><span class="n">BoxDraw</span><span class="p">(</span><span class="n">lBox</span><span class="p">)</span>
<span class="c1"># ВАРИАНТ ПАКЕТНОЙ ОТРИСОВКИ</span>
<span class="c1"># Создать пробную прямоугольную область</span>
<span class="n">lBox</span> <span class="o">=</span> <span class="n">Screen</span><span class="o">.</span><span class="n">BoxCreate</span><span class="p">(</span><span class="n">inTopInt</span><span class="o">=</span><span class="mi">10</span><span class="p">,</span> <span class="n">inLeftInt</span><span class="o">=</span><span class="mi">10</span><span class="p">,</span> <span class="n">inHeightInt</span><span class="o">=</span><span class="mi">100</span><span class="p">,</span> <span class="n">inWidthInt</span><span class="o">=</span><span class="mi">100</span><span class="p">)</span>
<span class="n">lBox2</span> <span class="o">=</span> <span class="n">Screen</span><span class="o">.</span><span class="n">BoxCreate</span><span class="p">(</span><span class="n">inTopInt</span><span class="o">=</span><span class="mi">60</span><span class="p">,</span> <span class="n">inLeftInt</span><span class="o">=</span><span class="mi">60</span><span class="p">,</span> <span class="n">inHeightInt</span><span class="o">=</span><span class="mi">100</span><span class="p">,</span> <span class="n">inWidthInt</span><span class="o">=</span><span class="mi">100</span><span class="p">)</span>
<span class="n">Screen</span><span class="o">.</span><span class="n">BoxDraw</span><span class="p">([</span><span class="n">lBox</span><span class="p">,</span> <span class="n">lBox2</span><span class="p">])</span>
</pre></div>
</div>
<dl class="field-list simple">
<dt class="field-odd">Параметры</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>inBox</strong> (<em>pyscreeze.Box</em>) Экземпляр класса прямоугольной области Box</p></li>
<li><p><strong>inColorStr</strong> (<em>str</em><em>, </em><em>необязательный</em>) цвет подсветки прямоугольной области. Варианты: „red“, „green“, „blue“. По умолчанию „green“</p></li>
<li><p><strong>inThicknessInt</strong> (<em>int</em><em>, </em><em>необязательный</em>) толщина подсветки прямоугольной области. По умолчанию 2</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt id="pyOpenRPA.Robot.Screen.BoxGetPoint">
<code class="sig-prename descclassname">pyOpenRPA.Robot.Screen.</code><code class="sig-name descname">BoxGetPoint</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inBox</span></em>, <em class="sig-param"><span class="n">inPointRuleStr</span><span class="o">=</span><span class="default_value">'CC'</span></em><span class="sig-paren">)</span> &#x2192; pyscreeze.Point<a class="reference internal" href="../_modules/pyOpenRPA/Robot/Screen.html#BoxGetPoint"><span class="viewcode-link">[исходный код]</span></a><a class="headerlink" href="#pyOpenRPA.Robot.Screen.BoxGetPoint" title="Ссылка на это определение"></a></dt>
<dd><p>Получить точку pyscreeze.Point по заданной прямоугольной области pyscreeze.Box и строковому параметру расположения inPointRuleStr.</p>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="c1"># Screen: Взаимодействие с мышью объектами экрана</span>
<span class="kn">from</span> <span class="nn">pyOpenRPA.Robot</span> <span class="kn">import</span> <span class="n">Screen</span>
<span class="n">lBox1</span> <span class="o">=</span> <span class="n">Screen</span><span class="o">.</span><span class="n">BoxCreate</span><span class="p">(</span><span class="n">inTopInt</span><span class="o">=</span><span class="mi">10</span><span class="p">,</span> <span class="n">inLeftInt</span><span class="o">=</span><span class="mi">10</span><span class="p">,</span> <span class="n">inHeightInt</span><span class="o">=</span><span class="mi">100</span><span class="p">,</span> <span class="n">inWidthInt</span><span class="o">=</span><span class="mi">1000</span><span class="p">)</span>
<span class="n">lPoint</span> <span class="o">=</span> <span class="n">Screen</span><span class="o">.</span><span class="n">BoxGetPoint</span><span class="p">(</span><span class="n">inBox</span><span class="o">=</span><span class="n">lBox1</span><span class="p">,</span> <span class="n">inPointRuleStr</span><span class="o">=</span><span class="s2">&quot;LC&quot;</span><span class="p">)</span>
</pre></div>
</div>
<dl class="field-list simple">
<dt class="field-odd">Параметры</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>inBox</strong> (<em>pyscreeze.Box</em><em>, </em><em>обязательный</em>) Прямоугольная область на экране</p></li>
<li><p><strong>inPointRuleStr</strong> (<em>str</em><em>, </em><em>опциональный</em>) Правило идентификации точки на прямоугольной области (правила формирования см. выше). Варианты: «LU»,»CU»,»RU»,»LC»,»CC»,»RC»,»LD»,»CD»,»RD». По умолчанию «CC»</p></li>
</ul>
</dd>
<dt class="field-even">Результат</dt>
<dd class="field-even"><p>Точка на экране</p>
</dd>
<dt class="field-odd">Тип результата</dt>
<dd class="field-odd"><p>pyscreeze.Point</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt id="pyOpenRPA.Robot.Screen.BoxModify">
<code class="sig-prename descclassname">pyOpenRPA.Robot.Screen.</code><code class="sig-name descname">BoxModify</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inBox</span></em>, <em class="sig-param"><span class="n">inDWidthInt</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">inDHeightInt</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">inPointRuleStr</span><span class="o">=</span><span class="default_value">'CC'</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/pyOpenRPA/Robot/Screen.html#BoxModify"><span class="viewcode-link">[исходный код]</span></a><a class="headerlink" href="#pyOpenRPA.Robot.Screen.BoxModify" title="Ссылка на это определение"></a></dt>
<dd><p>Изменить ширину / высоту прямоугольной области.</p>
<p>!ВНИМАНИЕ! ПОДДЕРЖИВАЕТ ПАКЕТНУЮ ОБРАТКУ ПРИ ПЕРЕДАЧЕ СПИСКА ЭКЗЕМПЛЯРОВ BOX</p>
<p>!ВНИМАНИЕ! ЕСЛИ СМЕЩЕНИЕ ПРИВЕДЕТ К ОБРАЗОВАНИЮ ДРОБНОГО ЧИСЛА, БУДЕТ ВЫПОЛНЕНО ОКРУГЛЕНИЕ ПО МАТЕМАТИЧЕСКИМ ПРАВИЛАМ</p>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="c1"># Screen: Взаимодействие с экраном</span>
<span class="kn">from</span> <span class="nn">pyOpenRPA.Robot</span> <span class="kn">import</span> <span class="n">Screen</span>
<span class="c1"># Вариант изменения 1-го элемента</span>
<span class="c1"># Создать пробную прямоугольную область</span>
<span class="n">lBox</span> <span class="o">=</span> <span class="n">Screen</span><span class="o">.</span><span class="n">BoxCreate</span><span class="p">(</span><span class="n">inTopInt</span><span class="o">=</span><span class="mi">10</span><span class="p">,</span> <span class="n">inLeftInt</span><span class="o">=</span><span class="mi">10</span><span class="p">,</span> <span class="n">inHeightInt</span><span class="o">=</span><span class="mi">10</span><span class="p">,</span> <span class="n">inWidthInt</span><span class="o">=</span><span class="mi">10</span><span class="p">)</span>
<span class="c1"># Скорректировать пробную прямоугольную область</span>
<span class="n">lBox2</span> <span class="o">=</span> <span class="n">Screen</span><span class="o">.</span><span class="n">BoxModify</span><span class="p">(</span><span class="n">lBox</span><span class="p">,</span><span class="mi">10</span><span class="p">,</span><span class="mi">10</span><span class="p">,</span><span class="s2">&quot;CC&quot;</span><span class="p">);</span> <span class="nb">print</span><span class="p">(</span><span class="n">lBox2</span><span class="p">)</span>
<span class="n">lBox2</span> <span class="o">=</span> <span class="n">Screen</span><span class="o">.</span><span class="n">BoxModify</span><span class="p">(</span><span class="n">lBox</span><span class="p">,</span><span class="mi">10</span><span class="p">,</span><span class="mi">10</span><span class="p">,</span><span class="s2">&quot;LU&quot;</span><span class="p">);</span> <span class="nb">print</span><span class="p">(</span><span class="n">lBox2</span><span class="p">)</span>
<span class="n">lBox2</span> <span class="o">=</span> <span class="n">Screen</span><span class="o">.</span><span class="n">BoxModify</span><span class="p">(</span><span class="n">lBox</span><span class="p">,</span><span class="mi">10</span><span class="p">,</span><span class="mi">10</span><span class="p">,</span><span class="s2">&quot;LD&quot;</span><span class="p">);</span> <span class="nb">print</span><span class="p">(</span><span class="n">lBox2</span><span class="p">)</span>
<span class="n">lBox2</span> <span class="o">=</span> <span class="n">Screen</span><span class="o">.</span><span class="n">BoxModify</span><span class="p">(</span><span class="n">lBox</span><span class="p">,</span><span class="mi">10</span><span class="p">,</span><span class="mi">10</span><span class="p">,</span><span class="s2">&quot;RU&quot;</span><span class="p">);</span> <span class="nb">print</span><span class="p">(</span><span class="n">lBox2</span><span class="p">)</span>
<span class="n">lBox2</span> <span class="o">=</span> <span class="n">Screen</span><span class="o">.</span><span class="n">BoxModify</span><span class="p">(</span><span class="n">lBox</span><span class="p">,</span><span class="mi">10</span><span class="p">,</span><span class="mi">10</span><span class="p">,</span><span class="s2">&quot;RD&quot;</span><span class="p">);</span> <span class="nb">print</span><span class="p">(</span><span class="n">lBox2</span><span class="p">)</span>
</pre></div>
</div>
<dl class="field-list simple">
<dt class="field-odd">Параметры</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>inBox</strong> (<em>pyscreeze.Box</em>) Экземпляр класса прямоугольной области Box</p></li>
<li><p><strong>inDXInt</strong> (<em>int</em><em>, </em><em>опциональный</em>) Смещение левой верхней координаты по оси X в пикселях (горизонтальная ось).</p></li>
<li><p><strong>inDYInt</strong> (<em>int</em><em>, </em><em>опциональный</em>) Смещение левой верхней координаты по оси Y в пикселях (вертикальная ось).</p></li>
<li><p><strong>inPointRuleStr</strong> (<em>str</em><em>, </em><em>опциональный</em>) Символьное указание точки (подробнее см. выше), относительно которой выполнить изменение прямоугольной области. Допустимые значения: «CC» (по умолчанию), «LU», «LD», «RD», «RU»</p></li>
</ul>
</dd>
<dt class="field-even">Результат</dt>
<dd class="field-even"><p>Экземпляр класса прямоугольной области Box</p>
</dd>
<dt class="field-odd">Тип результата</dt>
<dd class="field-odd"><p>pyscreeze.Box</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt id="pyOpenRPA.Robot.Screen.BoxMoveTo">
<code class="sig-prename descclassname">pyOpenRPA.Robot.Screen.</code><code class="sig-name descname">BoxMoveTo</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inBox</span></em>, <em class="sig-param"><span class="n">inDXInt</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">inDYInt</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/pyOpenRPA/Robot/Screen.html#BoxMoveTo"><span class="viewcode-link">[исходный код]</span></a><a class="headerlink" href="#pyOpenRPA.Robot.Screen.BoxMoveTo" title="Ссылка на это определение"></a></dt>
<dd><p>Переместить прямоугольную область (сохранить длину/ширину).</p>
<p>!ВНИМАНИЕ! ПОДДЕРЖИВАЕТ ПАКЕТНУЮ ОБРАТКУ ПРИ ПЕРЕДАЧЕ СПИСКА ЭКЗЕМПЛЯРОВ BOX</p>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="c1"># Screen: Взаимодействие с экраном</span>
<span class="kn">from</span> <span class="nn">pyOpenRPA.Robot</span> <span class="kn">import</span> <span class="n">Screen</span>
<span class="c1"># Вариант изменения 1-го элемента</span>
<span class="c1"># Создать пробную прямоугольную область</span>
<span class="n">lBox</span> <span class="o">=</span> <span class="n">Screen</span><span class="o">.</span><span class="n">BoxCreate</span><span class="p">(</span><span class="n">inTopInt</span><span class="o">=</span><span class="mi">10</span><span class="p">,</span> <span class="n">inLeftInt</span><span class="o">=</span><span class="mi">10</span><span class="p">,</span> <span class="n">inHeightInt</span><span class="o">=</span><span class="mi">10</span><span class="p">,</span> <span class="n">inWidthInt</span><span class="o">=</span><span class="mi">10</span><span class="p">)</span>
<span class="c1"># Переместить пробную прямоугольную область</span>
<span class="n">lBox</span> <span class="o">=</span> <span class="n">Screen</span><span class="o">.</span><span class="n">BoxMoveTo</span><span class="p">(</span><span class="n">lBox</span><span class="p">,</span> <span class="n">inDXInt</span><span class="o">=</span><span class="mi">100</span><span class="p">,</span> <span class="n">inDYInt</span><span class="o">=</span><span class="mi">200</span><span class="p">)</span>
</pre></div>
</div>
<dl class="field-list simple">
<dt class="field-odd">Параметры</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>inBox</strong> (<em>pyscreeze.Box</em>) Экземпляр класса прямоугольной области Box</p></li>
<li><p><strong>inDXInt</strong> (<em>int</em><em>, </em><em>опциональный</em>) Смещение левой верхней координаты по оси X в пикселях (горизонтальная ось).</p></li>
<li><p><strong>inDYInt</strong> (<em>int</em><em>, </em><em>опциональный</em>) Смещение левой верхней координаты по оси Y в пикселях (вертикальная ось).</p></li>
</ul>
</dd>
<dt class="field-even">Результат</dt>
<dd class="field-even"><p>Экземпляр класса прямоугольной области Box</p>
</dd>
<dt class="field-odd">Тип результата</dt>
<dd class="field-odd"><p>pyscreeze.Box</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt id="pyOpenRPA.Robot.Screen.BoxOverlay">
<code class="sig-prename descclassname">pyOpenRPA.Robot.Screen.</code><code class="sig-name descname">BoxOverlay</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inBox1</span></em>, <em class="sig-param"><span class="n">inBox2</span></em><span class="sig-paren">)</span> &#x2192; bool<a class="reference internal" href="../_modules/pyOpenRPA/Robot/Screen.html#BoxOverlay"><span class="viewcode-link">[исходный код]</span></a><a class="headerlink" href="#pyOpenRPA.Robot.Screen.BoxOverlay" title="Ссылка на это определение"></a></dt>
<dd><p>Проверить наложение 2-х прямоугольных областей друг на друга.</p>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="c1"># Screen: Взаимодействие с экраном</span>
<span class="kn">from</span> <span class="nn">pyOpenRPA.Robot</span> <span class="kn">import</span> <span class="n">Screen</span>
<span class="n">lBox1</span> <span class="o">=</span> <span class="n">Screen</span><span class="o">.</span><span class="n">BoxCreate</span><span class="p">(</span><span class="n">inTopInt</span><span class="o">=</span><span class="mi">10</span><span class="p">,</span> <span class="n">inLeftInt</span><span class="o">=</span><span class="mi">10</span><span class="p">,</span> <span class="n">inHeightInt</span><span class="o">=</span><span class="mi">100</span><span class="p">,</span> <span class="n">inWidthInt</span><span class="o">=</span><span class="mi">1000</span><span class="p">)</span>
<span class="n">lBox2</span> <span class="o">=</span> <span class="n">Screen</span><span class="o">.</span><span class="n">BoxCreate</span><span class="p">(</span><span class="n">inTopInt</span><span class="o">=</span><span class="mi">160</span><span class="p">,</span> <span class="n">inLeftInt</span><span class="o">=</span><span class="mi">160</span><span class="p">,</span> <span class="n">inHeightInt</span><span class="o">=</span><span class="mi">100</span><span class="p">,</span> <span class="n">inWidthInt</span><span class="o">=</span><span class="mi">100</span><span class="p">)</span>
<span class="n">Screen</span><span class="o">.</span><span class="n">BoxDraw</span><span class="p">([</span><span class="n">lBox1</span><span class="p">,</span> <span class="n">lBox2</span><span class="p">])</span>
<span class="n">Screen</span><span class="o">.</span><span class="n">BoxOverlay</span><span class="p">(</span><span class="n">lBox1</span><span class="p">,</span><span class="n">lBox2</span><span class="p">)</span>
</pre></div>
</div>
<dl class="field-list simple">
<dt class="field-odd">Параметры</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>inBox1</strong> (<em>pyscreeze.Box</em>) Экземпляр класса прямоугольной области Box</p></li>
<li><p><strong>inBox2</strong> (<em>pyscreeze.Box</em>) Экземпляр класса прямоугольной области Box</p></li>
</ul>
</dd>
<dt class="field-even">Результат</dt>
<dd class="field-even"><p>True - inBox1 наложен на inBox2</p>
</dd>
<dt class="field-odd">Тип результата</dt>
<dd class="field-odd"><p>bool</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt id="pyOpenRPA.Robot.Screen.ImageClick">
<code class="sig-prename descclassname">pyOpenRPA.Robot.Screen.</code><code class="sig-name descname">ImageClick</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inImgPathStr</span><span class="p">:</span> <span class="n">str</span></em>, <em class="sig-param"><span class="n">inBoxIndexInt</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">0</span></em>, <em class="sig-param"><span class="n">inPointRuleStr</span><span class="p">:</span> <span class="n">str</span> <span class="o">=</span> <span class="default_value">'CC'</span></em>, <em class="sig-param"><span class="n">inIsGrayModeBool</span><span class="p">:</span> <span class="n">bool</span> <span class="o">=</span> <span class="default_value">False</span></em>, <em class="sig-param"><span class="n">inConfidenceFloat</span><span class="p">:</span> <span class="n">float</span> <span class="o">=</span> <span class="default_value">1.0</span></em>, <em class="sig-param"><span class="n">inWaitSecFloat</span><span class="p">:</span> <span class="n">float</span> <span class="o">=</span> <span class="default_value">0</span></em>, <em class="sig-param"><span class="n">inWaitIntervalSecFloat</span><span class="p">:</span> <span class="n">float</span> <span class="o">=</span> <span class="default_value">0</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/pyOpenRPA/Robot/Screen.html#ImageClick"><span class="viewcode-link">[исходный код]</span></a><a class="headerlink" href="#pyOpenRPA.Robot.Screen.ImageClick" title="Ссылка на это определение"></a></dt>
<dd><p>Выполнить поиск прямоугольной области по изображению.</p>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="c1"># Screen: Взаимодействие с объектами экрана</span>
<span class="kn">from</span> <span class="nn">pyOpenRPA.Robot</span> <span class="kn">import</span> <span class="n">Screen</span>
<span class="n">Screen</span><span class="o">.</span><span class="n">ImageClick</span><span class="p">(</span><span class="n">inImgPathStr</span><span class="o">=</span><span class="s2">&quot;Button.png&quot;</span><span class="p">,</span><span class="n">inConfidenceFloat</span><span class="o">=</span><span class="mf">0.9</span><span class="p">)</span>
</pre></div>
</div>
<dl class="field-list simple">
<dt class="field-odd">Параметры</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>inImgPathStr</strong> (<em>str</em><em>, </em><em>относительный или абсолютный</em>) Путь к изображению, которое требуется искать на экране</p></li>
<li><p><strong>inBoxIndexInt</strong> (<em>int</em><em>, </em><em>опционально</em>) Индекс прямоугольной области, по которой выполнить клик (если обнаружено несколько областей Box), По умолчанию 0</p></li>
<li><p><strong>inPointRuleStr</strong> (<em>str</em><em>, </em><em>опциональный</em>) Правило идентификации точки на прямоугольной области (правила формирования см. выше). Варианты: «LU»,»CU»,»RU»,»LC»,»CC»,»RC»,»LD»,»CD»,»RD». По умолчанию «CC»</p></li>
<li><p><strong>inIsGrayModeBool</strong> (<em>bool</em><em>, </em><em>опционально</em>) True - выполнить поиск изображения в режиме серых оттенков (ускоряет производительность, если допускается искажение цвета). По умолчанию False</p></li>
<li><p><strong>inConfidenceFloat</strong> (<em>float</em><em>, </em><em>опционально</em>) Показатель точности. 1.0 - идентичное соответствие, 0.0 - полное несоответствие. По умолчанию 1.0</p></li>
<li><p><strong>inWaitSecFloat</strong> (<em>float</em><em>, </em><em>опциональный</em>) Время ожидания появления изображения в сек. По умолчанию 0</p></li>
<li><p><strong>inWaitIntervalSecFloat</strong> (<em>float</em><em>, </em><em>опциональный</em>) Интервал повторной проверки наличия изображения. По умолчанию 0</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt id="pyOpenRPA.Robot.Screen.ImageExists">
<code class="sig-prename descclassname">pyOpenRPA.Robot.Screen.</code><code class="sig-name descname">ImageExists</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inImgPathStr</span><span class="p">:</span> <span class="n">str</span></em>, <em class="sig-param"><span class="n">inIsGrayModeBool</span><span class="p">:</span> <span class="n">bool</span> <span class="o">=</span> <span class="default_value">False</span></em>, <em class="sig-param"><span class="n">inConfidenceFloat</span><span class="p">:</span> <span class="n">float</span> <span class="o">=</span> <span class="default_value">1.0</span></em><span class="sig-paren">)</span> &#x2192; list<a class="reference internal" href="../_modules/pyOpenRPA/Robot/Screen.html#ImageExists"><span class="viewcode-link">[исходный код]</span></a><a class="headerlink" href="#pyOpenRPA.Robot.Screen.ImageExists" title="Ссылка на это определение"></a></dt>
<dd><p>Проверить, имеется ли на экране хотя бы один подходящий объект. Вернуть булево значение</p>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="c1"># Screen: Взаимодействие с объектами экрана</span>
<span class="kn">from</span> <span class="nn">pyOpenRPA.Robot</span> <span class="kn">import</span> <span class="n">Screen</span>
<span class="n">lResult</span> <span class="o">=</span> <span class="n">Screen</span><span class="o">.</span><span class="n">ImageExists</span><span class="p">(</span><span class="n">inImgPathStr</span><span class="o">=</span><span class="s2">&quot;Button.png&quot;</span><span class="p">,</span><span class="n">inConfidenceFloat</span><span class="o">=</span><span class="mf">0.9</span><span class="p">)</span>
</pre></div>
</div>
<dl class="field-list simple">
<dt class="field-odd">Параметры</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>inImgPathStr</strong> (<em>str</em><em>, </em><em>относительный или абсолютный</em>) Путь к изображению, которое требуется искать на экране</p></li>
<li><p><strong>inIsGrayModeBool</strong> (<em>bool</em><em>, </em><em>опционально</em>) True - выполнить поиск изображения в режиме серых оттенков (ускоряет производительность, если допускается искажение цвета). По умолчанию False</p></li>
<li><p><strong>inConfidenceFloat</strong> (<em>float</em><em>, </em><em>опционально</em>) Показатель точности. 1.0 - идентичное соответствие, 0.0 - полное несоответствие. По умолчанию 1.0</p></li>
</ul>
</dd>
<dt class="field-even">Результат</dt>
<dd class="field-even"><p>Список из pyscreeze.Box</p>
</dd>
<dt class="field-odd">Тип результата</dt>
<dd class="field-odd"><p>list</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt id="pyOpenRPA.Robot.Screen.ImageLocateAll">
<code class="sig-prename descclassname">pyOpenRPA.Robot.Screen.</code><code class="sig-name descname">ImageLocateAll</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inImgPathStr</span><span class="p">:</span> <span class="n">str</span></em>, <em class="sig-param"><span class="n">inIsGrayModeBool</span><span class="p">:</span> <span class="n">bool</span> <span class="o">=</span> <span class="default_value">False</span></em>, <em class="sig-param"><span class="n">inConfidenceFloat</span><span class="p">:</span> <span class="n">float</span> <span class="o">=</span> <span class="default_value">1.0</span></em><span class="sig-paren">)</span> &#x2192; list<a class="reference internal" href="../_modules/pyOpenRPA/Robot/Screen.html#ImageLocateAll"><span class="viewcode-link">[исходный код]</span></a><a class="headerlink" href="#pyOpenRPA.Robot.Screen.ImageLocateAll" title="Ссылка на это определение"></a></dt>
<dd><p>Искать на экране графические объекты, которые похожи на inImgPathStr. Вернуть список прямоугольных областей на экране (pyscreeze.Box)</p>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="c1"># Screen: Взаимодействие с объектами экрана</span>
<span class="kn">from</span> <span class="nn">pyOpenRPA.Robot</span> <span class="kn">import</span> <span class="n">Screen</span>
<span class="n">Screen</span><span class="o">.</span><span class="n">ImageLocateAll</span><span class="p">(</span><span class="n">inImgPathStr</span><span class="o">=</span><span class="s2">&quot;Button.png&quot;</span><span class="p">,</span><span class="n">inConfidenceFloat</span><span class="o">=</span><span class="mf">0.9</span><span class="p">)</span>
</pre></div>
</div>
<dl class="field-list simple">
<dt class="field-odd">Параметры</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>inImgPathStr</strong> (<em>str</em><em>, </em><em>относительный или абсолютный</em>) Путь к изображению, которое требуется искать на экране</p></li>
<li><p><strong>inIsGrayModeBool</strong> (<em>bool</em><em>, </em><em>опционально</em>) True - выполнить поиск изображения в режиме серых оттенков (ускоряет производительность, если допускается искажение цвета). По умолчанию False</p></li>
<li><p><strong>inConfidenceFloat</strong> (<em>float</em><em>, </em><em>опционально</em>) Показатель точности. 1.0 - идентичное соответствие, 0.0 - полное несоответствие. По умолчанию 1.0</p></li>
</ul>
</dd>
<dt class="field-even">Результат</dt>
<dd class="field-even"><p>Список из pyscreeze.Box</p>
</dd>
<dt class="field-odd">Тип результата</dt>
<dd class="field-odd"><p>list</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt id="pyOpenRPA.Robot.Screen.ImageWaitAppear">
<code class="sig-prename descclassname">pyOpenRPA.Robot.Screen.</code><code class="sig-name descname">ImageWaitAppear</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inImgPathStr</span><span class="p">:</span> <span class="n">str</span></em>, <em class="sig-param"><span class="n">inWaitSecFloat</span><span class="p">:</span> <span class="n">float</span> <span class="o">=</span> <span class="default_value">60</span></em>, <em class="sig-param"><span class="n">inWaitIntervalSecFloat</span><span class="p">:</span> <span class="n">float</span> <span class="o">=</span> <span class="default_value">1.0</span></em>, <em class="sig-param"><span class="n">inIsGrayModeBool</span><span class="p">:</span> <span class="n">bool</span> <span class="o">=</span> <span class="default_value">False</span></em>, <em class="sig-param"><span class="n">inConfidenceFloat</span><span class="p">:</span> <span class="n">float</span> <span class="o">=</span> <span class="default_value">1.0</span></em><span class="sig-paren">)</span> &#x2192; list<a class="reference internal" href="../_modules/pyOpenRPA/Robot/Screen.html#ImageWaitAppear"><span class="viewcode-link">[исходный код]</span></a><a class="headerlink" href="#pyOpenRPA.Robot.Screen.ImageWaitAppear" title="Ссылка на это определение"></a></dt>
<dd><p>Ожидать появление изображения на протяжении inWaitSecFloat секунд. Проверять с периодичностью inWaitIntervalSecFloat. Вернуть список прямоугольных областей, которые удовлетворяют условию</p>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="c1"># Screen: Взаимодействие с объектами экрана</span>
<span class="kn">from</span> <span class="nn">pyOpenRPA.Robot</span> <span class="kn">import</span> <span class="n">Screen</span>
<span class="n">lBoxList</span> <span class="o">=</span> <span class="n">Screen</span><span class="o">.</span><span class="n">ImageWaitAppear</span><span class="p">(</span><span class="n">inImgPathStr</span><span class="o">=</span><span class="s2">&quot;Button.png&quot;</span><span class="p">,</span><span class="n">inConfidenceFloat</span><span class="o">=</span><span class="mf">0.9</span><span class="p">)</span>
</pre></div>
</div>
<dl class="field-list simple">
<dt class="field-odd">Параметры</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>inImgPathStr</strong> (<em>str</em><em>, </em><em>относительный или абсолютный</em>) Путь к изображению, которое требуется искать на экране</p></li>
<li><p><strong>inWaitSecFloat</strong> (<em>float</em><em>, </em><em>опциональный</em>) Время ожидания появления изображения в сек. По умолчанию IMAGE_WAIT_SEC_FLOAT (60)</p></li>
<li><p><strong>inWaitIntervalSecFloat</strong> (<em>float</em><em>, </em><em>опциональный</em>) Интервал повторной проверки наличия изображения. По умолчанию IMAGE_WAIT_INTERVAL_SEC_FLOAT (1)</p></li>
<li><p><strong>inIsGrayModeBool</strong> (<em>bool</em><em>, </em><em>опционально</em>) True - выполнить поиск изображения в режиме серых оттенков (ускоряет производительность, если допускается искажение цвета). По умолчанию False</p></li>
<li><p><strong>inConfidenceFloat</strong> (<em>float</em><em>, </em><em>опционально</em>) Показатель точности. 1.0 - идентичное соответствие, 0.0 - полное несоответствие. По умолчанию 1.0</p></li>
</ul>
</dd>
<dt class="field-even">Результат</dt>
<dd class="field-even"><p>Список из pyscreeze.Box или [] если прошло время ожидания.</p>
</dd>
<dt class="field-odd">Тип результата</dt>
<dd class="field-odd"><p>list</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt id="pyOpenRPA.Robot.Screen.ImageWaitDisappear">
<code class="sig-prename descclassname">pyOpenRPA.Robot.Screen.</code><code class="sig-name descname">ImageWaitDisappear</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inImgPathStr</span><span class="p">:</span> <span class="n">str</span></em>, <em class="sig-param"><span class="n">inWaitSecFloat</span><span class="p">:</span> <span class="n">float</span> <span class="o">=</span> <span class="default_value">60</span></em>, <em class="sig-param"><span class="n">inWaitIntervalSecFloat</span><span class="p">:</span> <span class="n">float</span> <span class="o">=</span> <span class="default_value">1.0</span></em>, <em class="sig-param"><span class="n">inIsGrayModeBool</span><span class="p">:</span> <span class="n">bool</span> <span class="o">=</span> <span class="default_value">False</span></em>, <em class="sig-param"><span class="n">inConfidenceFloat</span><span class="p">:</span> <span class="n">float</span> <span class="o">=</span> <span class="default_value">1.0</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/pyOpenRPA/Robot/Screen.html#ImageWaitDisappear"><span class="viewcode-link">[исходный код]</span></a><a class="headerlink" href="#pyOpenRPA.Robot.Screen.ImageWaitDisappear" title="Ссылка на это определение"></a></dt>
<dd><p>Ожидать исчезновение изображения на протяжении inWaitSecFloat секунд. Проверять с периодичностью inWaitIntervalSecFloat.</p>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="c1"># Screen: Взаимодействие с объектами экрана</span>
<span class="kn">from</span> <span class="nn">pyOpenRPA.Robot</span> <span class="kn">import</span> <span class="n">Screen</span>
<span class="n">Screen</span><span class="o">.</span><span class="n">ImageWaitDisappear</span><span class="p">(</span><span class="n">inImgPathStr</span><span class="o">=</span><span class="s2">&quot;Button.png&quot;</span><span class="p">,</span><span class="n">inConfidenceFloat</span><span class="o">=</span><span class="mf">0.9</span><span class="p">)</span>
</pre></div>
</div>
<dl class="field-list simple">
<dt class="field-odd">Параметры</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>inImgPathStr</strong> (<em>str</em><em>, </em><em>относительный или абсолютный</em>) Путь к изображению, которое требуется искать на экране</p></li>
<li><p><strong>inWaitSecFloat</strong> (<em>float</em><em>, </em><em>опциональный</em>) Время ожидания появления изображения в сек. По умолчанию IMAGE_WAIT_SEC_FLOAT (60)</p></li>
<li><p><strong>inWaitIntervalSecFloat</strong> (<em>float</em><em>, </em><em>опциональный</em>) Интервал повторной проверки наличия изображения. По умолчанию IMAGE_WAIT_INTERVAL_SEC_FLOAT (1)</p></li>
<li><p><strong>inIsGrayModeBool</strong> (<em>bool</em><em>, </em><em>опционально</em>) True - выполнить поиск изображения в режиме серых оттенков (ускоряет производительность, если допускается искажение цвета). По умолчанию False</p></li>
<li><p><strong>inConfidenceFloat</strong> (<em>float</em><em>, </em><em>опционально</em>) Показатель точности. 1.0 - идентичное соответствие, 0.0 - полное несоответствие. По умолчанию 1.0</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt id="pyOpenRPA.Robot.Screen.PointClick">
<code class="sig-prename descclassname">pyOpenRPA.Robot.Screen.</code><code class="sig-name descname">PointClick</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inPoint</span><span class="p">:</span> <span class="n">pyscreeze.Point</span></em>, <em class="sig-param"><span class="n">inClickCountInt</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">1</span></em>, <em class="sig-param"><span class="n">inIntervalSecFloat</span><span class="p">:</span> <span class="n">float</span> <span class="o">=</span> <span class="default_value">0.0</span></em>, <em class="sig-param"><span class="n">inButtonStr</span><span class="p">:</span> <span class="n">str</span> <span class="o">=</span> <span class="default_value">'left'</span></em>, <em class="sig-param"><span class="n">inMoveDurationSecFloat</span><span class="p">:</span> <span class="n">float</span> <span class="o">=</span> <span class="default_value">0.0</span></em>, <em class="sig-param"><span class="n">inWaitAfterSecFloat</span><span class="p">:</span> <span class="n">Optional<span class="p">[</span>float<span class="p">]</span></span> <span class="o">=</span> <span class="default_value">None</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/pyOpenRPA/Robot/Screen.html#PointClick"><span class="viewcode-link">[исходный код]</span></a><a class="headerlink" href="#pyOpenRPA.Robot.Screen.PointClick" title="Ссылка на это определение"></a></dt>
<dd><p>Нажатие (вниз) кнопки мыши и затем немедленно выпуск (вверх) её. Допускается следующая параметризация.</p>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="c1"># Screen: Взаимодействие с мышью объектами экрана</span>
<span class="kn">from</span> <span class="nn">pyOpenRPA.Robot</span> <span class="kn">import</span> <span class="n">Screen</span>
<span class="n">lPoint</span> <span class="o">=</span> <span class="n">Screen</span><span class="o">.</span><span class="n">PointCreate</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">150</span><span class="p">)</span>
<span class="n">Screen</span><span class="o">.</span><span class="n">PointClick</span><span class="p">(</span><span class="n">lPoint</span><span class="p">)</span> <span class="c1">#Выполнить нажатие левой клавиши мыши</span>
</pre></div>
</div>
<dl class="field-list simple">
<dt class="field-odd">Параметры</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>inPoint</strong> (<em>pyscreeze.Point</em><em>, </em><em>обязательный</em>) Точка на экране, по которой выполнить нажатие мыши</p></li>
<li><p><strong>inClickCountInt</strong> (<em>int</em><em>, </em><em>опциональный</em>) Количество нажатий (вниз и вверх) кнопкой мыши, По умолчанию 1</p></li>
<li><p><strong>inIntervalSecFloat</strong> (<em>float</em><em>, </em><em>опциональный</em>) Интервал ожидания в секундах между нажатиями, По умолчанию 0.0</p></li>
<li><p><strong>inButtonStr</strong> (<em>str</em><em>, </em><em>опциональный</em>) Номер кнопки, которую требуется нажать. Возможные варианты: „left“, „middle“, „right“ или 1, 2, 3. В остальных случаях инициирует исключение ValueError. По умолчанию „left“</p></li>
<li><p><strong>inMoveDurationSecFloat</strong> (<em>float</em><em>, </em><em>опциональный</em>) Время перемещения указателя мыши, По умолчанию 0.0 (моментальное перемещение)</p></li>
<li><p><strong>inWaitAfterSecFloat</strong> (<em>float</em><em>, </em><em>опциональный</em>) Количество секунд, которые ожидать после выполнения операции. По умолчанию установлено в настройках модуля Mouse (базовое значение 0.4)</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt id="pyOpenRPA.Robot.Screen.PointClickDouble">
<code class="sig-prename descclassname">pyOpenRPA.Robot.Screen.</code><code class="sig-name descname">PointClickDouble</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inPoint</span><span class="p">:</span> <span class="n">pyscreeze.Point</span></em>, <em class="sig-param"><span class="n">inWaitAfterSecFloat</span><span class="p">:</span> <span class="n">Optional<span class="p">[</span>float<span class="p">]</span></span> <span class="o">=</span> <span class="default_value">None</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/pyOpenRPA/Robot/Screen.html#PointClickDouble"><span class="viewcode-link">[исходный код]</span></a><a class="headerlink" href="#pyOpenRPA.Robot.Screen.PointClickDouble" title="Ссылка на это определение"></a></dt>
<dd><p>Двойное нажатие левой клавиши мыши. Данное действие аналогично вызову функции (см. ниже).</p>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="c1"># Screen: Взаимодействие с мышью объектами экрана</span>
<span class="kn">from</span> <span class="nn">pyOpenRPA.Robot</span> <span class="kn">import</span> <span class="n">Screen</span>
<span class="n">lPoint</span> <span class="o">=</span> <span class="n">Screen</span><span class="o">.</span><span class="n">PointCreate</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">150</span><span class="p">)</span>
<span class="n">Screen</span><span class="o">.</span><span class="n">PointClickDouble</span><span class="p">(</span><span class="n">lPoint</span><span class="p">)</span> <span class="c1">#Выполнить двойное нажатие левой клавиши мыши</span>
</pre></div>
</div>
<dl class="field-list simple">
<dt class="field-odd">Параметры</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>inPoint</strong> (<em>pyscreeze.Point</em><em>, </em><em>обязательный</em>) Точка на экране, по которой выполнить нажатие мыши</p></li>
<li><p><strong>inWaitAfterSecFloat</strong> (<em>float</em><em>, </em><em>опциональный</em>) Количество секунд, которые ожидать после выполнения операции. По умолчанию установлено в настройках модуля Mouse (базовое значение 0.4)</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt id="pyOpenRPA.Robot.Screen.PointCreate">
<code class="sig-prename descclassname">pyOpenRPA.Robot.Screen.</code><code class="sig-name descname">PointCreate</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inXInt</span></em>, <em class="sig-param"><span class="n">inYInt</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/pyOpenRPA/Robot/Screen.html#PointCreate"><span class="viewcode-link">[исходный код]</span></a><a class="headerlink" href="#pyOpenRPA.Robot.Screen.PointCreate" title="Ссылка на это определение"></a></dt>
<dd><p>Создать точку pyscreeze.Point.</p>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="c1"># Screen: Взаимодействие с мышью объектами экрана</span>
<span class="kn">from</span> <span class="nn">pyOpenRPA.Robot</span> <span class="kn">import</span> <span class="n">Screen</span>
<span class="n">lPoint</span> <span class="o">=</span> <span class="n">Screen</span><span class="o">.</span><span class="n">PointCreate</span><span class="p">(</span><span class="n">inXInt</span><span class="o">=</span><span class="mi">10</span><span class="p">,</span> <span class="n">inYInt</span><span class="o">=</span><span class="mi">10</span><span class="p">)</span>
</pre></div>
</div>
<dl class="field-list simple">
<dt class="field-odd">Параметры</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>inXInt</strong> (<em>int</em><em>, </em><em>опциональный</em>) Смещение указателя мыши по оси X (горизонтальная ось).</p></li>
<li><p><strong>inYInt</strong> (<em>int</em><em>, </em><em>опциональный</em>) Смещение указателя мыши по оси Y (вертикальная ось).</p></li>
</ul>
</dd>
<dt class="field-even">Результат</dt>
<dd class="field-even"><p>Точка на экране</p>
</dd>
<dt class="field-odd">Тип результата</dt>
<dd class="field-odd"><p>pyscreeze.Point</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt id="pyOpenRPA.Robot.Screen.PointDown">
<code class="sig-prename descclassname">pyOpenRPA.Robot.Screen.</code><code class="sig-name descname">PointDown</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inPoint</span><span class="p">:</span> <span class="n">pyscreeze.Point</span></em>, <em class="sig-param"><span class="n">inButtonStr</span><span class="p">:</span> <span class="n">str</span> <span class="o">=</span> <span class="default_value">'left'</span></em>, <em class="sig-param"><span class="n">inWaitAfterSecFloat</span><span class="p">:</span> <span class="n">Optional<span class="p">[</span>float<span class="p">]</span></span> <span class="o">=</span> <span class="default_value">None</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/pyOpenRPA/Robot/Screen.html#PointDown"><span class="viewcode-link">[исходный код]</span></a><a class="headerlink" href="#pyOpenRPA.Robot.Screen.PointDown" title="Ссылка на это определение"></a></dt>
<dd><p>Переместить указатель по координатам inPoint, после чего нажать (вниз) клавишу мыши и не отпускать до выполнения соответсвующей команды (см. Up).</p>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="c1"># Screen: Взаимодействие с мышью объектами экрана</span>
<span class="kn">from</span> <span class="nn">pyOpenRPA.Robot</span> <span class="kn">import</span> <span class="n">Screen</span>
<span class="n">lPoint</span> <span class="o">=</span> <span class="n">Screen</span><span class="o">.</span><span class="n">PointCreate</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">150</span><span class="p">)</span>
<span class="n">Screen</span><span class="o">.</span><span class="n">PointDown</span><span class="p">(</span><span class="n">lPoint</span><span class="p">)</span>
</pre></div>
</div>
<dl class="field-list simple">
<dt class="field-odd">Параметры</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>inPoint</strong> (<em>pyscreeze.Point</em><em>, </em><em>обязательный</em>) Точка на экране, по которой выполнить нажатие мыши</p></li>
<li><p><strong>inButtonStr</strong> (<em>str</em><em>, </em><em>опциональный</em>) Номер кнопки, которую требуется нажать. Возможные варианты: „left“, „middle“, „right“ или 1, 2, 3. В остальных случаях инициирует исключение ValueError. По умолчанию „left“</p></li>
<li><p><strong>inWaitAfterSecFloat</strong> (<em>float</em><em>, </em><em>опциональный</em>) Количество секунд, которые ожидать после выполнения операции. По умолчанию установлено в настройках модуля Mouse (базовое значение 0.4)</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt id="pyOpenRPA.Robot.Screen.PointModify">
<code class="sig-prename descclassname">pyOpenRPA.Robot.Screen.</code><code class="sig-name descname">PointModify</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inPoint</span></em>, <em class="sig-param"><span class="n">inDXInt</span></em>, <em class="sig-param"><span class="n">inDYInt</span></em><span class="sig-paren">)</span> &#x2192; pyscreeze.Point<a class="reference internal" href="../_modules/pyOpenRPA/Robot/Screen.html#PointModify"><span class="viewcode-link">[исходный код]</span></a><a class="headerlink" href="#pyOpenRPA.Robot.Screen.PointModify" title="Ссылка на это определение"></a></dt>
<dd><p>Скорректировать точку pyscreeze.Point.</p>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="c1"># Screen: Взаимодействие с мышью объектами экрана</span>
<span class="kn">from</span> <span class="nn">pyOpenRPA.Robot</span> <span class="kn">import</span> <span class="n">Screen</span>
<span class="n">lPoint</span> <span class="o">=</span> <span class="n">Screen</span><span class="o">.</span><span class="n">PointCreate</span><span class="p">(</span><span class="n">inXInt</span><span class="o">=</span><span class="mi">10</span><span class="p">,</span> <span class="n">inYInt</span><span class="o">=</span><span class="mi">10</span><span class="p">)</span>
<span class="n">lPoint</span> <span class="o">=</span> <span class="n">Screen</span><span class="o">.</span><span class="n">PointModify</span><span class="p">(</span><span class="n">inPoint</span><span class="o">=</span><span class="n">lPoint</span><span class="p">,</span> <span class="n">inDXInt</span><span class="o">=</span><span class="mi">90</span><span class="p">,</span> <span class="n">inDYInt</span><span class="o">=</span><span class="mi">10</span><span class="p">)</span>
</pre></div>
</div>
<dl class="field-list simple">
<dt class="field-odd">Параметры</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>inPoint</strong> (<em>pyscreeze.Point</em><em>, </em><em>обязательный</em>) Точка на экране, по которой выполнить нажатие мыши</p></li>
<li><p><strong>inDXInt</strong> (<em>int</em><em>, </em><em>опциональный</em>) Смещение указателя мыши по оси X (горизонтальная ось).</p></li>
<li><p><strong>inDYInt</strong> (<em>int</em><em>, </em><em>опциональный</em>) Смещение указателя мыши по оси Y (вертикальная ось).</p></li>
</ul>
</dd>
<dt class="field-even">Результат</dt>
<dd class="field-even"><p>Точка на экране</p>
</dd>
<dt class="field-odd">Тип результата</dt>
<dd class="field-odd"><p>pyscreeze.Point</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt id="pyOpenRPA.Robot.Screen.PointMoveTo">
<code class="sig-prename descclassname">pyOpenRPA.Robot.Screen.</code><code class="sig-name descname">PointMoveTo</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inPoint</span><span class="p">:</span> <span class="n">pyscreeze.Point</span></em>, <em class="sig-param"><span class="n">inWaitAfterSecFloat</span><span class="p">:</span> <span class="n">Optional<span class="p">[</span>float<span class="p">]</span></span> <span class="o">=</span> <span class="default_value">None</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/pyOpenRPA/Robot/Screen.html#PointMoveTo"><span class="viewcode-link">[исходный код]</span></a><a class="headerlink" href="#pyOpenRPA.Robot.Screen.PointMoveTo" title="Ссылка на это определение"></a></dt>
<dd><p>Переместить указатель мыши на позицию inXInt, inYInt за время inMoveDurationSecFloat.</p>
<p>!ВНИМАНИЕ! Отсчет координат inXInt, inYInt начинается с левого верхнего края рабочей области (экрана).</p>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="c1"># Screen: Взаимодействие с мышью объектами экрана</span>
<span class="kn">from</span> <span class="nn">pyOpenRPA.Robot</span> <span class="kn">import</span> <span class="n">Screen</span>
<span class="n">lPoint</span> <span class="o">=</span> <span class="n">Screen</span><span class="o">.</span><span class="n">PointCreate</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">150</span><span class="p">)</span>
<span class="n">Screen</span><span class="o">.</span><span class="n">PointMoveTo</span><span class="p">(</span><span class="n">inXInt</span><span class="o">=</span><span class="mi">100</span><span class="p">,</span> <span class="n">inYInt</span><span class="o">=</span><span class="mi">200</span><span class="p">)</span>
</pre></div>
</div>
<dl class="field-list simple">
<dt class="field-odd">Параметры</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>inPoint</strong> (<em>pyscreeze.Point</em><em>, </em><em>обязательный</em>) Точка на экране, по которой выполнить нажатие мыши</p></li>
<li><p><strong>inWaitAfterSecFloat</strong> (<em>float</em><em>, </em><em>опциональный</em>) Количество секунд, которые ожидать после выполнения операции. По умолчанию установлено в настройках модуля Mouse (базовое значение 0.4)</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt id="pyOpenRPA.Robot.Screen.PointUp">
<code class="sig-prename descclassname">pyOpenRPA.Robot.Screen.</code><code class="sig-name descname">PointUp</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inPoint</span><span class="p">:</span> <span class="n">pyscreeze.Point</span></em>, <em class="sig-param"><span class="n">inButtonStr</span><span class="p">:</span> <span class="n">str</span> <span class="o">=</span> <span class="default_value">'left'</span></em>, <em class="sig-param"><span class="n">inWaitAfterSecFloat</span><span class="p">:</span> <span class="n">Optional<span class="p">[</span>float<span class="p">]</span></span> <span class="o">=</span> <span class="default_value">None</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/pyOpenRPA/Robot/Screen.html#PointUp"><span class="viewcode-link">[исходный код]</span></a><a class="headerlink" href="#pyOpenRPA.Robot.Screen.PointUp" title="Ссылка на это определение"></a></dt>
<dd><p>Отпустить (вверх) клавишу мыши.</p>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="c1"># Screen: Взаимодействие с мышью объектами экрана</span>
<span class="kn">from</span> <span class="nn">pyOpenRPA.Robot</span> <span class="kn">import</span> <span class="n">Screen</span>
<span class="n">lPoint</span> <span class="o">=</span> <span class="n">Screen</span><span class="o">.</span><span class="n">PointCreate</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="mi">150</span><span class="p">)</span>
<span class="n">Screen</span><span class="o">.</span><span class="n">PointUp</span><span class="p">(</span><span class="n">lPoint</span><span class="p">)</span>
</pre></div>
</div>
<dl class="field-list simple">
<dt class="field-odd">Параметры</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>inPoint</strong> (<em>pyscreeze.Point</em><em>, </em><em>обязательный</em>) Точка на экране, по которой выполнить нажатие мыши</p></li>
<li><p><strong>inButtonStr</strong> (<em>str</em><em>, </em><em>опциональный</em>) Номер кнопки, которую требуется поднять. Возможные варианты: „left“, „middle“, „right“ или 1, 2, 3. В остальных случаях инициирует исключение ValueError. По умолчанию „left“</p></li>
<li><p><strong>inWaitAfterSecFloat</strong> (<em>float</em><em>, </em><em>опциональный</em>) Количество секунд, которые ожидать после выполнения операции. По умолчанию установлено в настройках модуля Mouse (базовое значение 0.4)</p></li>
</ul>
</dd>
</dl>
</dd></dl>
</div>
<div class="section" id="id7">
<h2>Быстрая навигация<a class="headerlink" href="#id7" title="Ссылка на этот заголовок"></a></h2>
<ul class="simple">
<li><p><a class="reference external" href="https://t.me/pyOpenRPA">Сообщество pyOpenRPA (telegram)</a></p></li>
<li><p><a class="reference external" href="https://tenchat.ru/iMaslov?utm_source=19f2a84f-3268-437f-950c-d987ae42af24">Сообщество pyOpenRPA (tenchat)</a></p></li>
<li><p><a class="reference external" href="https://vk.com/pyopenrpa">Сообщество pyOpenRPA (вконтакте)</a></p></li>
<li><p><a class="reference external" href="https://pyopenrpa.ru/Index/pyOpenRPA_product_service.pdf">Презентация pyOpenRPA</a></p></li>
<li><p><a class="reference external" href="https://pyopenrpa.ru">Портал pyOpenRPA</a></p></li>
<li><p><a class="reference external" href="https://gitlab.com/UnicodeLabs/OpenRPA">Репозиторий pyOpenRPA</a></p></li>
</ul>
<p> .. v1.2.13 replace:: v1.2.13</p>
<p></p>
</div>
</div>
</div>
</div>
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="08_HowToUse.html" class="btn btn-neutral float-right" title="8. Как использовать?" accesskey="n" rel="next">Следующая <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
<a href="06_mouse.html" class="btn btn-neutral float-left" title="6. Функции Mouse" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Предыдущая</a>
</div>
<hr/>
<div role="contentinfo">
<p>
&#169; Copyright 2022, ООО &#34;ОПЕН РПА&#34;.
</p>
</div>
Собрано при помощи <a href="https://www.sphinx-doc.org/">Sphinx</a> с использованием
<a href="https://github.com/readthedocs/sphinx_rtd_theme">темы,</a>
предоставленной <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>

@ -42,7 +42,7 @@
<link rel="index" title="Алфавитный указатель" href="../genindex.html" />
<link rel="search" title="Поиск" href="../search.html" />
<link rel="next" title="1. Описание" href="../Studio/01_Studio.html" />
<link rel="prev" title="7. Функции Image" href="07_image.html" />
<link rel="prev" title="7. Функции Screen" href="07_screen.html" />
</head>
<body class="wy-body-for-nav">
@ -101,7 +101,7 @@
<li class="toctree-l1"><a class="reference internal" href="04_keyboard.html">4. Функции Keyboard</a></li>
<li class="toctree-l1"><a class="reference internal" href="05_clipboard.html">5. Функции Clipboard</a></li>
<li class="toctree-l1"><a class="reference internal" href="06_mouse.html">6. Функции Mouse</a></li>
<li class="toctree-l1"><a class="reference internal" href="07_image.html">7. Функции Image</a></li>
<li class="toctree-l1"><a class="reference internal" href="07_screen.html">7. Функции Screen</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">8. Как использовать?</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#id2">Как запустить скрипт робота?</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#python-py">Скрипт Python (файл .py)</a></li>
@ -287,7 +287,7 @@
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="../Studio/01_Studio.html" class="btn btn-neutral float-right" title="1. Описание" accesskey="n" rel="next">Следующая <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
<a href="07_image.html" class="btn btn-neutral float-left" title="7. Функции Image" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Предыдущая</a>
<a href="07_screen.html" class="btn btn-neutral float-left" title="7. Функции Screen" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Предыдущая</a>
</div>
<hr/>

@ -101,7 +101,7 @@
<li class="toctree-l1"><a class="reference internal" href="../Robot/04_keyboard.html">4. Функции Keyboard</a></li>
<li class="toctree-l1"><a class="reference internal" href="../Robot/05_clipboard.html">5. Функции Clipboard</a></li>
<li class="toctree-l1"><a class="reference internal" href="../Robot/06_mouse.html">6. Функции Mouse</a></li>
<li class="toctree-l1"><a class="reference internal" href="../Robot/07_image.html">7. Функции Image</a></li>
<li class="toctree-l1"><a class="reference internal" href="../Robot/07_screen.html">7. Функции Screen</a></li>
<li class="toctree-l1"><a class="reference internal" href="../Robot/08_HowToUse.html">8. Как использовать?</a></li>
</ul>
<p class="caption"><span class="caption-text">МОДУЛЬ СТУДИЯ</span></p>

@ -101,7 +101,7 @@
<li class="toctree-l1"><a class="reference internal" href="../Robot/04_keyboard.html">4. Функции Keyboard</a></li>
<li class="toctree-l1"><a class="reference internal" href="../Robot/05_clipboard.html">5. Функции Clipboard</a></li>
<li class="toctree-l1"><a class="reference internal" href="../Robot/06_mouse.html">6. Функции Mouse</a></li>
<li class="toctree-l1"><a class="reference internal" href="../Robot/07_image.html">7. Функции Image</a></li>
<li class="toctree-l1"><a class="reference internal" href="../Robot/07_screen.html">7. Функции Screen</a></li>
<li class="toctree-l1"><a class="reference internal" href="../Robot/08_HowToUse.html">8. Как использовать?</a></li>
</ul>
<p class="caption"><span class="caption-text">МОДУЛЬ СТУДИЯ</span></p>

@ -100,7 +100,7 @@
<li class="toctree-l1"><a class="reference internal" href="../Robot/04_keyboard.html">4. Функции Keyboard</a></li>
<li class="toctree-l1"><a class="reference internal" href="../Robot/05_clipboard.html">5. Функции Clipboard</a></li>
<li class="toctree-l1"><a class="reference internal" href="../Robot/06_mouse.html">6. Функции Mouse</a></li>
<li class="toctree-l1"><a class="reference internal" href="../Robot/07_image.html">7. Функции Image</a></li>
<li class="toctree-l1"><a class="reference internal" href="../Robot/07_screen.html">7. Функции Screen</a></li>
<li class="toctree-l1"><a class="reference internal" href="../Robot/08_HowToUse.html">8. Как использовать?</a></li>
</ul>
<p class="caption"><span class="caption-text">МОДУЛЬ СТУДИЯ</span></p>

@ -99,7 +99,7 @@
<li class="toctree-l1"><a class="reference internal" href="../Robot/04_keyboard.html">4. Функции Keyboard</a></li>
<li class="toctree-l1"><a class="reference internal" href="../Robot/05_clipboard.html">5. Функции Clipboard</a></li>
<li class="toctree-l1"><a class="reference internal" href="../Robot/06_mouse.html">6. Функции Mouse</a></li>
<li class="toctree-l1"><a class="reference internal" href="../Robot/07_image.html">7. Функции Image</a></li>
<li class="toctree-l1"><a class="reference internal" href="../Robot/07_screen.html">7. Функции Screen</a></li>
<li class="toctree-l1"><a class="reference internal" href="../Robot/08_HowToUse.html">8. Как использовать?</a></li>
</ul>
<p class="caption"><span class="caption-text">МОДУЛЬ СТУДИЯ</span></p>
@ -191,6 +191,7 @@
<li><a href="pyOpenRPA/Robot/Clipboard.html">pyOpenRPA.Robot.Clipboard</a></li>
<li><a href="pyOpenRPA/Robot/Keyboard.html">pyOpenRPA.Robot.Keyboard</a></li>
<li><a href="pyOpenRPA/Robot/Mouse.html">pyOpenRPA.Robot.Mouse</a></li>
<li><a href="pyOpenRPA/Robot/Screen.html">pyOpenRPA.Robot.Screen</a></li>
<li><a href="pyOpenRPA/Robot/UIDesktop.html">pyOpenRPA.Robot.UIDesktop</a></li>
<li><a href="pyOpenRPA/Tools/Debugger.html">pyOpenRPA.Tools.Debugger</a></li>
<li><a href="pyOpenRPA/Tools/StopSafe.html">pyOpenRPA.Tools.StopSafe</a></li>

@ -99,7 +99,7 @@
<li class="toctree-l1"><a class="reference internal" href="../../../Robot/04_keyboard.html">4. Функции Keyboard</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../Robot/05_clipboard.html">5. Функции Clipboard</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../Robot/06_mouse.html">6. Функции Mouse</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../Robot/07_image.html">7. Функции Image</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../Robot/07_screen.html">7. Функции Screen</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../Robot/08_HowToUse.html">8. Как использовать?</a></li>
</ul>
<p class="caption"><span class="caption-text">МОДУЛЬ СТУДИЯ</span></p>

@ -99,7 +99,7 @@
<li class="toctree-l1"><a class="reference internal" href="../../../Robot/04_keyboard.html">4. Функции Keyboard</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../Robot/05_clipboard.html">5. Функции Clipboard</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../Robot/06_mouse.html">6. Функции Mouse</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../Robot/07_image.html">7. Функции Image</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../Robot/07_screen.html">7. Функции Screen</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../Robot/08_HowToUse.html">8. Как использовать?</a></li>
</ul>
<p class="caption"><span class="caption-text">МОДУЛЬ СТУДИЯ</span></p>
@ -188,7 +188,11 @@
<div itemprop="articleBody">
<h1>Исходный код pyOpenRPA.Orchestrator.__Orchestrator__</h1><div class="highlight"><pre>
<span></span><span class="kn">import</span> <span class="nn">subprocess</span><span class="o">,</span> <span class="nn">json</span><span class="o">,</span> <span class="nn">psutil</span><span class="o">,</span> <span class="nn">time</span><span class="o">,</span> <span class="nn">os</span><span class="o">,</span> <span class="nn">win32security</span><span class="o">,</span> <span class="nn">sys</span><span class="o">,</span> <span class="nn">base64</span><span class="o">,</span> <span class="nn">logging</span><span class="o">,</span> <span class="nn">ctypes</span><span class="o">,</span> <span class="nn">copy</span> <span class="c1">#Get input argument</span>
<span></span><span class="kn">import</span> <span class="nn">subprocess</span><span class="o">,</span> <span class="nn">json</span><span class="o">,</span> <span class="nn">psutil</span><span class="o">,</span> <span class="nn">time</span><span class="o">,</span> <span class="nn">os</span>
<span class="kn">from</span> <span class="nn">pyOpenRPA.Tools</span> <span class="kn">import</span> <span class="n">CrossOS</span>
<span class="k">if</span> <span class="n">CrossOS</span><span class="o">.</span><span class="n">IS_WINDOWS_BOOL</span><span class="p">:</span> <span class="kn">import</span> <span class="nn">win32security</span> <span class="c1">#CrossOS</span>
<span class="k">if</span> <span class="n">CrossOS</span><span class="o">.</span><span class="n">IS_LINUX_BOOL</span><span class="p">:</span> <span class="kn">from</span> <span class="nn">simplepam</span> <span class="kn">import</span> <span class="n">authenticate</span> <span class="c1">#CrossOS</span>
<span class="kn">import</span> <span class="nn">sys</span><span class="o">,</span> <span class="nn">base64</span><span class="o">,</span> <span class="nn">logging</span><span class="o">,</span> <span class="nn">ctypes</span><span class="o">,</span> <span class="nn">copy</span> <span class="c1">#Get input argument</span>
<span class="kn">import</span> <span class="nn">pickle</span>
<span class="kn">import</span> <span class="nn">inspect</span>
<span class="kn">import</span> <span class="nn">schedule</span>
@ -201,7 +205,9 @@
<span class="kn">from</span> <span class="nn">.</span> <span class="kn">import</span> <span class="n">Core</span>
<span class="kn">from</span> <span class="nn">.</span> <span class="kn">import</span> <span class="n">Managers</span>
<span class="kn">from</span> <span class="nn">..Tools</span> <span class="kn">import</span> <span class="n">License</span>
<span class="kn">from</span> <span class="nn">subprocess</span> <span class="kn">import</span> <span class="n">CREATE_NEW_CONSOLE</span>
<span class="k">if</span> <span class="n">CrossOS</span><span class="o">.</span><span class="n">IS_WINDOWS_BOOL</span><span class="p">:</span> <span class="kn">from</span> <span class="nn">subprocess</span> <span class="kn">import</span> <span class="n">CREATE_NEW_CONSOLE</span>
<span class="kn">from</span> <span class="nn">.Utils</span> <span class="kn">import</span> <span class="n">LoggerHandlerDumpLogList</span>
<span class="kn">from</span> <span class="nn">..Tools</span> <span class="kn">import</span> <span class="n">Debugger</span>
@ -648,6 +654,7 @@
<span class="sd"> :param inDomainStr: Домен. Если домена нет - не указывать или &quot;&quot;</span>
<span class="sd"> :return: True - Учетные данные верны; False - Учетные данные представлены некорректно </span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">if</span> <span class="n">CrossOS</span><span class="o">.</span><span class="n">IS_WINDOWS_BOOL</span><span class="p">:</span>
<span class="k">try</span><span class="p">:</span>
<span class="n">hUser</span> <span class="o">=</span> <span class="n">win32security</span><span class="o">.</span><span class="n">LogonUser</span><span class="p">(</span>
<span class="n">inUserStr</span><span class="p">,</span><span class="n">inDomainStr</span><span class="p">,</span> <span class="n">inPasswordStr</span><span class="p">,</span>
@ -656,7 +663,9 @@
<span class="k">except</span> <span class="n">win32security</span><span class="o">.</span><span class="n">error</span><span class="p">:</span>
<span class="k">return</span> <span class="kc">False</span>
<span class="k">else</span><span class="p">:</span>
<span class="k">return</span> <span class="kc">True</span></div>
<span class="k">return</span> <span class="kc">True</span>
<span class="k">if</span> <span class="n">CrossOS</span><span class="o">.</span><span class="n">IS_LINUX_BOOL</span><span class="p">:</span>
<span class="k">return</span> <span class="n">authenticate</span><span class="p">(</span><span class="n">inUserStr</span><span class="p">,</span> <span class="n">inPasswordStr</span><span class="p">,</span> <span class="n">service</span><span class="o">=</span><span class="s1">&#39;login&#39;</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s1">&#39;utf-8&#39;</span><span class="p">,</span> <span class="n">resetcred</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span></div>
<div class="viewcode-block" id="OSRemotePCRestart"><a class="viewcode-back" href="../../../Orchestrator/02_Defs.html#pyOpenRPA.Orchestrator.__Orchestrator__.OSRemotePCRestart">[документация]</a><span class="k">def</span> <span class="nf">OSRemotePCRestart</span><span class="p">(</span><span class="n">inHostStr</span><span class="p">,</span> <span class="n">inForceBool</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">inLogger</span> <span class="o">=</span> <span class="kc">None</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;</span>
@ -678,6 +687,8 @@
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Отправить команду на выполнение на сессию, где выполняется Оркестратор.</span>
<span class="sd"> Поддерживается: Windows: +, Linux: +</span>
<span class="sd"> :param inCMDStr: Команда на отправку</span>
<span class="sd"> :param inRunAsyncBool: True - выполнить команду в асинхронном режиме (не дожидаться окончания выполнения программы и не захватывать результат выполнения); False - Ждать окончания выполнения и захватывать результат</span>
<span class="sd"> :param inLogger: Логгер, в который отправлять информацию о результате выполнения команды</span>
@ -692,7 +703,9 @@
<span class="k">def</span> <span class="nf">_CMDRunAndListenLogs</span><span class="p">(</span><span class="n">inCMDStr</span><span class="p">,</span> <span class="n">inLogger</span><span class="p">):</span>
<span class="n">lResultStr</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span>
<span class="n">lOSCMDKeyStr</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">uuid</span><span class="o">.</span><span class="n">uuid4</span><span class="p">())[</span><span class="mi">0</span><span class="p">:</span><span class="mi">4</span><span class="p">]</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span>
<span class="n">lCMDProcess</span> <span class="o">=</span> <span class="n">subprocess</span><span class="o">.</span><span class="n">Popen</span><span class="p">(</span><span class="sa">f</span><span class="s1">&#39;cmd /c </span><span class="si">{</span><span class="n">inCMDStr</span><span class="si">}</span><span class="s1">&#39;</span><span class="p">,</span> <span class="n">stdout</span><span class="o">=</span><span class="n">subprocess</span><span class="o">.</span><span class="n">PIPE</span><span class="p">,</span> <span class="n">stderr</span><span class="o">=</span><span class="n">subprocess</span><span class="o">.</span><span class="n">STDOUT</span><span class="p">,</span> <span class="n">creationflags</span><span class="o">=</span><span class="n">CREATE_NEW_CONSOLE</span><span class="p">)</span>
<span class="c1"># CROSS OS</span>
<span class="k">if</span> <span class="n">CrossOS</span><span class="o">.</span><span class="n">IS_WINDOWS_BOOL</span><span class="p">:</span> <span class="n">lCMDProcess</span> <span class="o">=</span> <span class="n">subprocess</span><span class="o">.</span><span class="n">Popen</span><span class="p">(</span><span class="sa">f</span><span class="s1">&#39;cmd /c </span><span class="si">{</span><span class="n">inCMDStr</span><span class="si">}</span><span class="s1">&#39;</span><span class="p">,</span> <span class="n">stdout</span><span class="o">=</span><span class="n">subprocess</span><span class="o">.</span><span class="n">PIPE</span><span class="p">,</span> <span class="n">stderr</span><span class="o">=</span><span class="n">subprocess</span><span class="o">.</span><span class="n">STDOUT</span><span class="p">,</span> <span class="n">creationflags</span><span class="o">=</span><span class="n">CREATE_NEW_CONSOLE</span><span class="p">)</span>
<span class="k">if</span> <span class="n">CrossOS</span><span class="o">.</span><span class="n">IS_LINUX_BOOL</span><span class="p">:</span> <span class="n">lCMDProcess</span> <span class="o">=</span> <span class="n">subprocess</span><span class="o">.</span><span class="n">Popen</span><span class="p">(</span><span class="sa">f</span><span class="s1">&#39;cmd /c </span><span class="si">{</span><span class="n">inCMDStr</span><span class="si">}</span><span class="s1">&#39;</span><span class="p">,</span> <span class="n">stdout</span><span class="o">=</span><span class="n">subprocess</span><span class="o">.</span><span class="n">PIPE</span><span class="p">,</span> <span class="n">stderr</span><span class="o">=</span><span class="n">subprocess</span><span class="o">.</span><span class="n">STDOUT</span><span class="p">)</span>
<span class="k">if</span> <span class="n">inLogger</span><span class="p">:</span>
<span class="n">lListenBool</span> <span class="o">=</span> <span class="kc">True</span>
<span class="n">inLogger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">lOSCMDKeyStr</span><span class="si">}</span><span class="s2">: # # # # CMD Process has been STARTED # # # # &quot;</span><span class="p">)</span>
@ -731,7 +744,8 @@
<span class="n">lL</span> <span class="o">=</span> <span class="n">inGSettings</span><span class="p">[</span><span class="s2">&quot;Logger&quot;</span><span class="p">]</span>
<span class="k">if</span> <span class="n">lL</span><span class="p">:</span> <span class="n">lL</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Do restart&quot;</span><span class="p">)</span>
<span class="c1"># Restart session</span>
<span class="n">os</span><span class="o">.</span><span class="n">execl</span><span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">executable</span><span class="p">,</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span><span class="vm">__file__</span><span class="p">),</span> <span class="o">*</span><span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">)</span>
<span class="k">if</span> <span class="n">CrossOS</span><span class="o">.</span><span class="n">IS_WINDOWS_BOOL</span><span class="p">:</span> <span class="n">os</span><span class="o">.</span><span class="n">execl</span><span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">executable</span><span class="p">,</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span><span class="vm">__file__</span><span class="p">),</span> <span class="o">*</span><span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">)</span>
<span class="k">if</span> <span class="n">CrossOS</span><span class="o">.</span><span class="n">IS_LINUX_BOOL</span><span class="p">:</span> <span class="n">os</span><span class="o">.</span><span class="n">execl</span><span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">executable</span><span class="p">,</span> <span class="n">sys</span><span class="o">.</span><span class="n">executable</span><span class="p">,</span> <span class="o">*</span><span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">)</span>
<span class="n">sys</span><span class="o">.</span><span class="n">exit</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span></div>
<div class="viewcode-block" id="OrchestratorLoggerGet"><a class="viewcode-back" href="../../../Orchestrator/02_Defs.html#pyOpenRPA.Orchestrator.__Orchestrator__.OrchestratorLoggerGet">[документация]</a><span class="k">def</span> <span class="nf">OrchestratorLoggerGet</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="n">logging</span><span class="o">.</span><span class="n">Logger</span><span class="p">:</span>
@ -781,10 +795,12 @@
<span class="sd"> :return: True - Запущен с правами администратора; False - Не запущен с правами администратора</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">if</span> <span class="n">CrossOS</span><span class="o">.</span><span class="n">IS_WINDOWS_BOOL</span><span class="p">:</span>
<span class="k">try</span><span class="p">:</span>
<span class="k">return</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">windll</span><span class="o">.</span><span class="n">shell32</span><span class="o">.</span><span class="n">IsUserAnAdmin</span><span class="p">()</span>
<span class="k">except</span><span class="p">:</span>
<span class="k">return</span> <span class="kc">False</span></div>
<span class="k">return</span> <span class="kc">False</span>
<span class="k">else</span><span class="p">:</span> <span class="k">return</span> <span class="kc">True</span></div>
<div class="viewcode-block" id="OrchestratorIsInited"><a class="viewcode-back" href="../../../Orchestrator/02_Defs.html#pyOpenRPA.Orchestrator.__Orchestrator__.OrchestratorIsInited">[документация]</a><span class="k">def</span> <span class="nf">OrchestratorIsInited</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
<span class="sd">&quot;&quot;&quot;</span>
@ -825,6 +841,8 @@
<span class="sd"> Добавляет инициализированный модуль в пространство sys.modules как imported (имя модуля = имя файла без расширения).</span>
<span class="sd"> </span>
<span class="sd"> ВНИМАНИЕ! ПРЕОБРАЗУЕТ ПУТИ МЕЖДУ WINDOWS И LINUX НОТАЦИЯМИ</span>
<span class="sd"> .. code-block:: python</span>
<span class="sd"> # ВАРИАНТ ИСПОЛЬЗОВАНИЯ 1 (инициализация модуля py без вызова каких-либо функций внутри)</span>
@ -850,7 +868,7 @@
<span class="sd"> :param inAsyncInitBool: ОПЦИОНАЛЬНО True - Инициализация py модулей в отдельных параллельных потоках - псевдопараллельное выполнение. False - последовательная инициализация</span>
<span class="sd"> :return: Сведения об инициализированных модулях в структуре: { &quot;ModuleNameStr&quot;:{&quot;PyPathStr&quot;: &quot;&quot;, &quot;Module&quot;: ...}, ...}</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">inGlobPatternStr</span> <span class="o">=</span> <span class="n">CrossOS</span><span class="o">.</span><span class="n">PathStr</span><span class="p">(</span><span class="n">inGlobPatternStr</span><span class="p">)</span>
<span class="c1"># # # # # # # #</span>
<span class="k">def</span> <span class="nf">__execute__</span><span class="p">(</span><span class="n">inResultDict</span><span class="p">,</span> <span class="n">inPyPathItemStr</span><span class="p">,</span> <span class="n">inDefStr</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">inDefArgNameGSettingsStr</span> <span class="o">=</span> <span class="kc">None</span><span class="p">):</span>
<span class="k">try</span><span class="p">:</span>
@ -864,10 +882,10 @@
<span class="k">if</span> <span class="n">lL</span><span class="p">:</span> <span class="n">lL</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Py module </span><span class="si">{</span><span class="n">lModuleNameStr</span><span class="si">}</span><span class="s2"> has been successfully initialized.&quot;</span><span class="p">)</span>
<span class="n">inResultDict</span><span class="p">[</span><span class="n">lModuleNameStr</span><span class="p">]</span><span class="o">=</span><span class="n">lItemDict</span>
<span class="c1"># Backward compatibility to call def with gsettings when init</span>
<span class="k">if</span> <span class="n">inDefStr</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">and</span> <span class="n">inDefStr</span> <span class="ow">is</span> <span class="ow">not</span> <span class="s2">&quot;&quot;</span><span class="p">:</span>
<span class="k">if</span> <span class="n">inDefStr</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">and</span> <span class="n">inDefStr</span> <span class="o">!=</span> <span class="s2">&quot;&quot;</span><span class="p">:</span>
<span class="n">lDef</span> <span class="o">=</span> <span class="nb">getattr</span><span class="p">(</span><span class="n">lTechModuleFromSpec</span><span class="p">,</span> <span class="n">inDefStr</span><span class="p">)</span>
<span class="n">lArgDict</span> <span class="o">=</span> <span class="p">{}</span>
<span class="k">if</span> <span class="n">inDefArgNameGSettingsStr</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">and</span> <span class="n">inDefArgNameGSettingsStr</span> <span class="ow">is</span> <span class="ow">not</span> <span class="s2">&quot;&quot;</span><span class="p">:</span>
<span class="k">if</span> <span class="n">inDefArgNameGSettingsStr</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">and</span> <span class="n">inDefArgNameGSettingsStr</span> <span class="o">!=</span> <span class="s2">&quot;&quot;</span><span class="p">:</span>
<span class="n">lArgDict</span> <span class="o">=</span> <span class="p">{</span><span class="n">inDefArgNameGSettingsStr</span><span class="p">:</span><span class="n">GSettingsGet</span><span class="p">()}</span>
<span class="n">lDef</span><span class="p">(</span><span class="o">**</span><span class="n">lArgDict</span><span class="p">)</span>
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
@ -2932,7 +2950,7 @@
<span class="n">lL</span> <span class="o">=</span> <span class="n">inGSettings</span><span class="p">[</span><span class="s2">&quot;Logger&quot;</span><span class="p">]</span>
<span class="c1"># https://stackoverflow.com/questions/130763/request-uac-elevation-from-within-a-python-script</span>
<span class="n">License</span><span class="o">.</span><span class="n">ConsoleVerify</span><span class="p">()</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">OrchestratorIsAdmin</span><span class="p">()</span> <span class="ow">and</span> <span class="n">inRunAsAdministratorBool</span><span class="o">==</span><span class="kc">True</span><span class="p">:</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">OrchestratorIsAdmin</span><span class="p">()</span> <span class="ow">and</span> <span class="n">inRunAsAdministratorBool</span><span class="o">==</span><span class="kc">True</span> <span class="ow">and</span> <span class="n">CrossOS</span><span class="o">.</span><span class="n">IS_WINDOWS_BOOL</span><span class="p">:</span>
<span class="n">OrchestratorRerunAsAdmin</span><span class="p">()</span>
<span class="k">else</span><span class="p">:</span>
<span class="c1"># Code of your program here</span>

@ -99,7 +99,7 @@
<li class="toctree-l1"><a class="reference internal" href="../../../Robot/04_keyboard.html">4. Функции Keyboard</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../Robot/05_clipboard.html">5. Функции Clipboard</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../Robot/06_mouse.html">6. Функции Mouse</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../Robot/07_image.html">7. Функции Image</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../Robot/07_screen.html">7. Функции Screen</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../Robot/08_HowToUse.html">8. Как использовать?</a></li>
</ul>
<p class="caption"><span class="caption-text">МОДУЛЬ СТУДИЯ</span></p>
@ -188,7 +188,9 @@
<div itemprop="articleBody">
<h1>Исходный код pyOpenRPA.Robot.Clipboard</h1><div class="highlight"><pre>
<span></span><span class="kn">import</span> <span class="nn">win32clipboard</span>
<span></span><span class="kn">from</span> <span class="nn">pyOpenRPA.Tools</span> <span class="kn">import</span> <span class="n">CrossOS</span>
<span class="k">if</span> <span class="n">CrossOS</span><span class="o">.</span><span class="n">IS_WINDOWS_BOOL</span><span class="p">:</span> <span class="kn">import</span> <span class="nn">win32clipboard</span> <span class="c1">#CrossOS</span>
<span class="k">if</span> <span class="n">CrossOS</span><span class="o">.</span><span class="n">IS_LINUX_BOOL</span><span class="p">:</span> <span class="kn">import</span> <span class="nn">pyclip</span> <span class="c1">#CrossOS</span>
<span class="c1">####################################</span>
<span class="c1">#Info: Clipboard module of the Robot app (OpenRPA - Robot)</span>
<span class="c1">####################################</span>
@ -225,16 +227,23 @@
<span class="n">ClipboardSet</span><span class="p">(</span><span class="n">inText</span><span class="o">=</span><span class="n">inTextStr</span><span class="p">)</span></div>
<span class="k">def</span> <span class="nf">ClipboardGet</span><span class="p">():</span>
<span class="k">if</span> <span class="n">CrossOS</span><span class="o">.</span><span class="n">IS_WINDOWS_BOOL</span><span class="p">:</span>
<span class="n">win32clipboard</span><span class="o">.</span><span class="n">OpenClipboard</span><span class="p">()</span>
<span class="n">lResult</span> <span class="o">=</span> <span class="n">win32clipboard</span><span class="o">.</span><span class="n">GetClipboardData</span><span class="p">(</span><span class="n">win32clipboard</span><span class="o">.</span><span class="n">CF_UNICODETEXT</span><span class="p">)</span>
<span class="n">win32clipboard</span><span class="o">.</span><span class="n">CloseClipboard</span><span class="p">()</span>
<span class="k">if</span> <span class="n">CrossOS</span><span class="o">.</span><span class="n">IS_LINUX_BOOL</span><span class="p">:</span>
<span class="n">lResult</span> <span class="o">=</span> <span class="n">pyclip</span><span class="o">.</span><span class="n">paste</span><span class="p">(</span><span class="n">text</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
<span class="k">return</span> <span class="n">lResult</span>
<span class="k">def</span> <span class="nf">ClipboardSet</span><span class="p">(</span><span class="n">inText</span><span class="p">):</span>
<span class="k">if</span> <span class="n">CrossOS</span><span class="o">.</span><span class="n">IS_WINDOWS_BOOL</span><span class="p">:</span>
<span class="n">win32clipboard</span><span class="o">.</span><span class="n">OpenClipboard</span><span class="p">()</span>
<span class="n">win32clipboard</span><span class="o">.</span><span class="n">EmptyClipboard</span><span class="p">()</span>
<span class="n">win32clipboard</span><span class="o">.</span><span class="n">SetClipboardData</span><span class="p">(</span><span class="n">win32clipboard</span><span class="o">.</span><span class="n">CF_UNICODETEXT</span><span class="p">,</span><span class="n">inText</span><span class="p">)</span>
<span class="n">win32clipboard</span><span class="o">.</span><span class="n">CloseClipboard</span><span class="p">()</span>
<span class="k">if</span> <span class="n">CrossOS</span><span class="o">.</span><span class="n">IS_LINUX_BOOL</span><span class="p">:</span>
<span class="n">pyclip</span><span class="o">.</span><span class="n">copy</span><span class="p">(</span><span class="n">inText</span><span class="p">)</span> <span class="c1"># copy data to the clipboard</span>
</pre></div>
</div>

@ -99,7 +99,7 @@
<li class="toctree-l1"><a class="reference internal" href="../../../Robot/04_keyboard.html">4. Функции Keyboard</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../Robot/05_clipboard.html">5. Функции Clipboard</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../Robot/06_mouse.html">6. Функции Mouse</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../Robot/07_image.html">7. Функции Image</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../Robot/07_screen.html">7. Функции Screen</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../Robot/08_HowToUse.html">8. Как использовать?</a></li>
</ul>
<p class="caption"><span class="caption-text">МОДУЛЬ СТУДИЯ</span></p>
@ -415,6 +415,22 @@
<span class="n">time</span><span class="o">.</span><span class="n">sleep</span><span class="p">(</span><span class="n">inDelaySecFloat</span><span class="p">)</span>
<span class="n">time</span><span class="o">.</span><span class="n">sleep</span><span class="p">(</span><span class="n">inWaitAfterSecFloat</span><span class="p">)</span></div>
<div class="viewcode-block" id="HotkeyCtrlV"><a class="viewcode-back" href="../../../Robot/04_keyboard.html#pyOpenRPA.Robot.Keyboard.HotkeyCtrlV">[документация]</a><span class="k">def</span> <span class="nf">HotkeyCtrlV</span><span class="p">(</span><span class="n">inWaitAfterSecFloat</span><span class="p">:</span><span class="nb">float</span><span class="o">=</span><span class="mf">0.4</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="sd">&quot;&quot;&quot;Выполнить вставку текста из буфера обмена</span>
<span class="sd"> ВНИМАНИЕ! НЕ ЗАВИСИТ ОТ ТЕКУЩЕЙ РАСКЛАДКИ КЛАВИАТУРЫ</span>
<span class="sd"> </span>
<span class="sd"> .. code-block:: python</span>
<span class="sd"> # Keyboard: Взаимодействие с клавиатурой</span>
<span class="sd"> from pyOpenRPA.Robot import Keyboard</span>
<span class="sd"> Keyboard.HotkeyCtrlV()</span>
<span class="sd"> </span>
<span class="sd"> :param inWaitAfterSecFloat: Количество секунд, которые ожидать после выполнения операции. По умолчанию установлено в настройках модуля Keyboard (базовое значение 0.4)</span>
<span class="sd"> :type inWaitAfterSecFloat: float, опциональный</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">HotkeyCombination</span><span class="p">(</span><span class="n">KEY_HOT_CTRL_LEFT</span><span class="p">,</span><span class="n">KEY_ENG_V</span><span class="p">)</span> <span class="c1"># Ctrl + v</span>
<span class="n">time</span><span class="o">.</span><span class="n">sleep</span><span class="p">(</span><span class="n">inWaitAfterSecFloat</span><span class="p">)</span></div>
<div class="viewcode-block" id="HotkeyCtrlA_CtrlC"><a class="viewcode-back" href="../../../Robot/04_keyboard.html#pyOpenRPA.Robot.Keyboard.HotkeyCtrlA_CtrlC">[документация]</a><span class="k">def</span> <span class="nf">HotkeyCtrlA_CtrlC</span><span class="p">(</span><span class="n">inWaitAfterSecFloat</span><span class="p">:</span><span class="nb">float</span><span class="o">=</span><span class="mf">0.4</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="sd">&quot;&quot;&quot;Выполнить выделение текста, после чего скопировать его в буфер обмена</span>
<span class="sd"> ВНИМАНИЕ! НЕ ЗАВИСИТ ОТ ТЕКУЩЕЙ РАСКЛАДКИ КЛАВИАТУРЫ</span>

@ -99,7 +99,7 @@
<li class="toctree-l1"><a class="reference internal" href="../../../Robot/04_keyboard.html">4. Функции Keyboard</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../Robot/05_clipboard.html">5. Функции Clipboard</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../Robot/06_mouse.html">6. Функции Mouse</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../Robot/07_image.html">7. Функции Image</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../Robot/07_screen.html">7. Функции Screen</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../Robot/08_HowToUse.html">8. Как использовать?</a></li>
</ul>
<p class="caption"><span class="caption-text">МОДУЛЬ СТУДИЯ</span></p>
@ -219,6 +219,7 @@
<span class="sd"> :param inWaitAfterSecFloat: Количество секунд, которые ожидать после выполнения операции. По умолчанию установлено в настройках модуля Mouse (базовое значение 0.4)</span>
<span class="sd"> :type inWaitAfterSecFloat: float, опциональный</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">if</span> <span class="n">inWaitAfterSecFloat</span> <span class="o">==</span> <span class="kc">None</span><span class="p">:</span> <span class="n">inWaitAfterSecFloat</span> <span class="o">=</span> <span class="n">WAIT_AFTER_SEC_FLOAT</span>
<span class="n">click</span><span class="p">(</span><span class="n">x</span><span class="o">=</span><span class="n">inXInt</span><span class="p">,</span> <span class="n">y</span><span class="o">=</span><span class="n">inYInt</span><span class="p">,</span> <span class="n">clicks</span><span class="o">=</span><span class="n">inClickCountInt</span><span class="p">,</span> <span class="n">interval</span><span class="o">=</span><span class="n">inIntervalSecFloat</span><span class="p">,</span> <span class="n">button</span><span class="o">=</span><span class="n">inButtonStr</span><span class="p">,</span> <span class="n">duration</span><span class="o">=</span><span class="n">inMoveDurationSecFloat</span><span class="p">)</span>
<span class="n">time</span><span class="o">.</span><span class="n">sleep</span><span class="p">(</span><span class="n">inWaitAfterSecFloat</span><span class="p">)</span></div>
@ -237,11 +238,10 @@
<span class="sd"> :type inXInt: int, опциональный</span>
<span class="sd"> :param inYInt: Целевая позиция указателя мыши по оси Y (вертикальная ось). </span>
<span class="sd"> :type inYInt: int, опциональный</span>
<span class="sd"> :param inButtonStr: Номер кнопки, которую требуется нажать. Возможные варианты: &#39;left&#39;, &#39;middle&#39;, &#39;right&#39; или 1, 2, 3. В остальных случаях инициирует исключение ValueError. По умолчанию &#39;left&#39;</span>
<span class="sd"> :type inButtonStr: str, опциональный</span>
<span class="sd"> :param inWaitAfterSecFloat: Количество секунд, которые ожидать после выполнения операции. По умолчанию установлено в настройках модуля Mouse (базовое значение 0.4)</span>
<span class="sd"> :type inWaitAfterSecFloat: float, опциональный</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">if</span> <span class="n">inWaitAfterSecFloat</span> <span class="o">==</span> <span class="kc">None</span><span class="p">:</span> <span class="n">inWaitAfterSecFloat</span> <span class="o">=</span> <span class="n">WAIT_AFTER_SEC_FLOAT</span>
<span class="n">doubleClick</span><span class="p">(</span><span class="n">x</span><span class="o">=</span><span class="n">inXInt</span><span class="p">,</span> <span class="n">y</span><span class="o">=</span><span class="n">inYInt</span><span class="p">)</span>
<span class="n">time</span><span class="o">.</span><span class="n">sleep</span><span class="p">(</span><span class="n">inWaitAfterSecFloat</span><span class="p">)</span></div>
@ -265,6 +265,7 @@
<span class="sd"> :param inWaitAfterSecFloat: Количество секунд, которые ожидать после выполнения операции. По умолчанию установлено в настройках модуля Mouse (базовое значение 0.4)</span>
<span class="sd"> :type inWaitAfterSecFloat: float, опциональный</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">if</span> <span class="n">inWaitAfterSecFloat</span> <span class="o">==</span> <span class="kc">None</span><span class="p">:</span> <span class="n">inWaitAfterSecFloat</span> <span class="o">=</span> <span class="n">WAIT_AFTER_SEC_FLOAT</span>
<span class="n">mouseDown</span><span class="p">(</span><span class="n">x</span><span class="o">=</span><span class="n">inXInt</span><span class="p">,</span> <span class="n">y</span><span class="o">=</span><span class="n">inYInt</span><span class="p">,</span> <span class="n">button</span> <span class="o">=</span> <span class="n">inButtonStr</span><span class="p">)</span>
<span class="n">time</span><span class="o">.</span><span class="n">sleep</span><span class="p">(</span><span class="n">inWaitAfterSecFloat</span><span class="p">)</span></div>
@ -288,6 +289,7 @@
<span class="sd"> :param inWaitAfterSecFloat: Количество секунд, которые ожидать после выполнения операции. По умолчанию установлено в настройках модуля Mouse (базовое значение 0.4)</span>
<span class="sd"> :type inWaitAfterSecFloat: float, опциональный</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">if</span> <span class="n">inWaitAfterSecFloat</span> <span class="o">==</span> <span class="kc">None</span><span class="p">:</span> <span class="n">inWaitAfterSecFloat</span> <span class="o">=</span> <span class="n">WAIT_AFTER_SEC_FLOAT</span>
<span class="n">mouseUp</span><span class="p">(</span><span class="n">x</span><span class="o">=</span><span class="n">inXInt</span><span class="p">,</span> <span class="n">y</span><span class="o">=</span><span class="n">inYInt</span><span class="p">,</span> <span class="n">button</span> <span class="o">=</span> <span class="n">inButtonStr</span><span class="p">)</span>
<span class="n">time</span><span class="o">.</span><span class="n">sleep</span><span class="p">(</span><span class="n">inWaitAfterSecFloat</span><span class="p">)</span></div>
@ -311,6 +313,7 @@
<span class="sd"> :param inWaitAfterSecFloat: Количество секунд, которые ожидать после выполнения операции. По умолчанию установлено в настройках модуля Mouse (базовое значение 0.4)</span>
<span class="sd"> :type inWaitAfterSecFloat: float, опциональный</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">if</span> <span class="n">inWaitAfterSecFloat</span> <span class="o">==</span> <span class="kc">None</span><span class="p">:</span> <span class="n">inWaitAfterSecFloat</span> <span class="o">=</span> <span class="n">WAIT_AFTER_SEC_FLOAT</span>
<span class="n">moveTo</span><span class="p">(</span><span class="n">x</span><span class="o">=</span><span class="n">inXInt</span><span class="p">,</span> <span class="n">y</span><span class="o">=</span><span class="n">inYInt</span><span class="p">,</span> <span class="n">duration</span><span class="o">=</span><span class="n">inMoveDurationSecFloat</span><span class="p">)</span>
<span class="n">time</span><span class="o">.</span><span class="n">sleep</span><span class="p">(</span><span class="n">inWaitAfterSecFloat</span><span class="p">)</span></div>
@ -335,6 +338,8 @@
<span class="sd"> :param inWaitAfterSecFloat: Количество секунд, которые ожидать после выполнения операции. По умолчанию установлено в настройках модуля Mouse (базовое значение 0.4)</span>
<span class="sd"> :type inWaitAfterSecFloat: float, опциональный</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">if</span> <span class="n">inWaitAfterSecFloat</span> <span class="o">==</span> <span class="kc">None</span><span class="p">:</span> <span class="n">inWaitAfterSecFloat</span> <span class="o">=</span> <span class="n">WAIT_AFTER_SEC_FLOAT</span>
<span class="n">inScrollClickCountInt</span> <span class="o">=</span> <span class="n">inScrollClickCountInt</span><span class="o">*-</span><span class="mi">1</span>
<span class="n">vscroll</span><span class="p">(</span><span class="n">inScrollClickCountInt</span><span class="p">,</span> <span class="n">x</span><span class="o">=</span><span class="n">inXInt</span><span class="p">,</span> <span class="n">y</span><span class="o">=</span><span class="n">inYInt</span><span class="p">)</span>
<span class="n">time</span><span class="o">.</span><span class="n">sleep</span><span class="p">(</span><span class="n">inWaitAfterSecFloat</span><span class="p">)</span></div>
@ -359,6 +364,7 @@
<span class="sd"> :param inWaitAfterSecFloat: Количество секунд, которые ожидать после выполнения операции. По умолчанию установлено в настройках модуля Mouse (базовое значение 0.4)</span>
<span class="sd"> :type inWaitAfterSecFloat: float, опциональный</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">if</span> <span class="n">inWaitAfterSecFloat</span> <span class="o">==</span> <span class="kc">None</span><span class="p">:</span> <span class="n">inWaitAfterSecFloat</span> <span class="o">=</span> <span class="n">WAIT_AFTER_SEC_FLOAT</span>
<span class="n">hscroll</span><span class="p">(</span><span class="n">inScrollClickCountInt</span><span class="p">,</span> <span class="n">x</span><span class="o">=</span><span class="n">inXInt</span><span class="p">,</span> <span class="n">y</span><span class="o">=</span><span class="n">inYInt</span><span class="p">)</span>
<span class="n">time</span><span class="o">.</span><span class="n">sleep</span><span class="p">(</span><span class="n">inWaitAfterSecFloat</span><span class="p">)</span></div>
</pre></div>

@ -0,0 +1,864 @@
<!DOCTYPE html>
<html class="writer-html5" lang="ru" >
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>pyOpenRPA.Robot.Screen &mdash; документация pyOpenRPA v1.2.13 v1.2.13</title>
<link rel="stylesheet" href="../../../_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
<link rel="shortcut icon" href="../../../_static/favicon.ico"/>
<!--[if lt IE 9]>
<script src="../../../_static/js/html5shiv.min.js"></script>
<![endif]-->
<script type="text/javascript" id="documentation_options" data-url_root="../../../" src="../../../_static/documentation_options.js"></script>
<script src="../../../_static/jquery.js"></script>
<script src="../../../_static/underscore.js"></script>
<script src="../../../_static/doctools.js"></script>
<script src="../../../_static/translations.js"></script>
<script type="text/javascript" src="../../../_static/js/theme.js"></script>
<link rel="index" title="Алфавитный указатель" href="../../../genindex.html" />
<link rel="search" title="Поиск" href="../../../search.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="../../../index.html" class="icon icon-home"> pyOpenRPA v1.2.13
</a>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../../../search.html" method="get">
<input type="text" name="q" placeholder="Поиск в документации" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<p class="caption"><span class="caption-text">ОБЩЕЕ</span></p>
<ul>
<li class="toctree-l1"><a class="reference external" href="https://pyopenrpa.ru/wiki/guide/index">Выбрать версию</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../01_HowToInstall.html">1. Первый запуск</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../03_Copyrights_Contacts.html">2. Лицензия &amp; Контакты</a></li>
</ul>
<p class="caption"><span class="caption-text">МОДУЛЬ РОБОТ</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../../Robot/01_Robot.html">1. Описание</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../Robot/02_uidesktop.html">2. Функции UIDesktop</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../Robot/03_uiweb.html">3. Функции UIWeb</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../Robot/04_keyboard.html">4. Функции Keyboard</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../Robot/05_clipboard.html">5. Функции Clipboard</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../Robot/06_mouse.html">6. Функции Mouse</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../Robot/07_screen.html">7. Функции Screen</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../Robot/08_HowToUse.html">8. Как использовать?</a></li>
</ul>
<p class="caption"><span class="caption-text">МОДУЛЬ СТУДИЯ</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../../Studio/01_Studio.html">1. Описание</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../Studio/02_HowToUse.html">2. Как использовать?</a></li>
</ul>
<p class="caption"><span class="caption-text">МОДУЛЬ ОРКЕСТРАТОР</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../../Orchestrator/01_Orchestrator.html">1. Описание</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../Orchestrator/02_Defs.html">2. Функции</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../Orchestrator/03_gSettingsTemplate.html">3. Настройки GSettings (шаблон)</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../Orchestrator/04_HowToUse.html">4. Как использовать?</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../Orchestrator/05_UAC.html">5. Права доступа пользователей UAC</a></li>
</ul>
<p class="caption"><span class="caption-text">МОДУЛЬ АГЕНТ</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../../Agent/02_Defs.html">2. Функции</a></li>
</ul>
<p class="caption"><span class="caption-text">ИНСТРУМЕНТЫ</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../../Tools/02_Defs.html">2. Функции StopSafe</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<nav class="wy-nav-top" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../../../index.html">pyOpenRPA v1.2.13</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="../../../index.html" class="icon icon-home"></a> &raquo;</li>
<li><a href="../../index.html">Код модуля</a> &raquo;</li>
<li>pyOpenRPA.Robot.Screen</li>
<li class="wy-breadcrumbs-aside">
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<h1>Исходный код pyOpenRPA.Robot.Screen</h1><div class="highlight"><pre>
<span></span><span class="kn">from</span> <span class="nn">pyautogui</span> <span class="kn">import</span> <span class="o">*</span>
<span class="kn">import</span> <span class="nn">pyautogui</span>
<span class="kn">import</span> <span class="nn">pyscreeze</span>
<span class="kn">import</span> <span class="nn">ctypes</span>
<span class="kn">from</span> <span class="nn">pyOpenRPA.Tools</span> <span class="kn">import</span> <span class="n">CrossOS</span>
<span class="kn">from</span> <span class="nn">.</span> <span class="kn">import</span> <span class="n">Mouse</span>
<span class="k">if</span> <span class="n">CrossOS</span><span class="o">.</span><span class="n">IS_WINDOWS_BOOL</span><span class="p">:</span>
<span class="kn">from</span> <span class="nn">pywinauto</span> <span class="kn">import</span> <span class="n">win32defines</span><span class="p">,</span> <span class="n">win32structures</span><span class="p">,</span> <span class="n">win32functions</span>
<span class="kn">import</span> <span class="nn">time</span>
<span class="n">IMAGE_WAIT_SEC_FLOAT</span> <span class="o">=</span> <span class="mi">60</span>
<span class="n">IMAGE_WAIT_INTERVAL_SEC_FLOAT</span> <span class="o">=</span> <span class="mf">1.0</span>
<div class="viewcode-block" id="BoxCreate"><a class="viewcode-back" href="../../../Robot/07_screen.html#pyOpenRPA.Robot.Screen.BoxCreate">[документация]</a><span class="k">def</span> <span class="nf">BoxCreate</span><span class="p">(</span><span class="n">inTopInt</span><span class="p">:</span><span class="nb">int</span><span class="p">,</span> <span class="n">inLeftInt</span><span class="p">:</span><span class="nb">int</span><span class="p">,</span> <span class="n">inHeightInt</span><span class="p">:</span><span class="nb">int</span><span class="p">,</span> <span class="n">inWidthInt</span><span class="p">:</span><span class="nb">int</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">pyscreeze</span><span class="o">.</span><span class="n">Box</span><span class="p">:</span>
<span class="sd">&quot;&quot;&quot;Создать экземпляр прямоугольной области.</span>
<span class="sd"> !ВНИМАНИЕ! Координаты inTopInt, inLeftInt определяют верхний левый край прямоугольной области.</span>
<span class="sd"> :param inTopInt: Координата левой верхней точки в пикселях по оси X (горизонталь)</span>
<span class="sd"> :type inTopInt: int</span>
<span class="sd"> :param inLeftInt: Координата левой верхней точки в пикселях по оси Y (вертикаль)</span>
<span class="sd"> :type inLeftInt: int</span>
<span class="sd"> :param inHeightInt: Расстояние вниз от левой верхней точки в пикселях</span>
<span class="sd"> :type inHeightInt: int</span>
<span class="sd"> :param inWidthInt: Расстояние вправо от левой верхней точки в пикселях</span>
<span class="sd"> :type inWidthInt: int</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">return</span> <span class="n">pyscreeze</span><span class="o">.</span><span class="n">Box</span><span class="p">(</span><span class="n">top</span> <span class="o">=</span> <span class="n">inTopInt</span><span class="p">,</span> <span class="n">left</span> <span class="o">=</span> <span class="n">inLeftInt</span><span class="p">,</span> <span class="n">height</span> <span class="o">=</span> <span class="n">inHeightInt</span><span class="p">,</span> <span class="n">width</span> <span class="o">=</span> <span class="n">inWidthInt</span><span class="p">)</span></div>
<span class="k">def</span> <span class="nf">BoxNormalize</span><span class="p">(</span><span class="o">*</span><span class="n">inArgList</span><span class="p">,</span> <span class="o">**</span><span class="n">inAgrDict</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">list</span><span class="p">:</span>
<span class="k">pass</span>
<div class="viewcode-block" id="BoxMoveTo"><a class="viewcode-back" href="../../../Robot/07_screen.html#pyOpenRPA.Robot.Screen.BoxMoveTo">[документация]</a><span class="k">def</span> <span class="nf">BoxMoveTo</span><span class="p">(</span><span class="n">inBox</span><span class="p">,</span> <span class="n">inDXInt</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">inDYInt</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Переместить прямоугольную область (сохранить длину/ширину).</span>
<span class="sd"> !ВНИМАНИЕ! ПОДДЕРЖИВАЕТ ПАКЕТНУЮ ОБРАТКУ ПРИ ПЕРЕДАЧЕ СПИСКА ЭКЗЕМПЛЯРОВ BOX</span>
<span class="sd"> .. code-block:: python</span>
<span class="sd"> # Screen: Взаимодействие с экраном</span>
<span class="sd"> from pyOpenRPA.Robot import Screen</span>
<span class="sd"> # Вариант изменения 1-го элемента</span>
<span class="sd"> # Создать пробную прямоугольную область</span>
<span class="sd"> lBox = Screen.BoxCreate(inTopInt=10, inLeftInt=10, inHeightInt=10, inWidthInt=10)</span>
<span class="sd"> # Переместить пробную прямоугольную область</span>
<span class="sd"> lBox = Screen.BoxMoveTo(lBox, inDXInt=100, inDYInt=200)</span>
<span class="sd"> </span>
<span class="sd"> :param inBox: Экземпляр класса прямоугольной области Box</span>
<span class="sd"> :type inBox: pyscreeze.Box</span>
<span class="sd"> :param inDXInt: Смещение левой верхней координаты по оси X в пикселях (горизонтальная ось). </span>
<span class="sd"> :type inDXInt: int, опциональный</span>
<span class="sd"> :param inDYInt: Смещение левой верхней координаты по оси Y в пикселях (вертикальная ось). </span>
<span class="sd"> :type inDYInt: int, опциональный</span>
<span class="sd"> :return: Экземпляр класса прямоугольной области Box</span>
<span class="sd"> :rtype: pyscreeze.Box</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">inBox</span><span class="p">)</span> <span class="ow">is</span> <span class="nb">list</span><span class="p">:</span>
<span class="n">lResult</span> <span class="o">=</span> <span class="p">[]</span>
<span class="k">for</span> <span class="n">lBox</span> <span class="ow">in</span> <span class="n">inBox</span><span class="p">:</span>
<span class="n">lResult</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">BoxMoveTo</span><span class="p">(</span><span class="n">lBox</span><span class="p">,</span> <span class="n">inDXInt</span><span class="o">=</span><span class="n">inDXInt</span><span class="p">,</span> <span class="n">inDYInt</span><span class="o">=</span><span class="n">inDYInt</span><span class="p">))</span>
<span class="k">return</span> <span class="n">lResult</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">lTopInt</span> <span class="o">=</span> <span class="n">inBox</span><span class="o">.</span><span class="n">top</span>
<span class="n">lLeftInt</span> <span class="o">=</span> <span class="n">inBox</span><span class="o">.</span><span class="n">left</span>
<span class="k">if</span> <span class="n">inDXInt</span><span class="p">:</span> <span class="n">lLeftInt</span> <span class="o">=</span> <span class="n">inBox</span><span class="o">.</span><span class="n">left</span> <span class="o">+</span> <span class="n">inDXInt</span>
<span class="k">if</span> <span class="n">inDYInt</span><span class="p">:</span> <span class="n">lTopInt</span> <span class="o">=</span> <span class="n">inBox</span><span class="o">.</span><span class="n">top</span> <span class="o">+</span> <span class="n">inDYInt</span>
<span class="k">return</span> <span class="n">BoxCreate</span><span class="p">(</span><span class="n">inTopInt</span><span class="o">=</span><span class="n">lTopInt</span><span class="p">,</span> <span class="n">inLeftInt</span><span class="o">=</span><span class="n">lLeftInt</span><span class="p">,</span>
<span class="n">inHeightInt</span><span class="o">=</span><span class="n">inBox</span><span class="o">.</span><span class="n">height</span><span class="p">,</span> <span class="n">inWidthInt</span><span class="o">=</span><span class="n">inBox</span><span class="o">.</span><span class="n">width</span><span class="p">)</span></div>
<div class="viewcode-block" id="BoxModify"><a class="viewcode-back" href="../../../Robot/07_screen.html#pyOpenRPA.Robot.Screen.BoxModify">[документация]</a><span class="k">def</span> <span class="nf">BoxModify</span><span class="p">(</span><span class="n">inBox</span><span class="p">,</span> <span class="n">inDWidthInt</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">inDHeightInt</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">inPointRuleStr</span><span class="o">=</span><span class="s2">&quot;CC&quot;</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Изменить ширину / высоту прямоугольной области.</span>
<span class="sd"> !ВНИМАНИЕ! ПОДДЕРЖИВАЕТ ПАКЕТНУЮ ОБРАТКУ ПРИ ПЕРЕДАЧЕ СПИСКА ЭКЗЕМПЛЯРОВ BOX</span>
<span class="sd"> !ВНИМАНИЕ! ЕСЛИ СМЕЩЕНИЕ ПРИВЕДЕТ К ОБРАЗОВАНИЮ ДРОБНОГО ЧИСЛА, БУДЕТ ВЫПОЛНЕНО ОКРУГЛЕНИЕ ПО МАТЕМАТИЧЕСКИМ ПРАВИЛАМ</span>
<span class="sd"> .. code-block:: python</span>
<span class="sd"> # Screen: Взаимодействие с экраном</span>
<span class="sd"> from pyOpenRPA.Robot import Screen</span>
<span class="sd"> # Вариант изменения 1-го элемента</span>
<span class="sd"> # Создать пробную прямоугольную область</span>
<span class="sd"> lBox = Screen.BoxCreate(inTopInt=10, inLeftInt=10, inHeightInt=10, inWidthInt=10)</span>
<span class="sd"> # Скорректировать пробную прямоугольную область</span>
<span class="sd"> lBox2 = Screen.BoxModify(lBox,10,10,&quot;CC&quot;); print(lBox2)</span>
<span class="sd"> lBox2 = Screen.BoxModify(lBox,10,10,&quot;LU&quot;); print(lBox2)</span>
<span class="sd"> lBox2 = Screen.BoxModify(lBox,10,10,&quot;LD&quot;); print(lBox2)</span>
<span class="sd"> lBox2 = Screen.BoxModify(lBox,10,10,&quot;RU&quot;); print(lBox2)</span>
<span class="sd"> lBox2 = Screen.BoxModify(lBox,10,10,&quot;RD&quot;); print(lBox2)</span>
<span class="sd"> </span>
<span class="sd"> :param inBox: Экземпляр класса прямоугольной области Box</span>
<span class="sd"> :type inBox: pyscreeze.Box</span>
<span class="sd"> :param inDXInt: Смещение левой верхней координаты по оси X в пикселях (горизонтальная ось). </span>
<span class="sd"> :type inDXInt: int, опциональный</span>
<span class="sd"> :param inDYInt: Смещение левой верхней координаты по оси Y в пикселях (вертикальная ось). </span>
<span class="sd"> :type inDYInt: int, опциональный</span>
<span class="sd"> :param inPointRuleStr: Символьное указание точки (подробнее см. выше), относительно которой выполнить изменение прямоугольной области. Допустимые значения: &quot;CC&quot; (по умолчанию), &quot;LU&quot;, &quot;LD&quot;, &quot;RD&quot;, &quot;RU&quot;</span>
<span class="sd"> :type inPointRuleStr: str, опциональный</span>
<span class="sd"> :return: Экземпляр класса прямоугольной области Box</span>
<span class="sd"> :rtype: pyscreeze.Box</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">inBox</span><span class="p">)</span> <span class="ow">is</span> <span class="nb">list</span><span class="p">:</span>
<span class="n">lResult</span> <span class="o">=</span> <span class="p">[]</span>
<span class="k">for</span> <span class="n">lBox</span> <span class="ow">in</span> <span class="n">inBox</span><span class="p">:</span>
<span class="n">lResult</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">BoxModify</span><span class="p">(</span><span class="n">lBox</span><span class="p">,</span> <span class="n">inDWidthInt</span><span class="o">=</span><span class="n">inDWidthInt</span><span class="p">,</span> <span class="n">inDHeightInt</span><span class="o">=</span><span class="n">inDHeightInt</span><span class="p">,</span> <span class="n">inPointRuleStr</span><span class="o">=</span><span class="n">inPointRuleStr</span><span class="p">))</span>
<span class="k">return</span> <span class="n">lResult</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">lTopInt</span> <span class="o">=</span> <span class="n">inBox</span><span class="o">.</span><span class="n">top</span>
<span class="n">lLeftInt</span> <span class="o">=</span> <span class="n">inBox</span><span class="o">.</span><span class="n">left</span>
<span class="n">lWidthInt</span> <span class="o">=</span> <span class="n">inBox</span><span class="o">.</span><span class="n">width</span> <span class="o">+</span> <span class="n">inDWidthInt</span>
<span class="n">lHeightInt</span> <span class="o">=</span> <span class="n">inBox</span><span class="o">.</span><span class="n">height</span> <span class="o">+</span> <span class="n">inDHeightInt</span>
<span class="n">inPointRuleStr</span> <span class="o">=</span> <span class="n">inPointRuleStr</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="c1"># ВЕРХНИЙ РЕГИСТР</span>
<span class="k">if</span> <span class="n">inDWidthInt</span><span class="p">:</span> <span class="c1"># Изменения по ширине</span>
<span class="k">if</span> <span class="s2">&quot;C&quot;</span> <span class="ow">in</span> <span class="n">inPointRuleStr</span><span class="p">:</span>
<span class="n">lLeftInt</span> <span class="o">=</span> <span class="nb">round</span><span class="p">(</span><span class="n">lLeftInt</span> <span class="o">-</span> <span class="n">inDWidthInt</span> <span class="o">/</span> <span class="mi">2</span><span class="p">)</span>
<span class="k">elif</span> <span class="s2">&quot;R&quot;</span> <span class="ow">in</span> <span class="n">inPointRuleStr</span><span class="p">:</span>
<span class="n">lLeftInt</span> <span class="o">=</span> <span class="n">lLeftInt</span> <span class="o">-</span> <span class="n">inDWidthInt</span>
<span class="k">if</span> <span class="n">inDHeightInt</span><span class="p">:</span> <span class="c1"># Изменения по высоте</span>
<span class="k">if</span> <span class="s2">&quot;C&quot;</span> <span class="ow">in</span> <span class="n">inPointRuleStr</span><span class="p">:</span>
<span class="n">lTopInt</span> <span class="o">=</span> <span class="nb">round</span><span class="p">(</span><span class="n">lTopInt</span> <span class="o">-</span> <span class="n">inDHeightInt</span> <span class="o">/</span> <span class="mi">2</span><span class="p">)</span>
<span class="k">elif</span> <span class="s2">&quot;D&quot;</span> <span class="ow">in</span> <span class="n">inPointRuleStr</span><span class="p">:</span>
<span class="n">lTopInt</span> <span class="o">=</span> <span class="n">lTopInt</span> <span class="o">-</span> <span class="n">inDHeightInt</span>
<span class="k">return</span> <span class="n">BoxCreate</span><span class="p">(</span><span class="n">inTopInt</span><span class="o">=</span><span class="n">lTopInt</span><span class="p">,</span> <span class="n">inLeftInt</span><span class="o">=</span><span class="n">lLeftInt</span><span class="p">,</span>
<span class="n">inHeightInt</span><span class="o">=</span><span class="n">lHeightInt</span><span class="p">,</span> <span class="n">inWidthInt</span><span class="o">=</span><span class="n">lWidthInt</span><span class="p">)</span></div>
<div class="viewcode-block" id="BoxDraw"><a class="viewcode-back" href="../../../Robot/07_screen.html#pyOpenRPA.Robot.Screen.BoxDraw">[документация]</a><span class="k">def</span> <span class="nf">BoxDraw</span><span class="p">(</span><span class="n">inBox</span><span class="p">,</span> <span class="n">inColorStr</span><span class="o">=</span><span class="s1">&#39;green&#39;</span><span class="p">,</span><span class="n">inThicknessInt</span> <span class="o">=</span> <span class="mi">2</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot; Выполнить подсветку прямоугольной области inBox на экране</span>
<span class="sd"> !ВНИМАНИЕ! РАБОТАЕТ ТОЛЬКО НА ОС WINDOWS</span>
<span class="sd"> !ВНИМАНИЕ! ПОДДЕРЖИВАЕТ ПАКЕТНУЮ ОБРАТКУ ПРИ ПЕРЕДАЧЕ СПИСКА ЭКЗЕМПЛЯРОВ BOX</span>
<span class="sd"> .. code-block:: python</span>
<span class="sd"> # Screen: Взаимодействие с экраном</span>
<span class="sd"> from pyOpenRPA.Robot import Screen</span>
<span class="sd"> # ВАРИАНТ ОТРИСОВКИ 1ГО ЭЛЕМЕНТА</span>
<span class="sd"> # Создать пробную прямоугольную область</span>
<span class="sd"> lBox = Screen.BoxCreate(inTopInt=10, inLeftInt=10, inHeightInt=10, inWidthInt=10)</span>
<span class="sd"> Screen.BoxDraw(lBox)</span>
<span class="sd"> # ВАРИАНТ ПАКЕТНОЙ ОТРИСОВКИ</span>
<span class="sd"> # Создать пробную прямоугольную область</span>
<span class="sd"> lBox = Screen.BoxCreate(inTopInt=10, inLeftInt=10, inHeightInt=100, inWidthInt=100)</span>
<span class="sd"> lBox2 = Screen.BoxCreate(inTopInt=60, inLeftInt=60, inHeightInt=100, inWidthInt=100)</span>
<span class="sd"> Screen.BoxDraw([lBox, lBox2])</span>
<span class="sd"> :param inBox: Экземпляр класса прямоугольной области Box</span>
<span class="sd"> :type inBox: pyscreeze.Box</span>
<span class="sd"> :param inColorStr: цвет подсветки прямоугольной области. Варианты: &#39;red&#39;, &#39;green&#39;, &#39;blue&#39;. По умолчанию &#39;green&#39;</span>
<span class="sd"> :type inColorStr: str, необязательный</span>
<span class="sd"> :param inThicknessInt: толщина подсветки прямоугольной области. По умолчанию 2</span>
<span class="sd"> :type inThicknessInt: int, необязательный</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">inBox</span><span class="p">)</span> <span class="ow">is</span> <span class="nb">list</span><span class="p">:</span>
<span class="k">for</span> <span class="n">lBox</span> <span class="ow">in</span> <span class="n">inBox</span><span class="p">:</span>
<span class="n">BoxDraw</span><span class="p">(</span><span class="n">inBox</span><span class="o">=</span><span class="n">lBox</span><span class="p">,</span> <span class="n">inColorStr</span><span class="o">=</span><span class="n">inColorStr</span><span class="p">,</span><span class="n">inThicknessInt</span> <span class="o">=</span> <span class="n">inThicknessInt</span><span class="p">)</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">fill</span> <span class="o">=</span> <span class="n">win32defines</span><span class="o">.</span><span class="n">BS_NULL</span>
<span class="k">if</span> <span class="n">inBox</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Draw an outline around the window.</span>
<span class="sd"> * **inColorStr** can be either an integer or one of &#39;red&#39;, &#39;green&#39;, &#39;blue&#39;</span>
<span class="sd"> (default &#39;green&#39;)</span>
<span class="sd"> * **inThicknessInt** inThicknessInt of rectangle (default 2)</span>
<span class="sd"> * **fill** how to fill in the rectangle (default BS_NULL)</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="c1"># don&#39;t draw if dialog is not visible</span>
<span class="c1">#if not lWrapperObject.is_visible():</span>
<span class="c1"># return</span>
<span class="n">colours</span> <span class="o">=</span> <span class="p">{</span>
<span class="s2">&quot;green&quot;</span><span class="p">:</span> <span class="mh">0x00ff00</span><span class="p">,</span>
<span class="s2">&quot;blue&quot;</span><span class="p">:</span> <span class="mh">0xff0000</span><span class="p">,</span>
<span class="s2">&quot;red&quot;</span><span class="p">:</span> <span class="mh">0x0000ff</span><span class="p">,</span>
<span class="p">}</span>
<span class="c1"># if it&#39;s a known colour</span>
<span class="k">if</span> <span class="n">inColorStr</span> <span class="ow">in</span> <span class="n">colours</span><span class="p">:</span>
<span class="n">inColorStr</span> <span class="o">=</span> <span class="n">colours</span><span class="p">[</span><span class="n">inColorStr</span><span class="p">]</span>
<span class="c1"># create the pen(outline)</span>
<span class="n">pen_handle</span> <span class="o">=</span> <span class="n">win32functions</span><span class="o">.</span><span class="n">CreatePen</span><span class="p">(</span>
<span class="n">win32defines</span><span class="o">.</span><span class="n">PS_SOLID</span><span class="p">,</span> <span class="n">inThicknessInt</span><span class="p">,</span> <span class="n">inColorStr</span><span class="p">)</span>
<span class="c1"># create the brush (inside)</span>
<span class="n">brush</span> <span class="o">=</span> <span class="n">win32structures</span><span class="o">.</span><span class="n">LOGBRUSH</span><span class="p">()</span>
<span class="n">brush</span><span class="o">.</span><span class="n">lbStyle</span> <span class="o">=</span> <span class="n">fill</span>
<span class="n">brush</span><span class="o">.</span><span class="n">lbHatch</span> <span class="o">=</span> <span class="n">win32defines</span><span class="o">.</span><span class="n">HS_DIAGCROSS</span>
<span class="n">brush_handle</span> <span class="o">=</span> <span class="n">win32functions</span><span class="o">.</span><span class="n">CreateBrushIndirect</span><span class="p">(</span><span class="n">ctypes</span><span class="o">.</span><span class="n">byref</span><span class="p">(</span><span class="n">brush</span><span class="p">))</span>
<span class="c1"># get the Device Context</span>
<span class="n">dc</span> <span class="o">=</span> <span class="n">win32functions</span><span class="o">.</span><span class="n">CreateDC</span><span class="p">(</span><span class="s2">&quot;DISPLAY&quot;</span><span class="p">,</span> <span class="kc">None</span><span class="p">,</span> <span class="kc">None</span><span class="p">,</span> <span class="kc">None</span> <span class="p">)</span>
<span class="c1"># push our objects into it</span>
<span class="n">win32functions</span><span class="o">.</span><span class="n">SelectObject</span><span class="p">(</span><span class="n">dc</span><span class="p">,</span> <span class="n">brush_handle</span><span class="p">)</span>
<span class="n">win32functions</span><span class="o">.</span><span class="n">SelectObject</span><span class="p">(</span><span class="n">dc</span><span class="p">,</span> <span class="n">pen_handle</span><span class="p">)</span>
<span class="c1"># draw the rectangle to the DC</span>
<span class="n">win32functions</span><span class="o">.</span><span class="n">Rectangle</span><span class="p">(</span>
<span class="n">dc</span><span class="p">,</span> <span class="n">inBox</span><span class="o">.</span><span class="n">left</span><span class="p">,</span> <span class="n">inBox</span><span class="o">.</span><span class="n">top</span><span class="p">,</span> <span class="n">inBox</span><span class="o">.</span><span class="n">left</span><span class="o">+</span><span class="n">inBox</span><span class="o">.</span><span class="n">width</span><span class="p">,</span> <span class="n">inBox</span><span class="o">.</span><span class="n">top</span><span class="o">+</span><span class="n">inBox</span><span class="o">.</span><span class="n">height</span><span class="p">)</span>
<span class="c1"># Delete the brush and pen we created</span>
<span class="n">win32functions</span><span class="o">.</span><span class="n">DeleteObject</span><span class="p">(</span><span class="n">brush_handle</span><span class="p">)</span>
<span class="n">win32functions</span><span class="o">.</span><span class="n">DeleteObject</span><span class="p">(</span><span class="n">pen_handle</span><span class="p">)</span>
<span class="c1"># delete the Display context that we created</span>
<span class="n">win32functions</span><span class="o">.</span><span class="n">DeleteDC</span><span class="p">(</span><span class="n">dc</span><span class="p">)</span></div>
<div class="viewcode-block" id="BoxAnchorRuleCheck"><a class="viewcode-back" href="../../../Robot/07_screen.html#pyOpenRPA.Robot.Screen.BoxAnchorRuleCheck">[документация]</a><span class="k">def</span> <span class="nf">BoxAnchorRuleCheck</span><span class="p">(</span><span class="n">inBox</span><span class="p">,</span> <span class="n">inAnchorBox</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">inAnchorRuleStr</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
<span class="sd">&quot;&quot;&quot;Выполнить проверку соответствия всем условиям вхождения inBox в inAnchorBox с учетом правил inAnchorRule</span>
<span class="sd"> </span>
<span class="sd"> .. code-block:: python</span>
<span class="sd"> # Screen: Взаимодействие с экраном</span>
<span class="sd"> from pyOpenRPA.Robot import Screen</span>
<span class="sd"> lBox1 = Screen.BoxCreate(inTopInt=265, inLeftInt=62, inHeightInt=100, inWidthInt=90)</span>
<span class="sd"> lBox2 = Screen.BoxCreate(inTopInt=160, inLeftInt=160, inHeightInt=100, inWidthInt=100)</span>
<span class="sd"> lBox3 = Screen.BoxCreate(inTopInt=460, inLeftInt=60, inHeightInt=100, inWidthInt=100)</span>
<span class="sd"> l = Screen.BoxAnchorRuleCheck(inBox=lBox1, inAnchorBox=[lBox2,lBox3], inAnchorRuleStr=[&quot;LD&quot;,&quot;CUS&quot;])</span>
<span class="sd"> Screen.BoxDraw([lBox1,lBox2,lBox3])</span>
<span class="sd"> :param inBox: Экземпляр класса прямоугольной области Box</span>
<span class="sd"> :type inBox: pyscreeze.Box</span>
<span class="sd"> :param inAnchorBox: Экземпляр класса прямоугольной области Box</span>
<span class="sd"> :type inAnchorBox: pyscreeze.Box или list из pyscreeze.Box</span>
<span class="sd"> :param inAnchorRuleStr: Символьное указание области проверки соответствия. Может принимать единственное значение (единый формат для всех inAnchorBox), или список форматов для каждого inAnchorBox (если inAnchorBox является списком Box)</span>
<span class="sd"> :type inAnchorRuleStr: str или list из str</span>
<span class="sd"> :return: True - соответствует всем правилам</span>
<span class="sd"> :rtype: bool</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="c1"># Формирование стартовых переменных</span>
<span class="k">if</span> <span class="n">inAnchorBox</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> <span class="n">inAnchorBox</span> <span class="o">=</span> <span class="p">[]</span>
<span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">inAnchorBox</span><span class="p">)</span> <span class="ow">is</span> <span class="ow">not</span> <span class="nb">list</span><span class="p">:</span>
<span class="n">inAnchorBox</span> <span class="o">=</span> <span class="p">[</span><span class="n">inAnchorBox</span><span class="p">]</span>
<span class="n">lAnchorRuleStr</span> <span class="o">=</span> <span class="s2">&quot;CC,S&quot;</span>
<span class="k">if</span> <span class="n">inAnchorRuleStr</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="n">inAnchorRuleStr</span><span class="o">==</span><span class="s2">&quot;&quot;</span><span class="p">:</span> <span class="n">inAnchorRuleStr</span> <span class="o">=</span> <span class="p">[</span><span class="n">lAnchorRuleStr</span><span class="p">]</span>
<span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">inAnchorRuleStr</span><span class="p">)</span> <span class="ow">is</span> <span class="ow">not</span> <span class="nb">list</span><span class="p">:</span>
<span class="n">inAnchorRuleStr</span> <span class="o">=</span> <span class="p">[</span><span class="n">inAnchorRuleStr</span><span class="p">]</span>
<span class="n">lResult</span> <span class="o">=</span> <span class="kc">True</span>
<span class="c1"># Дополнение списка правил до длины якорей, если они расходятся и список правил равен длине 1 или 0 (по умолчанию CC,S)</span>
<span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">inAnchorRuleStr</span><span class="p">)</span><span class="o">==</span><span class="mi">1</span> <span class="ow">and</span> <span class="nb">len</span><span class="p">(</span><span class="n">inAnchorBox</span><span class="p">)</span><span class="o">==</span><span class="mi">1</span><span class="p">:</span>
<span class="k">if</span> <span class="n">inAnchorRuleStr</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">==</span><span class="s2">&quot;&quot;</span> <span class="ow">or</span> <span class="n">inAnchorRuleStr</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
<span class="n">inAnchorRuleStr</span> <span class="o">=</span> <span class="p">[</span><span class="n">lAnchorRuleStr</span><span class="p">]</span>
<span class="k">elif</span> <span class="nb">len</span><span class="p">(</span><span class="n">inAnchorRuleStr</span><span class="p">)</span><span class="o">==</span><span class="mi">1</span> <span class="ow">and</span> <span class="nb">len</span><span class="p">(</span><span class="n">inAnchorBox</span><span class="p">)</span><span class="o">!=</span><span class="mi">1</span><span class="p">:</span>
<span class="k">if</span> <span class="n">inAnchorRuleStr</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">!=</span><span class="s2">&quot;&quot;</span> <span class="ow">and</span> <span class="n">inAnchorRuleStr</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
<span class="n">lAnchorRuleStr</span> <span class="o">=</span> <span class="n">inAnchorRuleStr</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
<span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">inAnchorRuleStr</span><span class="p">)</span> <span class="o">!=</span> <span class="nb">len</span><span class="p">(</span><span class="n">inAnchorBox</span><span class="p">):</span>
<span class="n">inAnchorRuleStr</span> <span class="o">=</span> <span class="p">[]</span>
<span class="k">for</span> <span class="n">lItem</span> <span class="ow">in</span> <span class="n">inAnchorBox</span><span class="p">:</span>
<span class="n">inAnchorRuleStr</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">lAnchorRuleStr</span><span class="p">)</span>
<span class="k">for</span> <span class="n">lIndexInt</span><span class="p">,</span> <span class="n">lItemBox</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">inAnchorBox</span><span class="p">):</span> <span class="c1"># Остановиться, если итог False</span>
<span class="n">lItemRuleStr</span> <span class="o">=</span> <span class="n">inAnchorRuleStr</span><span class="p">[</span><span class="n">lIndexInt</span><span class="p">]</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span>
<span class="nb">print</span><span class="p">(</span><span class="n">lItemRuleStr</span><span class="p">)</span>
<span class="c1"># Подготовка вспомогательных областей</span>
<span class="n">lScreenWidthPXInt</span> <span class="o">=</span> <span class="mi">9999</span>
<span class="n">lScreenHeightPXInt</span> <span class="o">=</span> <span class="mi">5555</span>
<span class="n">lAnchorLUBox</span> <span class="o">=</span> <span class="n">BoxCreate</span><span class="p">(</span><span class="n">inTopInt</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">inLeftInt</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">inHeightInt</span><span class="o">=</span><span class="n">lItemBox</span><span class="o">.</span><span class="n">top</span><span class="p">,</span> <span class="n">inWidthInt</span><span class="o">=</span><span class="n">lItemBox</span><span class="o">.</span><span class="n">left</span><span class="p">)</span>
<span class="n">lAnchorRUBox</span> <span class="o">=</span> <span class="n">BoxCreate</span><span class="p">(</span><span class="n">inTopInt</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">inLeftInt</span><span class="o">=</span><span class="n">lItemBox</span><span class="o">.</span><span class="n">left</span><span class="o">+</span><span class="n">lItemBox</span><span class="o">.</span><span class="n">width</span><span class="p">,</span> <span class="n">inHeightInt</span><span class="o">=</span><span class="n">lItemBox</span><span class="o">.</span><span class="n">top</span><span class="p">,</span> <span class="n">inWidthInt</span><span class="o">=</span><span class="n">lScreenWidthPXInt</span><span class="p">)</span>
<span class="n">lAnchorCUBox</span> <span class="o">=</span> <span class="n">BoxCreate</span><span class="p">(</span><span class="n">inTopInt</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">inLeftInt</span><span class="o">=</span><span class="n">lItemBox</span><span class="o">.</span><span class="n">left</span><span class="p">,</span> <span class="n">inHeightInt</span><span class="o">=</span><span class="n">lItemBox</span><span class="o">.</span><span class="n">top</span><span class="p">,</span> <span class="n">inWidthInt</span><span class="o">=</span><span class="n">lItemBox</span><span class="o">.</span><span class="n">width</span><span class="p">)</span>
<span class="n">lAnchorLCBox</span> <span class="o">=</span> <span class="n">BoxCreate</span><span class="p">(</span><span class="n">inTopInt</span><span class="o">=</span><span class="n">lItemBox</span><span class="o">.</span><span class="n">top</span><span class="p">,</span> <span class="n">inLeftInt</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">inHeightInt</span><span class="o">=</span><span class="n">lItemBox</span><span class="o">.</span><span class="n">height</span><span class="p">,</span> <span class="n">inWidthInt</span><span class="o">=</span><span class="n">lItemBox</span><span class="o">.</span><span class="n">left</span><span class="p">)</span>
<span class="n">lAnchorRCBox</span> <span class="o">=</span> <span class="n">BoxCreate</span><span class="p">(</span><span class="n">inTopInt</span><span class="o">=</span><span class="n">lItemBox</span><span class="o">.</span><span class="n">top</span><span class="p">,</span> <span class="n">inLeftInt</span><span class="o">=</span><span class="n">lItemBox</span><span class="o">.</span><span class="n">left</span><span class="o">+</span><span class="n">lItemBox</span><span class="o">.</span><span class="n">width</span><span class="p">,</span> <span class="n">inHeightInt</span><span class="o">=</span><span class="n">lItemBox</span><span class="o">.</span><span class="n">height</span><span class="p">,</span> <span class="n">inWidthInt</span><span class="o">=</span><span class="n">lScreenWidthPXInt</span><span class="p">)</span>
<span class="n">lAnchorLDBox</span> <span class="o">=</span> <span class="n">BoxCreate</span><span class="p">(</span><span class="n">inTopInt</span><span class="o">=</span><span class="n">lItemBox</span><span class="o">.</span><span class="n">top</span><span class="o">+</span><span class="n">lItemBox</span><span class="o">.</span><span class="n">height</span><span class="p">,</span> <span class="n">inLeftInt</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">inHeightInt</span><span class="o">=</span><span class="n">lScreenHeightPXInt</span><span class="p">,</span> <span class="n">inWidthInt</span><span class="o">=</span><span class="n">lItemBox</span><span class="o">.</span><span class="n">left</span><span class="p">)</span>
<span class="n">lAnchorRDBox</span> <span class="o">=</span> <span class="n">BoxCreate</span><span class="p">(</span><span class="n">inTopInt</span><span class="o">=</span><span class="n">lItemBox</span><span class="o">.</span><span class="n">top</span><span class="o">+</span><span class="n">lItemBox</span><span class="o">.</span><span class="n">height</span><span class="p">,</span> <span class="n">inLeftInt</span><span class="o">=</span><span class="n">lItemBox</span><span class="o">.</span><span class="n">left</span><span class="o">+</span><span class="n">lItemBox</span><span class="o">.</span><span class="n">width</span><span class="p">,</span> <span class="n">inHeightInt</span><span class="o">=</span><span class="n">lScreenHeightPXInt</span><span class="p">,</span> <span class="n">inWidthInt</span><span class="o">=</span><span class="n">lScreenWidthPXInt</span><span class="p">)</span>
<span class="n">lAnchorCDBox</span> <span class="o">=</span> <span class="n">BoxCreate</span><span class="p">(</span><span class="n">inTopInt</span><span class="o">=</span><span class="n">lItemBox</span><span class="o">.</span><span class="n">top</span><span class="o">+</span><span class="n">lItemBox</span><span class="o">.</span><span class="n">height</span><span class="p">,</span> <span class="n">inLeftInt</span><span class="o">=</span><span class="n">lItemBox</span><span class="o">.</span><span class="n">left</span><span class="p">,</span> <span class="n">inHeightInt</span><span class="o">=</span><span class="n">lScreenHeightPXInt</span><span class="p">,</span> <span class="n">inWidthInt</span><span class="o">=</span><span class="n">lItemBox</span><span class="o">.</span><span class="n">width</span><span class="p">)</span>
<span class="c1">#import pdb</span>
<span class="c1">#pdb.set_trace()</span>
<span class="k">if</span> <span class="s2">&quot;S&quot;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">lItemRuleStr</span><span class="p">:</span> <span class="c1"># Проверка без S - Strict</span>
<span class="n">lResult</span> <span class="o">=</span> <span class="kc">False</span>
<span class="c1"># Алгоритм проверки соответствия хотя бы на одно вхождение</span>
<span class="k">if</span> <span class="p">(</span><span class="s2">&quot;CC&quot;</span> <span class="ow">in</span> <span class="n">lItemRuleStr</span><span class="p">)</span> <span class="ow">and</span> <span class="n">BoxOverlay</span><span class="p">(</span><span class="n">inBox1</span><span class="o">=</span><span class="n">inBox</span><span class="p">,</span> <span class="n">inBox2</span><span class="o">=</span><span class="n">lItemBox</span><span class="p">)</span><span class="o">==</span><span class="kc">True</span><span class="p">:</span> <span class="n">lResult</span> <span class="o">=</span> <span class="kc">True</span>
<span class="k">elif</span> <span class="p">(</span><span class="s2">&quot;LU&quot;</span> <span class="ow">in</span> <span class="n">lItemRuleStr</span><span class="p">)</span> <span class="ow">and</span> <span class="n">BoxOverlay</span><span class="p">(</span><span class="n">inBox1</span><span class="o">=</span><span class="n">inBox</span><span class="p">,</span> <span class="n">inBox2</span><span class="o">=</span><span class="n">lAnchorLUBox</span><span class="p">)</span><span class="o">==</span><span class="kc">True</span><span class="p">:</span> <span class="n">lResult</span> <span class="o">=</span> <span class="kc">True</span>
<span class="k">elif</span> <span class="p">(</span><span class="s2">&quot;RU&quot;</span> <span class="ow">in</span> <span class="n">lItemRuleStr</span><span class="p">)</span> <span class="ow">and</span> <span class="n">BoxOverlay</span><span class="p">(</span><span class="n">inBox1</span><span class="o">=</span><span class="n">inBox</span><span class="p">,</span> <span class="n">inBox2</span><span class="o">=</span><span class="n">lAnchorRUBox</span><span class="p">)</span><span class="o">==</span><span class="kc">True</span><span class="p">:</span> <span class="n">lResult</span> <span class="o">=</span> <span class="kc">True</span>
<span class="k">elif</span> <span class="p">(</span><span class="s2">&quot;CU&quot;</span> <span class="ow">in</span> <span class="n">lItemRuleStr</span><span class="p">)</span> <span class="ow">and</span> <span class="n">BoxOverlay</span><span class="p">(</span><span class="n">inBox1</span><span class="o">=</span><span class="n">inBox</span><span class="p">,</span> <span class="n">inBox2</span><span class="o">=</span><span class="n">lAnchorCUBox</span><span class="p">)</span><span class="o">==</span><span class="kc">True</span><span class="p">:</span> <span class="n">lResult</span> <span class="o">=</span> <span class="kc">True</span>
<span class="k">elif</span> <span class="p">(</span><span class="s2">&quot;LC&quot;</span> <span class="ow">in</span> <span class="n">lItemRuleStr</span><span class="p">)</span> <span class="ow">and</span> <span class="n">BoxOverlay</span><span class="p">(</span><span class="n">inBox1</span><span class="o">=</span><span class="n">inBox</span><span class="p">,</span> <span class="n">inBox2</span><span class="o">=</span><span class="n">lAnchorLCBox</span><span class="p">)</span><span class="o">==</span><span class="kc">True</span><span class="p">:</span> <span class="n">lResult</span> <span class="o">=</span> <span class="kc">True</span>
<span class="k">elif</span> <span class="p">(</span><span class="s2">&quot;RC&quot;</span> <span class="ow">in</span> <span class="n">lItemRuleStr</span><span class="p">)</span> <span class="ow">and</span> <span class="n">BoxOverlay</span><span class="p">(</span><span class="n">inBox1</span><span class="o">=</span><span class="n">inBox</span><span class="p">,</span> <span class="n">inBox2</span><span class="o">=</span><span class="n">lAnchorRCBox</span><span class="p">)</span><span class="o">==</span><span class="kc">True</span><span class="p">:</span> <span class="n">lResult</span> <span class="o">=</span> <span class="kc">True</span>
<span class="k">elif</span> <span class="p">(</span><span class="s2">&quot;LD&quot;</span> <span class="ow">in</span> <span class="n">lItemRuleStr</span><span class="p">)</span> <span class="ow">and</span> <span class="n">BoxOverlay</span><span class="p">(</span><span class="n">inBox1</span><span class="o">=</span><span class="n">inBox</span><span class="p">,</span> <span class="n">inBox2</span><span class="o">=</span><span class="n">lAnchorLDBox</span><span class="p">)</span><span class="o">==</span><span class="kc">True</span><span class="p">:</span> <span class="n">lResult</span> <span class="o">=</span> <span class="kc">True</span>
<span class="k">elif</span> <span class="p">(</span><span class="s2">&quot;RD&quot;</span> <span class="ow">in</span> <span class="n">lItemRuleStr</span><span class="p">)</span> <span class="ow">and</span> <span class="n">BoxOverlay</span><span class="p">(</span><span class="n">inBox1</span><span class="o">=</span><span class="n">inBox</span><span class="p">,</span> <span class="n">inBox2</span><span class="o">=</span><span class="n">lAnchorRDBox</span><span class="p">)</span><span class="o">==</span><span class="kc">True</span><span class="p">:</span> <span class="n">lResult</span> <span class="o">=</span> <span class="kc">True</span>
<span class="k">elif</span> <span class="p">(</span><span class="s2">&quot;CD&quot;</span> <span class="ow">in</span> <span class="n">lItemRuleStr</span><span class="p">)</span> <span class="ow">and</span> <span class="n">BoxOverlay</span><span class="p">(</span><span class="n">inBox1</span><span class="o">=</span><span class="n">inBox</span><span class="p">,</span> <span class="n">inBox2</span><span class="o">=</span><span class="n">lAnchorCDBox</span><span class="p">)</span><span class="o">==</span><span class="kc">True</span><span class="p">:</span> <span class="n">lResult</span> <span class="o">=</span> <span class="kc">True</span>
<span class="k">if</span> <span class="n">lResult</span> <span class="o">==</span> <span class="kc">False</span><span class="p">:</span> <span class="k">break</span> <span class="c1"># Остановиться, если итог False</span>
<span class="k">else</span><span class="p">:</span> <span class="c1"># Проверка с S - Strict</span>
<span class="n">lResult</span> <span class="o">=</span> <span class="kc">True</span>
<span class="c1"># Алгоритм проверки соответствия хотя бы на одно вхождение для того сегмента, который недоступен</span>
<span class="k">if</span> <span class="p">(</span><span class="s2">&quot;CC&quot;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">lItemRuleStr</span><span class="p">)</span> <span class="ow">and</span> <span class="n">BoxOverlay</span><span class="p">(</span><span class="n">inBox1</span><span class="o">=</span><span class="n">inBox</span><span class="p">,</span> <span class="n">inBox2</span><span class="o">=</span><span class="n">lItemBox</span><span class="p">)</span><span class="o">==</span><span class="kc">True</span><span class="p">:</span> <span class="n">lResult</span> <span class="o">=</span> <span class="kc">False</span>
<span class="k">elif</span> <span class="p">(</span><span class="s2">&quot;LU&quot;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">lItemRuleStr</span><span class="p">)</span> <span class="ow">and</span> <span class="n">BoxOverlay</span><span class="p">(</span><span class="n">inBox1</span><span class="o">=</span><span class="n">inBox</span><span class="p">,</span> <span class="n">inBox2</span><span class="o">=</span><span class="n">lAnchorLUBox</span><span class="p">)</span><span class="o">==</span><span class="kc">True</span><span class="p">:</span> <span class="n">lResult</span> <span class="o">=</span> <span class="kc">False</span>
<span class="k">elif</span> <span class="p">(</span><span class="s2">&quot;RU&quot;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">lItemRuleStr</span><span class="p">)</span> <span class="ow">and</span> <span class="n">BoxOverlay</span><span class="p">(</span><span class="n">inBox1</span><span class="o">=</span><span class="n">inBox</span><span class="p">,</span> <span class="n">inBox2</span><span class="o">=</span><span class="n">lAnchorRUBox</span><span class="p">)</span><span class="o">==</span><span class="kc">True</span><span class="p">:</span> <span class="n">lResult</span> <span class="o">=</span> <span class="kc">False</span>
<span class="k">elif</span> <span class="p">(</span><span class="s2">&quot;CU&quot;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">lItemRuleStr</span><span class="p">)</span> <span class="ow">and</span> <span class="n">BoxOverlay</span><span class="p">(</span><span class="n">inBox1</span><span class="o">=</span><span class="n">inBox</span><span class="p">,</span> <span class="n">inBox2</span><span class="o">=</span><span class="n">lAnchorCUBox</span><span class="p">)</span><span class="o">==</span><span class="kc">True</span><span class="p">:</span> <span class="n">lResult</span> <span class="o">=</span> <span class="kc">False</span>
<span class="k">elif</span> <span class="p">(</span><span class="s2">&quot;LC&quot;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">lItemRuleStr</span><span class="p">)</span> <span class="ow">and</span> <span class="n">BoxOverlay</span><span class="p">(</span><span class="n">inBox1</span><span class="o">=</span><span class="n">inBox</span><span class="p">,</span> <span class="n">inBox2</span><span class="o">=</span><span class="n">lAnchorLCBox</span><span class="p">)</span><span class="o">==</span><span class="kc">True</span><span class="p">:</span> <span class="n">lResult</span> <span class="o">=</span> <span class="kc">False</span>
<span class="k">elif</span> <span class="p">(</span><span class="s2">&quot;RC&quot;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">lItemRuleStr</span><span class="p">)</span> <span class="ow">and</span> <span class="n">BoxOverlay</span><span class="p">(</span><span class="n">inBox1</span><span class="o">=</span><span class="n">inBox</span><span class="p">,</span> <span class="n">inBox2</span><span class="o">=</span><span class="n">lAnchorRCBox</span><span class="p">)</span><span class="o">==</span><span class="kc">True</span><span class="p">:</span> <span class="n">lResult</span> <span class="o">=</span> <span class="kc">False</span>
<span class="k">elif</span> <span class="p">(</span><span class="s2">&quot;LD&quot;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">lItemRuleStr</span><span class="p">)</span> <span class="ow">and</span> <span class="n">BoxOverlay</span><span class="p">(</span><span class="n">inBox1</span><span class="o">=</span><span class="n">inBox</span><span class="p">,</span> <span class="n">inBox2</span><span class="o">=</span><span class="n">lAnchorLDBox</span><span class="p">)</span><span class="o">==</span><span class="kc">True</span><span class="p">:</span> <span class="n">lResult</span> <span class="o">=</span> <span class="kc">False</span>
<span class="k">elif</span> <span class="p">(</span><span class="s2">&quot;RD&quot;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">lItemRuleStr</span><span class="p">)</span> <span class="ow">and</span> <span class="n">BoxOverlay</span><span class="p">(</span><span class="n">inBox1</span><span class="o">=</span><span class="n">inBox</span><span class="p">,</span> <span class="n">inBox2</span><span class="o">=</span><span class="n">lAnchorRDBox</span><span class="p">)</span><span class="o">==</span><span class="kc">True</span><span class="p">:</span> <span class="n">lResult</span> <span class="o">=</span> <span class="kc">False</span>
<span class="k">elif</span> <span class="p">(</span><span class="s2">&quot;CD&quot;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">lItemRuleStr</span><span class="p">)</span> <span class="ow">and</span> <span class="n">BoxOverlay</span><span class="p">(</span><span class="n">inBox1</span><span class="o">=</span><span class="n">inBox</span><span class="p">,</span> <span class="n">inBox2</span><span class="o">=</span><span class="n">lAnchorCDBox</span><span class="p">)</span><span class="o">==</span><span class="kc">True</span><span class="p">:</span> <span class="n">lResult</span> <span class="o">=</span> <span class="kc">False</span>
<span class="k">if</span> <span class="n">lResult</span> <span class="o">==</span> <span class="kc">False</span><span class="p">:</span> <span class="k">break</span> <span class="c1"># Остановиться, если итог False</span>
<span class="k">return</span> <span class="n">lResult</span></div>
<div class="viewcode-block" id="BoxOverlay"><a class="viewcode-back" href="../../../Robot/07_screen.html#pyOpenRPA.Robot.Screen.BoxOverlay">[документация]</a><span class="k">def</span> <span class="nf">BoxOverlay</span><span class="p">(</span><span class="n">inBox1</span><span class="p">,</span> <span class="n">inBox2</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
<span class="sd">&quot;&quot;&quot;Проверить наложение 2-х прямоугольных областей друг на друга.</span>
<span class="sd"> </span>
<span class="sd"> .. code-block:: python</span>
<span class="sd"> # Screen: Взаимодействие с экраном</span>
<span class="sd"> from pyOpenRPA.Robot import Screen</span>
<span class="sd"> lBox1 = Screen.BoxCreate(inTopInt=10, inLeftInt=10, inHeightInt=100, inWidthInt=1000)</span>
<span class="sd"> lBox2 = Screen.BoxCreate(inTopInt=160, inLeftInt=160, inHeightInt=100, inWidthInt=100)</span>
<span class="sd"> Screen.BoxDraw([lBox1, lBox2])</span>
<span class="sd"> Screen.BoxOverlay(lBox1,lBox2)</span>
<span class="sd"> :param inBox1: Экземпляр класса прямоугольной области Box</span>
<span class="sd"> :type inBox1: pyscreeze.Box</span>
<span class="sd"> :param inBox2: Экземпляр класса прямоугольной области Box</span>
<span class="sd"> :type inBox2: pyscreeze.Box</span>
<span class="sd"> :return: True - inBox1 наложен на inBox2</span>
<span class="sd"> :rtype: bool</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">return</span> <span class="ow">not</span> <span class="p">((</span><span class="n">inBox1</span><span class="o">.</span><span class="n">left</span><span class="o">&gt;</span><span class="n">inBox2</span><span class="o">.</span><span class="n">left</span> <span class="o">+</span> <span class="n">inBox2</span><span class="o">.</span><span class="n">width</span> <span class="ow">or</span> <span class="n">inBox2</span><span class="o">.</span><span class="n">left</span><span class="o">&gt;</span><span class="n">inBox1</span><span class="o">.</span><span class="n">left</span> <span class="o">+</span> <span class="n">inBox1</span><span class="o">.</span><span class="n">width</span><span class="p">)</span> <span class="ow">or</span> <span class="p">(</span><span class="n">inBox1</span><span class="o">.</span><span class="n">top</span><span class="o">&gt;</span><span class="n">inBox2</span><span class="o">.</span><span class="n">top</span> <span class="o">+</span> <span class="n">inBox2</span><span class="o">.</span><span class="n">height</span> <span class="ow">or</span> <span class="n">inBox2</span><span class="o">.</span><span class="n">top</span><span class="o">&gt;</span><span class="n">inBox1</span><span class="o">.</span><span class="n">top</span> <span class="o">+</span> <span class="n">inBox1</span><span class="o">.</span><span class="n">height</span><span class="p">))</span></div>
<span class="kn">import</span> <span class="nn">re</span>
<div class="viewcode-block" id="BoxGetPoint"><a class="viewcode-back" href="../../../Robot/07_screen.html#pyOpenRPA.Robot.Screen.BoxGetPoint">[документация]</a><span class="k">def</span> <span class="nf">BoxGetPoint</span><span class="p">(</span><span class="n">inBox</span><span class="p">,</span> <span class="n">inPointRuleStr</span><span class="o">=</span><span class="s2">&quot;CC&quot;</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">pyscreeze</span><span class="o">.</span><span class="n">Point</span><span class="p">:</span>
<span class="sd">&quot;&quot;&quot;Получить точку pyscreeze.Point по заданной прямоугольной области pyscreeze.Box и строковому параметру расположения inPointRuleStr.</span>
<span class="sd"> .. code-block:: python</span>
<span class="sd"> # Screen: Взаимодействие с мышью объектами экрана</span>
<span class="sd"> from pyOpenRPA.Robot import Screen</span>
<span class="sd"> lBox1 = Screen.BoxCreate(inTopInt=10, inLeftInt=10, inHeightInt=100, inWidthInt=1000)</span>
<span class="sd"> lPoint = Screen.BoxGetPoint(inBox=lBox1, inPointRuleStr=&quot;LC&quot;)</span>
<span class="sd"> :param inBox: Прямоугольная область на экране</span>
<span class="sd"> :type inBox: pyscreeze.Box, обязательный</span>
<span class="sd"> :param inPointRuleStr: Правило идентификации точки на прямоугольной области (правила формирования см. выше). Варианты: &quot;LU&quot;,&quot;CU&quot;,&quot;RU&quot;,&quot;LC&quot;,&quot;CC&quot;,&quot;RC&quot;,&quot;LD&quot;,&quot;CD&quot;,&quot;RD&quot;. По умолчанию &quot;CC&quot;</span>
<span class="sd"> :type inPointRuleStr: str, опциональный</span>
<span class="sd"> :return: Точка на экране</span>
<span class="sd"> :rtype: pyscreeze.Point</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">lPoint</span> <span class="o">=</span> <span class="kc">None</span>
<span class="n">inPointRuleStr</span> <span class="o">=</span> <span class="n">inPointRuleStr</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span>
<span class="k">if</span> <span class="s2">&quot;CC&quot;</span> <span class="ow">in</span> <span class="n">inPointRuleStr</span><span class="p">:</span> <span class="n">lPoint</span> <span class="o">=</span> <span class="n">pyscreeze</span><span class="o">.</span><span class="n">Point</span><span class="p">(</span><span class="n">x</span><span class="o">=</span><span class="n">inBox</span><span class="o">.</span><span class="n">left</span> <span class="o">+</span> <span class="n">inBox</span><span class="o">.</span><span class="n">width</span><span class="o">/</span><span class="mi">2</span><span class="p">,</span><span class="n">y</span><span class="o">=</span><span class="n">inBox</span><span class="o">.</span><span class="n">top</span> <span class="o">+</span> <span class="n">inBox</span><span class="o">.</span><span class="n">height</span><span class="o">/</span><span class="mi">2</span><span class="p">)</span>
<span class="k">elif</span> <span class="s2">&quot;LU&quot;</span> <span class="ow">in</span> <span class="n">inPointRuleStr</span><span class="p">:</span> <span class="n">lPoint</span> <span class="o">=</span> <span class="n">pyscreeze</span><span class="o">.</span><span class="n">Point</span><span class="p">(</span><span class="n">x</span><span class="o">=</span><span class="n">inBox</span><span class="o">.</span><span class="n">left</span><span class="p">,</span><span class="n">y</span><span class="o">=</span><span class="n">inBox</span><span class="o">.</span><span class="n">top</span><span class="p">)</span>
<span class="k">elif</span> <span class="s2">&quot;RU&quot;</span> <span class="ow">in</span> <span class="n">inPointRuleStr</span><span class="p">:</span> <span class="n">lPoint</span> <span class="o">=</span> <span class="n">pyscreeze</span><span class="o">.</span><span class="n">Point</span><span class="p">(</span><span class="n">x</span><span class="o">=</span><span class="n">inBox</span><span class="o">.</span><span class="n">left</span> <span class="o">+</span> <span class="n">inBox</span><span class="o">.</span><span class="n">width</span><span class="p">,</span><span class="n">y</span><span class="o">=</span><span class="n">inBox</span><span class="o">.</span><span class="n">top</span><span class="p">)</span>
<span class="k">elif</span> <span class="s2">&quot;CU&quot;</span> <span class="ow">in</span> <span class="n">inPointRuleStr</span><span class="p">:</span> <span class="n">lPoint</span> <span class="o">=</span> <span class="n">pyscreeze</span><span class="o">.</span><span class="n">Point</span><span class="p">(</span><span class="n">x</span><span class="o">=</span><span class="n">inBox</span><span class="o">.</span><span class="n">left</span> <span class="o">+</span> <span class="n">inBox</span><span class="o">.</span><span class="n">width</span><span class="o">/</span><span class="mi">2</span><span class="p">,</span><span class="n">y</span><span class="o">=</span><span class="n">inBox</span><span class="o">.</span><span class="n">top</span><span class="p">)</span>
<span class="k">elif</span> <span class="s2">&quot;LC&quot;</span> <span class="ow">in</span> <span class="n">inPointRuleStr</span><span class="p">:</span> <span class="n">lPoint</span> <span class="o">=</span> <span class="n">pyscreeze</span><span class="o">.</span><span class="n">Point</span><span class="p">(</span><span class="n">x</span><span class="o">=</span><span class="n">inBox</span><span class="o">.</span><span class="n">left</span><span class="p">,</span><span class="n">y</span><span class="o">=</span><span class="n">inBox</span><span class="o">.</span><span class="n">top</span> <span class="o">+</span> <span class="n">inBox</span><span class="o">.</span><span class="n">height</span><span class="o">/</span><span class="mi">2</span><span class="p">)</span>
<span class="k">elif</span> <span class="s2">&quot;RC&quot;</span> <span class="ow">in</span> <span class="n">inPointRuleStr</span><span class="p">:</span> <span class="n">lPoint</span> <span class="o">=</span> <span class="n">pyscreeze</span><span class="o">.</span><span class="n">Point</span><span class="p">(</span><span class="n">x</span><span class="o">=</span><span class="n">inBox</span><span class="o">.</span><span class="n">left</span> <span class="o">+</span> <span class="n">inBox</span><span class="o">.</span><span class="n">width</span><span class="p">,</span><span class="n">y</span><span class="o">=</span><span class="n">inBox</span><span class="o">.</span><span class="n">top</span> <span class="o">+</span> <span class="n">inBox</span><span class="o">.</span><span class="n">height</span><span class="o">/</span><span class="mi">2</span><span class="p">)</span>
<span class="k">elif</span> <span class="s2">&quot;LD&quot;</span> <span class="ow">in</span> <span class="n">inPointRuleStr</span><span class="p">:</span> <span class="n">lPoint</span> <span class="o">=</span> <span class="n">pyscreeze</span><span class="o">.</span><span class="n">Point</span><span class="p">(</span><span class="n">x</span><span class="o">=</span><span class="n">inBox</span><span class="o">.</span><span class="n">left</span><span class="p">,</span><span class="n">y</span><span class="o">=</span><span class="n">inBox</span><span class="o">.</span><span class="n">top</span> <span class="o">+</span> <span class="n">inBox</span><span class="o">.</span><span class="n">height</span><span class="p">)</span>
<span class="k">elif</span> <span class="s2">&quot;CD&quot;</span> <span class="ow">in</span> <span class="n">inPointRuleStr</span><span class="p">:</span> <span class="n">lPoint</span> <span class="o">=</span> <span class="n">pyscreeze</span><span class="o">.</span><span class="n">Point</span><span class="p">(</span><span class="n">x</span><span class="o">=</span><span class="n">inBox</span><span class="o">.</span><span class="n">left</span> <span class="o">+</span> <span class="n">inBox</span><span class="o">.</span><span class="n">width</span><span class="o">/</span><span class="mi">2</span><span class="p">,</span><span class="n">y</span><span class="o">=</span><span class="n">inBox</span><span class="o">.</span><span class="n">top</span> <span class="o">+</span> <span class="n">inBox</span><span class="o">.</span><span class="n">height</span><span class="p">)</span>
<span class="k">elif</span> <span class="s2">&quot;RD&quot;</span> <span class="ow">in</span> <span class="n">inPointRuleStr</span><span class="p">:</span> <span class="n">lPoint</span> <span class="o">=</span> <span class="n">pyscreeze</span><span class="o">.</span><span class="n">Point</span><span class="p">(</span><span class="n">x</span><span class="o">=</span><span class="n">inBox</span><span class="o">.</span><span class="n">left</span> <span class="o">+</span> <span class="n">inBox</span><span class="o">.</span><span class="n">width</span><span class="p">,</span><span class="n">y</span><span class="o">=</span><span class="n">inBox</span><span class="o">.</span><span class="n">top</span> <span class="o">+</span> <span class="n">inBox</span><span class="o">.</span><span class="n">height</span><span class="p">)</span>
<span class="c1"># Корректировка при необходимости</span>
<span class="n">lDXInt</span><span class="o">=</span><span class="mi">0</span>
<span class="n">lDYInt</span><span class="o">=</span><span class="mi">0</span>
<span class="n">lMatchY</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">search</span><span class="p">(</span><span class="sa">r</span><span class="s1">&#39;.*Y([-+]?\d*).*&#39;</span><span class="p">,</span> <span class="n">inPointRuleStr</span><span class="p">)</span>
<span class="k">if</span> <span class="n">lMatchY</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> <span class="n">lDYInt</span><span class="o">=</span><span class="nb">int</span><span class="p">(</span><span class="n">lMatchY</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">1</span><span class="p">))</span>
<span class="n">lMatchX</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">search</span><span class="p">(</span><span class="sa">r</span><span class="s1">&#39;.*X([-+]?\d*).*&#39;</span><span class="p">,</span> <span class="n">inPointRuleStr</span><span class="p">)</span>
<span class="k">if</span> <span class="n">lMatchX</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> <span class="n">lDXInt</span><span class="o">=</span><span class="nb">int</span><span class="p">(</span><span class="n">lMatchX</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">1</span><span class="p">))</span>
<span class="n">lPoint</span> <span class="o">=</span> <span class="n">PointModify</span><span class="p">(</span><span class="n">inPoint</span><span class="o">=</span><span class="n">lPoint</span><span class="p">,</span><span class="n">inDXInt</span><span class="o">=</span><span class="n">lDXInt</span><span class="p">,</span><span class="n">inDYInt</span><span class="o">=</span><span class="n">lDYInt</span><span class="p">)</span>
<span class="k">return</span> <span class="n">lPoint</span></div>
<div class="viewcode-block" id="PointModify"><a class="viewcode-back" href="../../../Robot/07_screen.html#pyOpenRPA.Robot.Screen.PointModify">[документация]</a><span class="k">def</span> <span class="nf">PointModify</span><span class="p">(</span><span class="n">inPoint</span><span class="p">,</span> <span class="n">inDXInt</span><span class="p">,</span> <span class="n">inDYInt</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">pyscreeze</span><span class="o">.</span><span class="n">Point</span><span class="p">:</span>
<span class="sd">&quot;&quot;&quot;Скорректировать точку pyscreeze.Point.</span>
<span class="sd"> .. code-block:: python</span>
<span class="sd"> # Screen: Взаимодействие с мышью объектами экрана</span>
<span class="sd"> from pyOpenRPA.Robot import Screen</span>
<span class="sd"> lPoint = Screen.PointCreate(inXInt=10, inYInt=10)</span>
<span class="sd"> lPoint = Screen.PointModify(inPoint=lPoint, inDXInt=90, inDYInt=10)</span>
<span class="sd"> :param inPoint: Точка на экране, по которой выполнить нажатие мыши</span>
<span class="sd"> :type inPoint: pyscreeze.Point, обязательный</span>
<span class="sd"> :param inDXInt: Смещение указателя мыши по оси X (горизонтальная ось). </span>
<span class="sd"> :type inDXInt: int, опциональный</span>
<span class="sd"> :param inDYInt: Смещение указателя мыши по оси Y (вертикальная ось). </span>
<span class="sd"> :type inDYInt: int, опциональный</span>
<span class="sd"> :return: Точка на экране</span>
<span class="sd"> :rtype: pyscreeze.Point</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">return</span> <span class="n">PointCreate</span><span class="p">(</span><span class="n">inXInt</span><span class="o">=</span><span class="n">inPoint</span><span class="o">.</span><span class="n">x</span><span class="o">+</span><span class="n">inDXInt</span><span class="p">,</span> <span class="n">inYInt</span><span class="o">=</span><span class="n">inPoint</span><span class="o">.</span><span class="n">y</span><span class="o">+</span><span class="n">inDYInt</span><span class="p">)</span></div>
<div class="viewcode-block" id="PointCreate"><a class="viewcode-back" href="../../../Robot/07_screen.html#pyOpenRPA.Robot.Screen.PointCreate">[документация]</a><span class="k">def</span> <span class="nf">PointCreate</span><span class="p">(</span><span class="n">inXInt</span><span class="p">,</span> <span class="n">inYInt</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Создать точку pyscreeze.Point.</span>
<span class="sd"> .. code-block:: python</span>
<span class="sd"> # Screen: Взаимодействие с мышью объектами экрана</span>
<span class="sd"> from pyOpenRPA.Robot import Screen</span>
<span class="sd"> lPoint = Screen.PointCreate(inXInt=10, inYInt=10)</span>
<span class="sd"> :param inXInt: Смещение указателя мыши по оси X (горизонтальная ось). </span>
<span class="sd"> :type inXInt: int, опциональный</span>
<span class="sd"> :param inYInt: Смещение указателя мыши по оси Y (вертикальная ось). </span>
<span class="sd"> :type inYInt: int, опциональный</span>
<span class="sd"> :return: Точка на экране</span>
<span class="sd"> :rtype: pyscreeze.Point</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">return</span> <span class="n">pyscreeze</span><span class="o">.</span><span class="n">Point</span><span class="p">(</span><span class="n">x</span><span class="o">=</span><span class="n">inXInt</span><span class="p">,</span><span class="n">y</span><span class="o">=</span><span class="n">inYInt</span><span class="p">)</span></div>
<div class="viewcode-block" id="PointClick"><a class="viewcode-back" href="../../../Robot/07_screen.html#pyOpenRPA.Robot.Screen.PointClick">[документация]</a><span class="k">def</span> <span class="nf">PointClick</span><span class="p">(</span><span class="n">inPoint</span><span class="p">:</span><span class="n">pyscreeze</span><span class="o">.</span><span class="n">Point</span><span class="p">,</span> <span class="n">inClickCountInt</span><span class="p">:</span><span class="nb">int</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">inIntervalSecFloat</span><span class="p">:</span><span class="nb">float</span><span class="o">=</span><span class="mf">0.0</span><span class="p">,</span> <span class="n">inButtonStr</span><span class="p">:</span><span class="nb">str</span><span class="o">=</span><span class="s1">&#39;left&#39;</span><span class="p">,</span> <span class="n">inMoveDurationSecFloat</span><span class="p">:</span><span class="nb">float</span><span class="o">=</span><span class="mf">0.0</span><span class="p">,</span> <span class="n">inWaitAfterSecFloat</span><span class="p">:</span><span class="nb">float</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Нажатие (вниз) кнопки мыши и затем немедленно выпуск (вверх) её. Допускается следующая параметризация.</span>
<span class="sd"> .. code-block:: python</span>
<span class="sd"> # Screen: Взаимодействие с мышью объектами экрана</span>
<span class="sd"> from pyOpenRPA.Robot import Screen</span>
<span class="sd"> lPoint = Screen.PointCreate(100,150)</span>
<span class="sd"> Screen.PointClick(lPoint) #Выполнить нажатие левой клавиши мыши</span>
<span class="sd"> :param inPoint: Точка на экране, по которой выполнить нажатие мыши</span>
<span class="sd"> :type inPoint: pyscreeze.Point, обязательный</span>
<span class="sd"> :param inClickCountInt: Количество нажатий (вниз и вверх) кнопкой мыши, По умолчанию 1</span>
<span class="sd"> :type inClickCountInt: int, опциональный</span>
<span class="sd"> :param inIntervalSecFloat: Интервал ожидания в секундах между нажатиями, По умолчанию 0.0</span>
<span class="sd"> :type inIntervalSecFloat: float, опциональный </span>
<span class="sd"> :param inButtonStr: Номер кнопки, которую требуется нажать. Возможные варианты: &#39;left&#39;, &#39;middle&#39;, &#39;right&#39; или 1, 2, 3. В остальных случаях инициирует исключение ValueError. По умолчанию &#39;left&#39;</span>
<span class="sd"> :type inButtonStr: str, опциональный</span>
<span class="sd"> :param inMoveDurationSecFloat: Время перемещения указателя мыши, По умолчанию 0.0 (моментальное перемещение)</span>
<span class="sd"> :type inMoveDurationSecFloat: float, опциональный</span>
<span class="sd"> :param inWaitAfterSecFloat: Количество секунд, которые ожидать после выполнения операции. По умолчанию установлено в настройках модуля Mouse (базовое значение 0.4)</span>
<span class="sd"> :type inWaitAfterSecFloat: float, опциональный</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">Mouse</span><span class="o">.</span><span class="n">Click</span><span class="p">(</span><span class="n">inXInt</span><span class="o">=</span><span class="n">inPoint</span><span class="o">.</span><span class="n">x</span><span class="p">,</span> <span class="n">inYInt</span><span class="o">=</span><span class="n">inPoint</span><span class="o">.</span><span class="n">y</span><span class="p">,</span> <span class="n">inClickCountInt</span><span class="o">=</span><span class="n">inClickCountInt</span><span class="p">,</span> <span class="n">inIntervalSecFloat</span><span class="o">=</span><span class="n">inIntervalSecFloat</span><span class="p">,</span> <span class="n">inButtonStr</span><span class="o">=</span><span class="n">inButtonStr</span><span class="p">,</span> <span class="n">inMoveDurationSecFloat</span><span class="o">=</span><span class="n">inMoveDurationSecFloat</span><span class="p">,</span> <span class="n">inWaitAfterSecFloat</span><span class="o">=</span><span class="n">inWaitAfterSecFloat</span><span class="p">)</span></div>
<div class="viewcode-block" id="PointClickDouble"><a class="viewcode-back" href="../../../Robot/07_screen.html#pyOpenRPA.Robot.Screen.PointClickDouble">[документация]</a><span class="k">def</span> <span class="nf">PointClickDouble</span><span class="p">(</span><span class="n">inPoint</span><span class="p">:</span><span class="n">pyscreeze</span><span class="o">.</span><span class="n">Point</span><span class="p">,</span> <span class="n">inWaitAfterSecFloat</span><span class="p">:</span><span class="nb">float</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Двойное нажатие левой клавиши мыши. Данное действие аналогично вызову функции (см. ниже).</span>
<span class="sd"> .. code-block:: python</span>
<span class="sd"> # Screen: Взаимодействие с мышью объектами экрана</span>
<span class="sd"> from pyOpenRPA.Robot import Screen</span>
<span class="sd"> lPoint = Screen.PointCreate(100,150)</span>
<span class="sd"> Screen.PointClickDouble(lPoint) #Выполнить двойное нажатие левой клавиши мыши</span>
<span class="sd"> :param inPoint: Точка на экране, по которой выполнить нажатие мыши</span>
<span class="sd"> :type inPoint: pyscreeze.Point, обязательный</span>
<span class="sd"> :param inWaitAfterSecFloat: Количество секунд, которые ожидать после выполнения операции. По умолчанию установлено в настройках модуля Mouse (базовое значение 0.4)</span>
<span class="sd"> :type inWaitAfterSecFloat: float, опциональный</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">Mouse</span><span class="o">.</span><span class="n">ClickDouble</span><span class="p">(</span><span class="n">inXInt</span><span class="o">=</span><span class="n">inPoint</span><span class="o">.</span><span class="n">x</span><span class="p">,</span> <span class="n">inYInt</span><span class="o">=</span><span class="n">inPoint</span><span class="o">.</span><span class="n">y</span><span class="p">,</span> <span class="n">inWaitAfterSecFloat</span><span class="o">=</span><span class="n">inWaitAfterSecFloat</span><span class="p">)</span></div>
<div class="viewcode-block" id="PointDown"><a class="viewcode-back" href="../../../Robot/07_screen.html#pyOpenRPA.Robot.Screen.PointDown">[документация]</a><span class="k">def</span> <span class="nf">PointDown</span><span class="p">(</span><span class="n">inPoint</span><span class="p">:</span><span class="n">pyscreeze</span><span class="o">.</span><span class="n">Point</span><span class="p">,</span> <span class="n">inButtonStr</span><span class="p">:</span><span class="nb">str</span><span class="o">=</span><span class="s1">&#39;left&#39;</span><span class="p">,</span> <span class="n">inWaitAfterSecFloat</span><span class="p">:</span><span class="nb">float</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Переместить указатель по координатам inPoint, после чего нажать (вниз) клавишу мыши и не отпускать до выполнения соответсвующей команды (см. Up). </span>
<span class="sd"> .. code-block:: python</span>
<span class="sd"> # Screen: Взаимодействие с мышью объектами экрана</span>
<span class="sd"> from pyOpenRPA.Robot import Screen</span>
<span class="sd"> lPoint = Screen.PointCreate(100,150)</span>
<span class="sd"> Screen.PointDown(lPoint)</span>
<span class="sd"> :param inPoint: Точка на экране, по которой выполнить нажатие мыши</span>
<span class="sd"> :type inPoint: pyscreeze.Point, обязательный</span>
<span class="sd"> :param inButtonStr: Номер кнопки, которую требуется нажать. Возможные варианты: &#39;left&#39;, &#39;middle&#39;, &#39;right&#39; или 1, 2, 3. В остальных случаях инициирует исключение ValueError. По умолчанию &#39;left&#39;</span>
<span class="sd"> :type inButtonStr: str, опциональный</span>
<span class="sd"> :param inWaitAfterSecFloat: Количество секунд, которые ожидать после выполнения операции. По умолчанию установлено в настройках модуля Mouse (базовое значение 0.4)</span>
<span class="sd"> :type inWaitAfterSecFloat: float, опциональный</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">Mouse</span><span class="o">.</span><span class="n">Down</span><span class="p">(</span><span class="n">inXInt</span><span class="o">=</span><span class="n">inPoint</span><span class="o">.</span><span class="n">x</span><span class="p">,</span> <span class="n">inYInt</span><span class="o">=</span><span class="n">inPoint</span><span class="o">.</span><span class="n">y</span><span class="p">,</span><span class="n">inButtonStr</span><span class="o">=</span><span class="n">inButtonStr</span><span class="p">,</span> <span class="n">inWaitAfterSecFloat</span><span class="o">=</span><span class="n">inWaitAfterSecFloat</span><span class="p">)</span></div>
<div class="viewcode-block" id="PointUp"><a class="viewcode-back" href="../../../Robot/07_screen.html#pyOpenRPA.Robot.Screen.PointUp">[документация]</a><span class="k">def</span> <span class="nf">PointUp</span><span class="p">(</span><span class="n">inPoint</span><span class="p">:</span><span class="n">pyscreeze</span><span class="o">.</span><span class="n">Point</span><span class="p">,</span> <span class="n">inButtonStr</span><span class="p">:</span><span class="nb">str</span><span class="o">=</span><span class="s1">&#39;left&#39;</span><span class="p">,</span> <span class="n">inWaitAfterSecFloat</span><span class="p">:</span><span class="nb">float</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Отпустить (вверх) клавишу мыши.</span>
<span class="sd"> .. code-block:: python</span>
<span class="sd"> # Screen: Взаимодействие с мышью объектами экрана</span>
<span class="sd"> from pyOpenRPA.Robot import Screen</span>
<span class="sd"> lPoint = Screen.PointCreate(100,150)</span>
<span class="sd"> Screen.PointUp(lPoint)</span>
<span class="sd"> :param inPoint: Точка на экране, по которой выполнить нажатие мыши</span>
<span class="sd"> :type inPoint: pyscreeze.Point, обязательный</span>
<span class="sd"> :param inButtonStr: Номер кнопки, которую требуется поднять. Возможные варианты: &#39;left&#39;, &#39;middle&#39;, &#39;right&#39; или 1, 2, 3. В остальных случаях инициирует исключение ValueError. По умолчанию &#39;left&#39;</span>
<span class="sd"> :type inButtonStr: str, опциональный</span>
<span class="sd"> :param inWaitAfterSecFloat: Количество секунд, которые ожидать после выполнения операции. По умолчанию установлено в настройках модуля Mouse (базовое значение 0.4)</span>
<span class="sd"> :type inWaitAfterSecFloat: float, опциональный</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">Mouse</span><span class="o">.</span><span class="n">Up</span><span class="p">(</span><span class="n">inXInt</span><span class="o">=</span><span class="n">inPoint</span><span class="o">.</span><span class="n">x</span><span class="p">,</span> <span class="n">inYInt</span><span class="o">=</span><span class="n">inPoint</span><span class="o">.</span><span class="n">y</span><span class="p">,</span><span class="n">inButtonStr</span><span class="o">=</span><span class="n">inButtonStr</span><span class="p">,</span> <span class="n">inWaitAfterSecFloat</span><span class="o">=</span><span class="n">inWaitAfterSecFloat</span><span class="p">)</span></div>
<div class="viewcode-block" id="PointMoveTo"><a class="viewcode-back" href="../../../Robot/07_screen.html#pyOpenRPA.Robot.Screen.PointMoveTo">[документация]</a><span class="k">def</span> <span class="nf">PointMoveTo</span><span class="p">(</span><span class="n">inPoint</span><span class="p">:</span><span class="n">pyscreeze</span><span class="o">.</span><span class="n">Point</span><span class="p">,</span> <span class="n">inWaitAfterSecFloat</span><span class="p">:</span><span class="nb">float</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Переместить указатель мыши на позицию inXInt, inYInt за время inMoveDurationSecFloat.</span>
<span class="sd"> !ВНИМАНИЕ! Отсчет координат inXInt, inYInt начинается с левого верхнего края рабочей области (экрана).</span>
<span class="sd"> .. code-block:: python</span>
<span class="sd"> # Screen: Взаимодействие с мышью объектами экрана</span>
<span class="sd"> from pyOpenRPA.Robot import Screen</span>
<span class="sd"> lPoint = Screen.PointCreate(100,150)</span>
<span class="sd"> Screen.PointMoveTo(inXInt=100, inYInt=200)</span>
<span class="sd"> :param inPoint: Точка на экране, по которой выполнить нажатие мыши</span>
<span class="sd"> :type inPoint: pyscreeze.Point, обязательный</span>
<span class="sd"> :param inWaitAfterSecFloat: Количество секунд, которые ожидать после выполнения операции. По умолчанию установлено в настройках модуля Mouse (базовое значение 0.4)</span>
<span class="sd"> :type inWaitAfterSecFloat: float, опциональный</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">Mouse</span><span class="o">.</span><span class="n">MoveTo</span><span class="p">(</span><span class="n">inXInt</span><span class="o">=</span><span class="n">inPoint</span><span class="o">.</span><span class="n">x</span><span class="p">,</span> <span class="n">inYInt</span><span class="o">=</span><span class="n">inPoint</span><span class="o">.</span><span class="n">y</span><span class="p">,</span> <span class="n">inWaitAfterSecFloat</span><span class="o">=</span><span class="n">inWaitAfterSecFloat</span><span class="p">)</span></div>
<div class="viewcode-block" id="ImageLocateAll"><a class="viewcode-back" href="../../../Robot/07_screen.html#pyOpenRPA.Robot.Screen.ImageLocateAll">[документация]</a><span class="k">def</span> <span class="nf">ImageLocateAll</span><span class="p">(</span><span class="n">inImgPathStr</span><span class="p">:</span><span class="nb">str</span><span class="p">,</span> <span class="n">inIsGrayModeBool</span><span class="p">:</span><span class="nb">bool</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">inConfidenceFloat</span><span class="p">:</span><span class="nb">float</span><span class="o">=</span><span class="mf">1.0</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">list</span><span class="p">:</span>
<span class="sd">&quot;&quot;&quot;Искать на экране графические объекты, которые похожи на inImgPathStr. Вернуть список прямоугольных областей на экране (pyscreeze.Box)</span>
<span class="sd"> .. code-block:: python</span>
<span class="sd"> # Screen: Взаимодействие с объектами экрана</span>
<span class="sd"> from pyOpenRPA.Robot import Screen</span>
<span class="sd"> Screen.ImageLocateAll(inImgPathStr=&quot;Button.png&quot;,inConfidenceFloat=0.9)</span>
<span class="sd"> :param inImgPathStr: Путь к изображению, которое требуется искать на экране</span>
<span class="sd"> :type inImgPathStr: str, относительный или абсолютный</span>
<span class="sd"> :param inIsGrayModeBool: True - выполнить поиск изображения в режиме серых оттенков (ускоряет производительность, если допускается искажение цвета). По умолчанию False</span>
<span class="sd"> :type inIsGrayModeBool: bool, опционально</span>
<span class="sd"> :param inConfidenceFloat: Показатель точности. 1.0 - идентичное соответствие, 0.0 - полное несоответствие. По умолчанию 1.0</span>
<span class="sd"> :type inConfidenceFloat: float, опционально</span>
<span class="sd"> :return: Список из pyscreeze.Box</span>
<span class="sd"> :rtype: list</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">lResult</span> <span class="o">=</span> <span class="p">[]</span>
<span class="k">for</span> <span class="n">lItem</span> <span class="ow">in</span> <span class="n">pyautogui</span><span class="o">.</span><span class="n">locateAllOnScreen</span><span class="p">(</span><span class="n">image</span> <span class="o">=</span> <span class="n">inImgPathStr</span><span class="p">,</span> <span class="n">grayscale</span> <span class="o">=</span> <span class="n">inIsGrayModeBool</span><span class="p">,</span> <span class="n">confidence</span> <span class="o">=</span> <span class="n">inConfidenceFloat</span><span class="p">):</span>
<span class="n">lResult</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">lItem</span><span class="p">)</span>
<span class="k">return</span> <span class="n">lResult</span></div>
<div class="viewcode-block" id="ImageExists"><a class="viewcode-back" href="../../../Robot/07_screen.html#pyOpenRPA.Robot.Screen.ImageExists">[документация]</a><span class="k">def</span> <span class="nf">ImageExists</span><span class="p">(</span><span class="n">inImgPathStr</span><span class="p">:</span><span class="nb">str</span><span class="p">,</span> <span class="n">inIsGrayModeBool</span><span class="p">:</span><span class="nb">bool</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">inConfidenceFloat</span><span class="p">:</span><span class="nb">float</span><span class="o">=</span><span class="mf">1.0</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">list</span><span class="p">:</span>
<span class="sd">&quot;&quot;&quot;Проверить, имеется ли на экране хотя бы один подходящий объект. Вернуть булево значение</span>
<span class="sd"> .. code-block:: python</span>
<span class="sd"> # Screen: Взаимодействие с объектами экрана</span>
<span class="sd"> from pyOpenRPA.Robot import Screen</span>
<span class="sd"> lResult = Screen.ImageExists(inImgPathStr=&quot;Button.png&quot;,inConfidenceFloat=0.9)</span>
<span class="sd"> :param inImgPathStr: Путь к изображению, которое требуется искать на экране</span>
<span class="sd"> :type inImgPathStr: str, относительный или абсолютный</span>
<span class="sd"> :param inIsGrayModeBool: True - выполнить поиск изображения в режиме серых оттенков (ускоряет производительность, если допускается искажение цвета). По умолчанию False</span>
<span class="sd"> :type inIsGrayModeBool: bool, опционально</span>
<span class="sd"> :param inConfidenceFloat: Показатель точности. 1.0 - идентичное соответствие, 0.0 - полное несоответствие. По умолчанию 1.0</span>
<span class="sd"> :type inConfidenceFloat: float, опционально</span>
<span class="sd"> :return: Список из pyscreeze.Box</span>
<span class="sd"> :rtype: list</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">return</span> <span class="nb">len</span><span class="p">(</span><span class="n">ImageLocateAll</span><span class="p">(</span><span class="n">inImgPathStr</span><span class="o">=</span><span class="n">inImgPathStr</span><span class="p">,</span><span class="n">inIsGrayModeBool</span><span class="o">=</span><span class="n">inIsGrayModeBool</span><span class="p">,</span> <span class="n">inConfidenceFloat</span><span class="o">=</span><span class="n">inConfidenceFloat</span><span class="p">))</span><span class="o">&gt;</span><span class="mi">0</span></div>
<div class="viewcode-block" id="ImageWaitAppear"><a class="viewcode-back" href="../../../Robot/07_screen.html#pyOpenRPA.Robot.Screen.ImageWaitAppear">[документация]</a><span class="k">def</span> <span class="nf">ImageWaitAppear</span><span class="p">(</span><span class="n">inImgPathStr</span><span class="p">:</span><span class="nb">str</span><span class="p">,</span> <span class="n">inWaitSecFloat</span><span class="p">:</span><span class="nb">float</span><span class="o">=</span><span class="n">IMAGE_WAIT_SEC_FLOAT</span><span class="p">,</span> <span class="n">inWaitIntervalSecFloat</span><span class="p">:</span><span class="nb">float</span> <span class="o">=</span> <span class="n">IMAGE_WAIT_INTERVAL_SEC_FLOAT</span><span class="p">,</span> <span class="n">inIsGrayModeBool</span><span class="p">:</span><span class="nb">bool</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">inConfidenceFloat</span><span class="p">:</span><span class="nb">float</span><span class="o">=</span><span class="mf">1.0</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">list</span><span class="p">:</span>
<span class="sd">&quot;&quot;&quot;Ожидать появление изображения на протяжении inWaitSecFloat секунд. Проверять с периодичностью inWaitIntervalSecFloat. Вернуть список прямоугольных областей, которые удовлетворяют условию</span>
<span class="sd"> .. code-block:: python</span>
<span class="sd"> # Screen: Взаимодействие с объектами экрана</span>
<span class="sd"> from pyOpenRPA.Robot import Screen</span>
<span class="sd"> lBoxList = Screen.ImageWaitAppear(inImgPathStr=&quot;Button.png&quot;,inConfidenceFloat=0.9)</span>
<span class="sd"> :param inImgPathStr: Путь к изображению, которое требуется искать на экране</span>
<span class="sd"> :type inImgPathStr: str, относительный или абсолютный</span>
<span class="sd"> :param inWaitSecFloat: Время ожидания появления изображения в сек. По умолчанию IMAGE_WAIT_SEC_FLOAT (60)</span>
<span class="sd"> :type inWaitSecFloat: float, опциональный</span>
<span class="sd"> :param inWaitIntervalSecFloat: Интервал повторной проверки наличия изображения. По умолчанию IMAGE_WAIT_INTERVAL_SEC_FLOAT (1)</span>
<span class="sd"> :type inWaitIntervalSecFloat: float, опциональный</span>
<span class="sd"> :param inIsGrayModeBool: True - выполнить поиск изображения в режиме серых оттенков (ускоряет производительность, если допускается искажение цвета). По умолчанию False</span>
<span class="sd"> :type inIsGrayModeBool: bool, опционально</span>
<span class="sd"> :param inConfidenceFloat: Показатель точности. 1.0 - идентичное соответствие, 0.0 - полное несоответствие. По умолчанию 1.0</span>
<span class="sd"> :type inConfidenceFloat: float, опционально</span>
<span class="sd"> :return: Список из pyscreeze.Box или [] если прошло время ожидания.</span>
<span class="sd"> :rtype: list</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">lStartSecFloat</span> <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">()</span>
<span class="n">lResultList</span><span class="o">=</span><span class="p">[]</span>
<span class="k">while</span> <span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">()</span> <span class="o">-</span> <span class="n">lStartSecFloat</span> <span class="o">&lt;</span> <span class="n">inWaitSecFloat</span><span class="p">:</span>
<span class="n">lResultList</span> <span class="o">=</span> <span class="n">ImageLocateAll</span><span class="p">(</span><span class="n">inImgPathStr</span><span class="o">=</span><span class="n">inImgPathStr</span><span class="p">,</span><span class="n">inIsGrayModeBool</span><span class="o">=</span><span class="n">inIsGrayModeBool</span><span class="p">,</span> <span class="n">inConfidenceFloat</span><span class="o">=</span><span class="n">inConfidenceFloat</span><span class="p">)</span>
<span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">lResultList</span><span class="p">)</span><span class="o">&gt;</span><span class="mi">0</span><span class="p">:</span> <span class="k">break</span>
<span class="n">time</span><span class="o">.</span><span class="n">sleep</span><span class="p">(</span><span class="n">inWaitIntervalSecFloat</span><span class="p">)</span>
<span class="k">return</span> <span class="n">lResultList</span></div>
<div class="viewcode-block" id="ImageWaitDisappear"><a class="viewcode-back" href="../../../Robot/07_screen.html#pyOpenRPA.Robot.Screen.ImageWaitDisappear">[документация]</a><span class="k">def</span> <span class="nf">ImageWaitDisappear</span><span class="p">(</span><span class="n">inImgPathStr</span><span class="p">:</span><span class="nb">str</span><span class="p">,</span> <span class="n">inWaitSecFloat</span><span class="p">:</span><span class="nb">float</span><span class="o">=</span><span class="n">IMAGE_WAIT_SEC_FLOAT</span><span class="p">,</span> <span class="n">inWaitIntervalSecFloat</span><span class="p">:</span><span class="nb">float</span> <span class="o">=</span> <span class="n">IMAGE_WAIT_INTERVAL_SEC_FLOAT</span><span class="p">,</span> <span class="n">inIsGrayModeBool</span><span class="p">:</span><span class="nb">bool</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">inConfidenceFloat</span><span class="p">:</span><span class="nb">float</span><span class="o">=</span><span class="mf">1.0</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Ожидать исчезновение изображения на протяжении inWaitSecFloat секунд. Проверять с периодичностью inWaitIntervalSecFloat.</span>
<span class="sd"> .. code-block:: python</span>
<span class="sd"> # Screen: Взаимодействие с объектами экрана</span>
<span class="sd"> from pyOpenRPA.Robot import Screen</span>
<span class="sd"> Screen.ImageWaitDisappear(inImgPathStr=&quot;Button.png&quot;,inConfidenceFloat=0.9)</span>
<span class="sd"> :param inImgPathStr: Путь к изображению, которое требуется искать на экране</span>
<span class="sd"> :type inImgPathStr: str, относительный или абсолютный</span>
<span class="sd"> :param inWaitSecFloat: Время ожидания появления изображения в сек. По умолчанию IMAGE_WAIT_SEC_FLOAT (60)</span>
<span class="sd"> :type inWaitSecFloat: float, опциональный</span>
<span class="sd"> :param inWaitIntervalSecFloat: Интервал повторной проверки наличия изображения. По умолчанию IMAGE_WAIT_INTERVAL_SEC_FLOAT (1)</span>
<span class="sd"> :type inWaitIntervalSecFloat: float, опциональный</span>
<span class="sd"> :param inIsGrayModeBool: True - выполнить поиск изображения в режиме серых оттенков (ускоряет производительность, если допускается искажение цвета). По умолчанию False</span>
<span class="sd"> :type inIsGrayModeBool: bool, опционально</span>
<span class="sd"> :param inConfidenceFloat: Показатель точности. 1.0 - идентичное соответствие, 0.0 - полное несоответствие. По умолчанию 1.0</span>
<span class="sd"> :type inConfidenceFloat: float, опционально</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">lStartSecFloat</span> <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">()</span>
<span class="n">lResultList</span><span class="o">=</span><span class="p">[]</span>
<span class="k">while</span> <span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">()</span> <span class="o">-</span> <span class="n">lStartSecFloat</span> <span class="o">&lt;</span> <span class="n">inWaitSecFloat</span><span class="p">:</span>
<span class="n">lResultList</span> <span class="o">=</span> <span class="n">ImageLocateAll</span><span class="p">(</span><span class="n">inImgPathStr</span><span class="o">=</span><span class="n">inImgPathStr</span><span class="p">,</span><span class="n">inIsGrayModeBool</span><span class="o">=</span><span class="n">inIsGrayModeBool</span><span class="p">,</span> <span class="n">inConfidenceFloat</span><span class="o">=</span><span class="n">inConfidenceFloat</span><span class="p">)</span>
<span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">lResultList</span><span class="p">)</span><span class="o">==</span><span class="mi">0</span><span class="p">:</span> <span class="k">break</span>
<span class="n">time</span><span class="o">.</span><span class="n">sleep</span><span class="p">(</span><span class="n">inWaitIntervalSecFloat</span><span class="p">)</span>
<span class="k">return</span> <span class="n">lResultList</span></div>
<div class="viewcode-block" id="ImageClick"><a class="viewcode-back" href="../../../Robot/07_screen.html#pyOpenRPA.Robot.Screen.ImageClick">[документация]</a><span class="k">def</span> <span class="nf">ImageClick</span><span class="p">(</span><span class="n">inImgPathStr</span><span class="p">:</span><span class="nb">str</span><span class="p">,</span><span class="n">inBoxIndexInt</span><span class="p">:</span><span class="nb">int</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="n">inPointRuleStr</span><span class="p">:</span><span class="nb">str</span><span class="o">=</span><span class="s2">&quot;CC&quot;</span><span class="p">,</span> <span class="n">inIsGrayModeBool</span><span class="p">:</span><span class="nb">bool</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">inConfidenceFloat</span><span class="p">:</span><span class="nb">float</span><span class="o">=</span><span class="mf">1.0</span><span class="p">,</span> <span class="n">inWaitSecFloat</span><span class="p">:</span><span class="nb">float</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">inWaitIntervalSecFloat</span><span class="p">:</span><span class="nb">float</span> <span class="o">=</span> <span class="mi">0</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Выполнить поиск прямоугольной области по изображению.</span>
<span class="sd"> .. code-block:: python</span>
<span class="sd"> # Screen: Взаимодействие с объектами экрана</span>
<span class="sd"> from pyOpenRPA.Robot import Screen</span>
<span class="sd"> Screen.ImageClick(inImgPathStr=&quot;Button.png&quot;,inConfidenceFloat=0.9)</span>
<span class="sd"> :param inImgPathStr: Путь к изображению, которое требуется искать на экране</span>
<span class="sd"> :type inImgPathStr: str, относительный или абсолютный</span>
<span class="sd"> :param inBoxIndexInt: Индекс прямоугольной области, по которой выполнить клик (если обнаружено несколько областей Box), По умолчанию 0</span>
<span class="sd"> :type inBoxIndexInt: int, опционально</span>
<span class="sd"> :param inPointRuleStr: Правило идентификации точки на прямоугольной области (правила формирования см. выше). Варианты: &quot;LU&quot;,&quot;CU&quot;,&quot;RU&quot;,&quot;LC&quot;,&quot;CC&quot;,&quot;RC&quot;,&quot;LD&quot;,&quot;CD&quot;,&quot;RD&quot;. По умолчанию &quot;CC&quot;</span>
<span class="sd"> :type inPointRuleStr: str, опциональный</span>
<span class="sd"> :param inIsGrayModeBool: True - выполнить поиск изображения в режиме серых оттенков (ускоряет производительность, если допускается искажение цвета). По умолчанию False</span>
<span class="sd"> :type inIsGrayModeBool: bool, опционально</span>
<span class="sd"> :param inConfidenceFloat: Показатель точности. 1.0 - идентичное соответствие, 0.0 - полное несоответствие. По умолчанию 1.0</span>
<span class="sd"> :type inConfidenceFloat: float, опционально</span>
<span class="sd"> :param inWaitSecFloat: Время ожидания появления изображения в сек. По умолчанию 0</span>
<span class="sd"> :type inWaitSecFloat: float, опциональный</span>
<span class="sd"> :param inWaitIntervalSecFloat: Интервал повторной проверки наличия изображения. По умолчанию 0</span>
<span class="sd"> :type inWaitIntervalSecFloat: float, опциональный</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">if</span> <span class="n">inWaitSecFloat</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
<span class="n">lBoxList</span> <span class="o">=</span> <span class="n">ImageWaitAppear</span><span class="p">(</span><span class="n">inImgPathStr</span><span class="o">=</span><span class="n">inImgPathStr</span><span class="p">,</span><span class="n">inWaitSecFloat</span><span class="o">=</span><span class="n">inWaitSecFloat</span><span class="p">,</span><span class="n">inWaitIntervalSecFloat</span><span class="o">=</span><span class="n">inWaitIntervalSecFloat</span><span class="p">,</span><span class="n">inIsGrayModeBool</span><span class="o">=</span><span class="n">inIsGrayModeBool</span><span class="p">,</span><span class="n">inConfidenceFloat</span><span class="o">=</span><span class="n">inConfidenceFloat</span><span class="p">)</span>
<span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">lBoxList</span><span class="p">)</span><span class="o">&gt;</span><span class="mi">0</span><span class="p">:</span> <span class="n">PointClick</span><span class="p">(</span><span class="n">inPoint</span><span class="o">=</span><span class="n">BoxGetPoint</span><span class="p">(</span><span class="n">lBoxList</span><span class="p">[</span><span class="n">inBoxIndexInt</span><span class="p">],</span><span class="n">inPointRuleStr</span><span class="o">=</span><span class="n">inPointRuleStr</span><span class="p">))</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">PointClick</span><span class="p">(</span><span class="n">BoxGetPoint</span><span class="p">(</span><span class="n">inBox</span><span class="o">=</span><span class="n">ImageLocateAll</span><span class="p">(</span><span class="n">inImgPathStr</span><span class="o">=</span><span class="n">inImgPathStr</span><span class="p">,</span><span class="n">inIsGrayModeBool</span><span class="o">=</span><span class="n">inIsGrayModeBool</span><span class="p">,</span><span class="n">inConfidenceFloat</span><span class="o">=</span><span class="n">inConfidenceFloat</span><span class="p">)[</span><span class="n">inBoxIndexInt</span><span class="p">],</span><span class="n">inPointRuleStr</span><span class="o">=</span><span class="n">inPointRuleStr</span><span class="p">))</span></div>
</pre></div>
</div>
</div>
<footer>
<hr/>
<div role="contentinfo">
<p>
&#169; Copyright 2022, ООО &#34;ОПЕН РПА&#34;.
</p>
</div>
Собрано при помощи <a href="https://www.sphinx-doc.org/">Sphinx</a> с использованием
<a href="https://github.com/readthedocs/sphinx_rtd_theme">темы,</a>
предоставленной <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>

@ -99,7 +99,7 @@
<li class="toctree-l1"><a class="reference internal" href="../../../Robot/04_keyboard.html">4. Функции Keyboard</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../Robot/05_clipboard.html">5. Функции Clipboard</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../Robot/06_mouse.html">6. Функции Mouse</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../Robot/07_image.html">7. Функции Image</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../Robot/07_screen.html">7. Функции Screen</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../Robot/08_HowToUse.html">8. Как использовать?</a></li>
</ul>
<p class="caption"><span class="caption-text">МОДУЛЬ СТУДИЯ</span></p>
@ -188,11 +188,15 @@
<div itemprop="articleBody">
<h1>Исходный код pyOpenRPA.Robot.UIDesktop</h1><div class="highlight"><pre>
<span></span><span class="kn">from</span> <span class="nn">pywinauto</span> <span class="kn">import</span> <span class="n">win32defines</span><span class="p">,</span> <span class="n">win32structures</span><span class="p">,</span> <span class="n">win32functions</span>
<span class="kn">import</span> <span class="nn">pywinauto</span>
<span></span><span class="kn">from</span> <span class="nn">pyOpenRPA.Tools</span> <span class="kn">import</span> <span class="n">CrossOS</span>
<span class="k">if</span> <span class="n">CrossOS</span><span class="o">.</span><span class="n">IS_WINDOWS_BOOL</span><span class="p">:</span>
<span class="kn">from</span> <span class="nn">pywinauto</span> <span class="kn">import</span> <span class="n">win32defines</span><span class="p">,</span> <span class="n">win32structures</span><span class="p">,</span> <span class="n">win32functions</span>
<span class="kn">import</span> <span class="nn">pywinauto</span>
<span class="kn">import</span> <span class="nn">win32api</span>
<span class="kn">import</span> <span class="nn">ctypes</span>
<span class="kn">import</span> <span class="nn">struct</span>
<span class="kn">import</span> <span class="nn">win32api</span>
<span class="kn">import</span> <span class="nn">time</span>
<span class="kn">from</span> <span class="nn">.Utils</span> <span class="kn">import</span> <span class="n">ProcessCommunicator</span>
<span class="kn">from</span> <span class="nn">.</span> <span class="kn">import</span> <span class="n">Utils</span> <span class="c1">#For ProcessBitness</span>
@ -422,7 +426,7 @@
<span class="n">lChildrenList</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">lChildrenItem</span><span class="p">)</span>
<span class="c1">#Выполнить рекурсивный вызов (уменьшение количества спецификаций), если спецификация больше одного элемента</span>
<span class="c1">#????????Зачем в условии ниже is not None ???????????</span>
<span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">inSpecificationList</span><span class="p">)</span><span class="o">&gt;</span><span class="mi">1</span> <span class="ow">and</span> <span class="nb">len</span><span class="p">(</span><span class="n">lChildrenList</span><span class="p">)</span><span class="o">&gt;</span><span class="mi">0</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
<span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">inSpecificationList</span><span class="p">)</span><span class="o">&gt;</span><span class="mi">1</span> <span class="ow">and</span> <span class="nb">len</span><span class="p">(</span><span class="n">lChildrenList</span><span class="p">)</span><span class="o">&gt;</span><span class="mi">0</span><span class="p">:</span>
<span class="c1">#Вызвать рекурсивно функцию получения следующего объекта, если в спецификации есть следующий объект</span>
<span class="k">for</span> <span class="n">lChildElement</span> <span class="ow">in</span> <span class="n">lChildrenList</span><span class="p">:</span>
<span class="n">lResultList</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">UIOSelector_Get_UIOList</span><span class="p">(</span><span class="n">inSpecificationList</span><span class="p">[</span><span class="mi">1</span><span class="p">:],</span><span class="n">lChildElement</span><span class="p">,</span><span class="n">inFlagRaiseException</span><span class="p">))</span>
@ -1919,7 +1923,7 @@
<span class="k">return</span> <span class="kc">True</span></div>
<span class="c1">#old: - draw_outline_new</span>
<div class="viewcode-block" id="UIO_Highlight"><a class="viewcode-back" href="../../../Robot/02_uidesktop.html#pyOpenRPA.Robot.UIDesktop.UIO_Highlight">[документация]</a><span class="k">def</span> <span class="nf">UIO_Highlight</span><span class="p">(</span><span class="n">lWrapperObject</span><span class="p">,</span><span class="n">colour</span><span class="o">=</span><span class="s1">&#39;green&#39;</span><span class="p">,</span><span class="n">thickness</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span><span class="n">fill</span><span class="o">=</span><span class="n">win32defines</span><span class="o">.</span><span class="n">BS_NULL</span><span class="p">,</span><span class="n">rect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span><span class="n">inFlagSetFocus</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
<div class="viewcode-block" id="UIO_Highlight"><a class="viewcode-back" href="../../../Robot/02_uidesktop.html#pyOpenRPA.Robot.UIDesktop.UIO_Highlight">[документация]</a><span class="k">def</span> <span class="nf">UIO_Highlight</span><span class="p">(</span><span class="n">lWrapperObject</span><span class="p">,</span><span class="n">colour</span><span class="o">=</span><span class="s1">&#39;green&#39;</span><span class="p">,</span><span class="n">thickness</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span><span class="n">fill</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span><span class="n">rect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span><span class="n">inFlagSetFocus</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Выполнить подсветку UIO объекта на экране</span>
@ -1941,6 +1945,7 @@
<span class="sd"> :param inFlagSetFocus: признак установки фокуса на UIO объект перед подсветкой. По умолчанию False</span>
<span class="sd"> :type inFlagSetFocus: bool, необязательный</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">if</span> <span class="n">fill</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> <span class="n">fill</span> <span class="o">=</span> <span class="n">win32defines</span><span class="o">.</span><span class="n">BS_NULL</span>
<span class="k">if</span> <span class="n">lWrapperObject</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Draw an outline around the window.</span>
@ -1991,7 +1996,7 @@
<span class="n">win32functions</span><span class="o">.</span><span class="n">DeleteDC</span><span class="p">(</span><span class="n">dc</span><span class="p">)</span></div>
<span class="c1">#old: - draw_outline_new_focus</span>
<div class="viewcode-block" id="UIO_FocusHighlight"><a class="viewcode-back" href="../../../Robot/02_uidesktop.html#pyOpenRPA.Robot.UIDesktop.UIO_FocusHighlight">[документация]</a><span class="k">def</span> <span class="nf">UIO_FocusHighlight</span><span class="p">(</span><span class="n">lWrapperObject</span><span class="p">,</span><span class="n">colour</span><span class="o">=</span><span class="s1">&#39;green&#39;</span><span class="p">,</span><span class="n">thickness</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span><span class="n">fill</span><span class="o">=</span><span class="n">win32defines</span><span class="o">.</span><span class="n">BS_NULL</span><span class="p">,</span><span class="n">rect</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
<div class="viewcode-block" id="UIO_FocusHighlight"><a class="viewcode-back" href="../../../Robot/02_uidesktop.html#pyOpenRPA.Robot.UIDesktop.UIO_FocusHighlight">[документация]</a><span class="k">def</span> <span class="nf">UIO_FocusHighlight</span><span class="p">(</span><span class="n">lWrapperObject</span><span class="p">,</span><span class="n">colour</span><span class="o">=</span><span class="s1">&#39;green&#39;</span><span class="p">,</span><span class="n">thickness</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span><span class="n">fill</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span><span class="n">rect</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Установить фокус и выполнить подсветку UIO объекта на экране</span>
@ -2011,7 +2016,8 @@
<span class="sd"> :param thickness: толщина подсветки UIO объекта. По умолчанию 2</span>
<span class="sd"> :type thickness: int, необязательный</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">UIO_Highlight</span><span class="p">(</span><span class="n">lWrapperObject</span><span class="p">,</span><span class="s1">&#39;green&#39;</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="n">win32defines</span><span class="o">.</span><span class="n">BS_NULL</span><span class="p">,</span><span class="kc">None</span><span class="p">,</span><span class="kc">True</span><span class="p">)</span></div>
<span class="k">if</span> <span class="n">fill</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> <span class="n">fill</span> <span class="o">=</span> <span class="n">win32defines</span><span class="o">.</span><span class="n">BS_NULL</span>
<span class="n">UIO_Highlight</span><span class="p">(</span><span class="n">lWrapperObject</span><span class="p">,</span><span class="s1">&#39;green&#39;</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="n">fill</span><span class="p">,</span><span class="kc">None</span><span class="p">,</span><span class="kc">True</span><span class="p">)</span></div>
<span class="c1">#Определить разрядность процесса</span>
<span class="n">lProcessBitnessStr</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">struct</span><span class="o">.</span><span class="n">calcsize</span><span class="p">(</span><span class="s2">&quot;P&quot;</span><span class="p">)</span> <span class="o">*</span> <span class="mi">8</span><span class="p">)</span>

@ -99,7 +99,7 @@
<li class="toctree-l1"><a class="reference internal" href="../../../Robot/04_keyboard.html">4. Функции Keyboard</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../Robot/05_clipboard.html">5. Функции Clipboard</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../Robot/06_mouse.html">6. Функции Mouse</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../Robot/07_image.html">7. Функции Image</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../Robot/07_screen.html">7. Функции Screen</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../Robot/08_HowToUse.html">8. Как использовать?</a></li>
</ul>
<p class="caption"><span class="caption-text">МОДУЛЬ СТУДИЯ</span></p>

@ -99,7 +99,7 @@
<li class="toctree-l1"><a class="reference internal" href="../../../Robot/04_keyboard.html">4. Функции Keyboard</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../Robot/05_clipboard.html">5. Функции Clipboard</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../Robot/06_mouse.html">6. Функции Mouse</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../Robot/07_image.html">7. Функции Image</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../Robot/07_screen.html">7. Функции Screen</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../Robot/08_HowToUse.html">8. Как использовать?</a></li>
</ul>
<p class="caption"><span class="caption-text">МОДУЛЬ СТУДИЯ</span></p>

@ -81,6 +81,9 @@ pyOpenRPA - роботы Вам помогут!
- 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
- schedule, v1.1.0, лицензия MIT, https://github.com/dbader/schedule/blob/master/LICENSE.txt
- pyscreeze
- opencv
- numpy
******************************
Быстрая навигация

@ -24,7 +24,7 @@
- **Уровень доступа к графическим каналам передачи данных (мышь, экран)**
- Mouse: инструменты взаимодействия с мышью. Перейти к описанию функций: :ref:`module.robot.mouse`
- Image: инструменты взаимодействия с эраном рабочего стола. Перейти к описанию функций: :ref:`module.robot.image`
- Screen: инструменты взаимодействия с эраном рабочего стола. Перейти к описанию функций: :ref:`module.robot.screen`
Дорогие коллеги!

@ -1,30 +0,0 @@
.. _module.robot.image:
####################################
7. Функции Image
####################################
************************
Общее
************************
Документация к модулю будет опубликована в Июле 2022. По всем вопросам роботизации WEB приложений обращайтесь в центр поддержки клиентов pyOpenRPA.
Дорогие коллеги!
Мы знаем, что с pyOpenRPA вы сможете существенно улучшить качество вашего бизнеса. Платформа роботизации pyOpenRPA - это разработка, которая дает возможность делать виртуальных сотрудников (программных роботов RPA) выгодными, начиная от эффекта всего в **10 тыс. руб.** И управлять ими будете только Вы!
Если у вас останутся вопросы, то вы всегда можете обратиться в центр поддержки клиентов pyOpenRPA. Контакты: :ref:`3.-Copyrights-&-Contacts`
pyOpenRPA - роботы помогут!
******************************
Быстрая навигация
******************************
- `Сообщество 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>`_

@ -0,0 +1,136 @@
.. _module.robot.screen:
####################################
7. Функции Screen
####################################
************************
Общее
************************
Документация к модулю будет опубликована в Июле 2022. По всем вопросам роботизации WEB приложений обращайтесь в центр поддержки клиентов pyOpenRPA.
Дорогие коллеги!
Мы знаем, что с pyOpenRPA вы сможете существенно улучшить качество вашего бизнеса. Платформа роботизации pyOpenRPA - это разработка, которая дает возможность делать виртуальных сотрудников (программных роботов RPA) выгодными, начиная от эффекта всего в **10 тыс. руб.** И управлять ими будете только Вы!
Если у вас останутся вопросы, то вы всегда можете обратиться в центр поддержки клиентов pyOpenRPA. Контакты: :ref:`3.-Copyrights-&-Contacts`
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"
Графическая интерпретация:
+|-|-
-----
-|+|-
-----
+|-|-
**************************************************
Описание функций
**************************************************
.. automodule:: pyOpenRPA.Robot.Screen
:members:
:autosummary:
******************************
Быстрая навигация
******************************
- `Сообщество 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>`_

@ -99,7 +99,7 @@
<li class="toctree-l1"><a class="reference internal" href="Robot/04_keyboard.html">4. Функции Keyboard</a></li>
<li class="toctree-l1"><a class="reference internal" href="Robot/05_clipboard.html">5. Функции Clipboard</a></li>
<li class="toctree-l1"><a class="reference internal" href="Robot/06_mouse.html">6. Функции Mouse</a></li>
<li class="toctree-l1"><a class="reference internal" href="Robot/07_image.html">7. Функции Image</a></li>
<li class="toctree-l1"><a class="reference internal" href="Robot/07_screen.html">7. Функции Screen</a></li>
<li class="toctree-l1"><a class="reference internal" href="Robot/08_HowToUse.html">8. Как использовать?</a></li>
</ul>
<p class="caption"><span class="caption-text">МОДУЛЬ СТУДИЯ</span></p>
@ -264,6 +264,22 @@
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="Robot/02_uidesktop.html#pyOpenRPA.Robot.UIDesktop.BackendStr_GetTopLevelList_UIOInfo">BackendStr_GetTopLevelList_UIOInfo() (в модуле pyOpenRPA.Robot.UIDesktop)</a>
</li>
<li><a href="Robot/07_screen.html#pyOpenRPA.Robot.Screen.BoxAnchorRuleCheck">BoxAnchorRuleCheck() (в модуле pyOpenRPA.Robot.Screen)</a>
</li>
<li><a href="Robot/07_screen.html#pyOpenRPA.Robot.Screen.BoxCreate">BoxCreate() (в модуле pyOpenRPA.Robot.Screen)</a>
</li>
<li><a href="Robot/07_screen.html#pyOpenRPA.Robot.Screen.BoxDraw">BoxDraw() (в модуле pyOpenRPA.Robot.Screen)</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="Robot/07_screen.html#pyOpenRPA.Robot.Screen.BoxGetPoint">BoxGetPoint() (в модуле pyOpenRPA.Robot.Screen)</a>
</li>
<li><a href="Robot/07_screen.html#pyOpenRPA.Robot.Screen.BoxModify">BoxModify() (в модуле pyOpenRPA.Robot.Screen)</a>
</li>
<li><a href="Robot/07_screen.html#pyOpenRPA.Robot.Screen.BoxMoveTo">BoxMoveTo() (в модуле pyOpenRPA.Robot.Screen)</a>
</li>
<li><a href="Robot/07_screen.html#pyOpenRPA.Robot.Screen.BoxOverlay">BoxOverlay() (в модуле pyOpenRPA.Robot.Screen)</a>
</li>
</ul></td>
</tr></table>
@ -322,6 +338,8 @@
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="Robot/04_keyboard.html#pyOpenRPA.Robot.Keyboard.HotkeyCtrlA_CtrlC">HotkeyCtrlA_CtrlC() (в модуле pyOpenRPA.Robot.Keyboard)</a>
</li>
<li><a href="Robot/04_keyboard.html#pyOpenRPA.Robot.Keyboard.HotkeyCtrlV">HotkeyCtrlV() (в модуле pyOpenRPA.Robot.Keyboard)</a>
</li>
</ul></td>
</tr></table>
@ -329,10 +347,20 @@
<h2 id="I">I</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="Tools/02_Defs.html#pyOpenRPA.Tools.StopSafe.Init">Init() (в модуле pyOpenRPA.Tools.StopSafe)</a>
<li><a href="Robot/07_screen.html#pyOpenRPA.Robot.Screen.ImageClick">ImageClick() (в модуле pyOpenRPA.Robot.Screen)</a>
</li>
<li><a href="Robot/07_screen.html#pyOpenRPA.Robot.Screen.ImageExists">ImageExists() (в модуле pyOpenRPA.Robot.Screen)</a>
</li>
<li><a href="Robot/07_screen.html#pyOpenRPA.Robot.Screen.ImageLocateAll">ImageLocateAll() (в модуле pyOpenRPA.Robot.Screen)</a>
</li>
<li><a href="Robot/07_screen.html#pyOpenRPA.Robot.Screen.ImageWaitAppear">ImageWaitAppear() (в модуле pyOpenRPA.Robot.Screen)</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="Robot/07_screen.html#pyOpenRPA.Robot.Screen.ImageWaitDisappear">ImageWaitDisappear() (в модуле pyOpenRPA.Robot.Screen)</a>
</li>
<li><a href="Tools/02_Defs.html#pyOpenRPA.Tools.StopSafe.Init">Init() (в модуле pyOpenRPA.Tools.StopSafe)</a>
</li>
<li><a href="Robot/04_keyboard.html#pyOpenRPA.Robot.Keyboard.IsDown">IsDown() (в модуле pyOpenRPA.Robot.Keyboard)</a>
</li>
<li><a href="Tools/02_Defs.html#pyOpenRPA.Tools.StopSafe.IsStopSafe">IsStopSafe() (в модуле pyOpenRPA.Tools.StopSafe)</a>
@ -427,6 +455,20 @@
<h2 id="P">P</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="Robot/07_screen.html#pyOpenRPA.Robot.Screen.PointClick">PointClick() (в модуле pyOpenRPA.Robot.Screen)</a>
</li>
<li><a href="Robot/07_screen.html#pyOpenRPA.Robot.Screen.PointClickDouble">PointClickDouble() (в модуле pyOpenRPA.Robot.Screen)</a>
</li>
<li><a href="Robot/07_screen.html#pyOpenRPA.Robot.Screen.PointCreate">PointCreate() (в модуле pyOpenRPA.Robot.Screen)</a>
</li>
<li><a href="Robot/07_screen.html#pyOpenRPA.Robot.Screen.PointDown">PointDown() (в модуле pyOpenRPA.Robot.Screen)</a>
</li>
<li><a href="Robot/07_screen.html#pyOpenRPA.Robot.Screen.PointModify">PointModify() (в модуле pyOpenRPA.Robot.Screen)</a>
</li>
<li><a href="Robot/07_screen.html#pyOpenRPA.Robot.Screen.PointMoveTo">PointMoveTo() (в модуле pyOpenRPA.Robot.Screen)</a>
</li>
<li><a href="Robot/07_screen.html#pyOpenRPA.Robot.Screen.PointUp">PointUp() (в модуле pyOpenRPA.Robot.Screen)</a>
</li>
<li><a href="Orchestrator/02_Defs.html#pyOpenRPA.Orchestrator.__Orchestrator__.ProcessDefIntervalCall">ProcessDefIntervalCall() (в модуле pyOpenRPA.Orchestrator.__Orchestrator__)</a>
</li>
<li><a href="Orchestrator/02_Defs.html#pyOpenRPA.Orchestrator.__Orchestrator__.ProcessIsStarted">ProcessIsStarted() (в модуле pyOpenRPA.Orchestrator.__Orchestrator__)</a>
@ -451,6 +493,8 @@
</li>
<li><a href="Robot/02_uidesktop.html#pyOpenRPA.Robot.UIDesktop.PWASpecification_Get_UIO">PWASpecification_Get_UIO() (в модуле pyOpenRPA.Robot.UIDesktop)</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li>
pyOpenRPA.Agent.__Agent__
@ -458,8 +502,6 @@
<li><a href="Agent/02_Defs.html#module-pyOpenRPA.Agent.__Agent__">модуль</a>
</li>
</ul></li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li>
pyOpenRPA.Orchestrator.__Orchestrator__
@ -486,6 +528,13 @@
<ul>
<li><a href="Robot/06_mouse.html#module-pyOpenRPA.Robot.Mouse">модуль</a>
</li>
</ul></li>
<li>
pyOpenRPA.Robot.Screen
<ul>
<li><a href="Robot/07_screen.html#module-pyOpenRPA.Robot.Screen">модуль</a>
</li>
</ul></li>
<li>
@ -704,6 +753,8 @@
<li><a href="Robot/04_keyboard.html#module-pyOpenRPA.Robot.Keyboard">pyOpenRPA.Robot.Keyboard</a>
</li>
<li><a href="Robot/06_mouse.html#module-pyOpenRPA.Robot.Mouse">pyOpenRPA.Robot.Mouse</a>
</li>
<li><a href="Robot/07_screen.html#module-pyOpenRPA.Robot.Screen">pyOpenRPA.Robot.Screen</a>
</li>
<li><a href="Robot/02_uidesktop.html#module-pyOpenRPA.Robot.UIDesktop">pyOpenRPA.Robot.UIDesktop</a>
</li>

@ -100,7 +100,7 @@
<li class="toctree-l1"><a class="reference internal" href="Robot/04_keyboard.html">4. Функции Keyboard</a></li>
<li class="toctree-l1"><a class="reference internal" href="Robot/05_clipboard.html">5. Функции Clipboard</a></li>
<li class="toctree-l1"><a class="reference internal" href="Robot/06_mouse.html">6. Функции Mouse</a></li>
<li class="toctree-l1"><a class="reference internal" href="Robot/07_image.html">7. Функции Image</a></li>
<li class="toctree-l1"><a class="reference internal" href="Robot/07_screen.html">7. Функции Screen</a></li>
<li class="toctree-l1"><a class="reference internal" href="Robot/08_HowToUse.html">8. Как использовать?</a></li>
</ul>
<p class="caption"><span class="caption-text">МОДУЛЬ СТУДИЯ</span></p>
@ -420,9 +420,14 @@
<li class="toctree-l2"><a class="reference internal" href="Robot/06_mouse.html#id3">Быстрая навигация</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="Robot/07_image.html">7. Функции Image</a><ul>
<li class="toctree-l2"><a class="reference internal" href="Robot/07_image.html#id1">Общее</a></li>
<li class="toctree-l2"><a class="reference internal" href="Robot/07_image.html#id2">Быстрая навигация</a></li>
<li class="toctree-l1"><a class="reference internal" href="Robot/07_screen.html">7. Функции Screen</a><ul>
<li class="toctree-l2"><a class="reference internal" href="Robot/07_screen.html#id1">Общее</a></li>
<li class="toctree-l2"><a class="reference internal" href="Robot/07_screen.html#box">Класс Box</a></li>
<li class="toctree-l2"><a class="reference internal" href="Robot/07_screen.html#point">Класс Point</a></li>
<li class="toctree-l2"><a class="reference internal" href="Robot/07_screen.html#inpointrulestr">Символьное указание точки (inPointRuleStr)</a></li>
<li class="toctree-l2"><a class="reference internal" href="Robot/07_screen.html#inanchorrulestr">Символьное указание области (inAnchorRuleStr)</a></li>
<li class="toctree-l2"><a class="reference internal" href="Robot/07_screen.html#module-pyOpenRPA.Robot.Screen">Описание функций</a></li>
<li class="toctree-l2"><a class="reference internal" href="Robot/07_screen.html#id7">Быстрая навигация</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="Robot/08_HowToUse.html">8. Как использовать?</a><ul>

Binary file not shown.

@ -102,7 +102,7 @@
<li class="toctree-l1"><a class="reference internal" href="Robot/04_keyboard.html">4. Функции Keyboard</a></li>
<li class="toctree-l1"><a class="reference internal" href="Robot/05_clipboard.html">5. Функции Clipboard</a></li>
<li class="toctree-l1"><a class="reference internal" href="Robot/06_mouse.html">6. Функции Mouse</a></li>
<li class="toctree-l1"><a class="reference internal" href="Robot/07_image.html">7. Функции Image</a></li>
<li class="toctree-l1"><a class="reference internal" href="Robot/07_screen.html">7. Функции Screen</a></li>
<li class="toctree-l1"><a class="reference internal" href="Robot/08_HowToUse.html">8. Как использовать?</a></li>
</ul>
<p class="caption"><span class="caption-text">МОДУЛЬ СТУДИЯ</span></p>
@ -230,6 +230,11 @@
<td>&#160;&#160;&#160;
<a href="Robot/06_mouse.html#module-pyOpenRPA.Robot.Mouse"><code class="xref">pyOpenRPA.Robot.Mouse</code></a></td><td>
<em></em></td></tr>
<tr class="cg-1">
<td></td>
<td>&#160;&#160;&#160;
<a href="Robot/07_screen.html#module-pyOpenRPA.Robot.Screen"><code class="xref">pyOpenRPA.Robot.Screen</code></a></td><td>
<em></em></td></tr>
<tr class="cg-1">
<td></td>
<td>&#160;&#160;&#160;

@ -102,7 +102,7 @@
<li class="toctree-l1"><a class="reference internal" href="Robot/04_keyboard.html">4. Функции Keyboard</a></li>
<li class="toctree-l1"><a class="reference internal" href="Robot/05_clipboard.html">5. Функции Clipboard</a></li>
<li class="toctree-l1"><a class="reference internal" href="Robot/06_mouse.html">6. Функции Mouse</a></li>
<li class="toctree-l1"><a class="reference internal" href="Robot/07_image.html">7. Функции Image</a></li>
<li class="toctree-l1"><a class="reference internal" href="Robot/07_screen.html">7. Функции Screen</a></li>
<li class="toctree-l1"><a class="reference internal" href="Robot/08_HowToUse.html">8. Как использовать?</a></li>
</ul>
<p class="caption"><span class="caption-text">МОДУЛЬ СТУДИЯ</span></p>

File diff suppressed because one or more lines are too long

@ -116,6 +116,15 @@ pyOpenRPA - роботы Вам помогут!
* schedule, v1.1.0, лицензия MIT, [https://github.com/dbader/schedule/blob/master/LICENSE.txt](https://github.com/dbader/schedule/blob/master/LICENSE.txt)
* pyscreeze
* opencv
* numpy
## Быстрая навигация

@ -1256,6 +1256,8 @@ Orchestrator.GSettingsKeyListValueOperatorPlus(
### pyOpenRPA.Orchestrator.__Orchestrator__.OSCMD(inCMDStr, inRunAsyncBool=True, inLogger=None)
Отправить команду на выполнение на сессию, где выполняется Оркестратор.
Поддерживается: Windows: +, Linux: +
* **Параметры**
@ -1396,6 +1398,8 @@ Orchestrator.GSettingsKeyListValueOperatorPlus(
Добавляет инициализированный модуль в пространство sys.modules как imported (имя модуля = имя файла без расширения).
ВНИМАНИЕ! ПРЕОБРАЗУЕТ ПУТИ МЕЖДУ WINDOWS И LINUX НОТАЦИЯМИ
```
# ВАРИАНТ ИСПОЛЬЗОВАНИЯ 1 (инициализация модуля py без вызова каких-либо функций внутри)
# автоинициализация всех .py файлов, с префиксом CP_, которые расположены в папке ControlPanel

@ -29,13 +29,15 @@ import psutil, datetime, logging, os, sys
# Config settings
lPyOpenRPASourceFolderPathStr = r"..\Sources" # Path for test pyOpenRPA package
lPyOpenRPASourceFolderPathStr = (r"../Sources") # Path for test pyOpenRPA package
# Operations
if lPyOpenRPASourceFolderPathStr != "": sys.path.insert(0,os.path.abspath(os.path.join(lPyOpenRPASourceFolderPathStr))) # Path for test pyOpenRPA package
# Start import after config the pyOpenRPA folder
from pyOpenRPA.Orchestrator import SettingsTemplate # Import functionallity
from pyOpenRPA.Tools import CrossOS
from pyOpenRPA import Orchestrator # Import orchestrator main
#Run as administrator
if not Orchestrator.OrchestratorIsAdmin():
@ -53,7 +55,10 @@ else:
# TEST Add Supertoken for the all access between robots
Orchestrator.UACSuperTokenUpdate(inGSettings=gSettings, inSuperTokenStr="1992-04-03-0643-ru-b4ff-openrpa52zzz")
# Add first interface!
if CrossOS.IS_WINDOWS_BOOL:
Orchestrator.WebListenCreate(inGSettings=gSettings)
if CrossOS.IS_LINUX_BOOL:
Orchestrator.WebListenCreate(inGSettings=gSettings, inPortInt=1024)
# Restore DUMP
Orchestrator.OrchestratorSessionRestore(inGSettings=gSettings)
# Autoinit control panels starts with CP_

@ -31,7 +31,7 @@
* Mouse: инструменты взаимодействия с мышью. Перейти к описанию функций: 6. Функции Mouse
* Image: инструменты взаимодействия с эраном рабочего стола. Перейти к описанию функций: 7. Функции Image
* Screen: инструменты взаимодействия с эраном рабочего стола. Перейти к описанию функций: 7. Функции Screen
Дорогие коллеги!

@ -1126,7 +1126,7 @@ lUIOHierarchyList = UIDesktop.UIOXY_SearchChild_ListDict(lUIO, 100, 200) # По
### pyOpenRPA.Robot.UIDesktop.UIO_FocusHighlight(lWrapperObject, colour='green', thickness=2, fill=1, rect=None)
### pyOpenRPA.Robot.UIDesktop.UIO_FocusHighlight(lWrapperObject, colour='green', thickness=2, fill=None, rect=None)
Установить фокус и выполнить подсветку UIO объекта на экране
```
@ -1177,7 +1177,7 @@ lUIOIndexInt = UIDesktop.UIO_GetCtrlIndex_Int(lUIO) # Получить инде
### pyOpenRPA.Robot.UIDesktop.UIO_Highlight(lWrapperObject, colour='green', thickness=2, fill=1, rect=None, inFlagSetFocus=False)
### pyOpenRPA.Robot.UIDesktop.UIO_Highlight(lWrapperObject, colour='green', thickness=2, fill=None, rect=None, inFlagSetFocus=False)
Выполнить подсветку UIO объекта на экране
```

@ -42,6 +42,11 @@ Keyboard.HotkeyCombination(Keyboard.KEY_HOT_CTRL_LEFT, Keyboard.KEY_ENG_C, inWai
| Выполнить выделение текста, после чего скопировать его в буфер обмена ВНИМАНИЕ! НЕ ЗАВИСИТ ОТ ТЕКУЩЕЙ РАСКЛАДКИ КЛАВИАТУРЫ
|
| `HotkeyCtrlV`([inWaitAfterSecFloat])
| Выполнить вставку текста из буфера обмена ВНИМАНИЕ! НЕ ЗАВИСИТ ОТ ТЕКУЩЕЙ РАСКЛАДКИ КЛАВИАТУРЫ
|
| `IsDown`(inKeyInt)
@ -145,6 +150,23 @@ Keyboard.HotkeyCtrlA_CtrlC() # Отправить команды: выделит
### pyOpenRPA.Robot.Keyboard.HotkeyCtrlV(inWaitAfterSecFloat: float = 0.4)
Выполнить вставку текста из буфера обмена
ВНИМАНИЕ! НЕ ЗАВИСИТ ОТ ТЕКУЩЕЙ РАСКЛАДКИ КЛАВИАТУРЫ
```
# Keyboard: Взаимодействие с клавиатурой
from pyOpenRPA.Robot import Keyboard
Keyboard.HotkeyCtrlV()
```
* **Параметры**
**inWaitAfterSecFloat** (*float**, **опциональный*) Количество секунд, которые ожидать после выполнения операции. По умолчанию установлено в настройках модуля Keyboard (базовое значение 0.4)
### pyOpenRPA.Robot.Keyboard.IsDown(inKeyInt: int)
Проверить, опущена ли клавиша. Вернет True если опущена; False если поднята.

@ -100,9 +100,6 @@ Mouse.ClickDouble(100,150) #Выполнить двойное нажатие л
* **inYInt** (*int**, **опциональный*) Целевая позиция указателя мыши по оси Y (вертикальная ось).
* **inButtonStr** (*str**, **опциональный*) Номер кнопки, которую требуется нажать. Возможные варианты: „left“, „middle“, „right“ или 1, 2, 3. В остальных случаях инициирует исключение ValueError. По умолчанию „left“
* **inWaitAfterSecFloat** (*float**, **опциональный*) Количество секунд, которые ожидать после выполнения операции. По умолчанию установлено в настройках модуля Mouse (базовое значение 0.4)

@ -1,35 +0,0 @@
# 7. Функции Image
## Общее
Документация к модулю будет опубликована в Июле 2022. По всем вопросам роботизации WEB приложений обращайтесь в центр поддержки клиентов pyOpenRPA.
Дорогие коллеги!
Мы знаем, что с pyOpenRPA вы сможете существенно улучшить качество вашего бизнеса. Платформа роботизации pyOpenRPA - это разработка, которая дает возможность делать виртуальных сотрудников (программных роботов RPA) выгодными, начиная от эффекта всего в **10 тыс. руб.** И управлять ими будете только Вы!
Если у вас останутся вопросы, то вы всегда можете обратиться в центр поддержки клиентов pyOpenRPA. Контакты: 2. Лицензия & Контакты
pyOpenRPA - роботы помогут!
## Быстрая навигация
* [Сообщество 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

@ -0,0 +1,891 @@
# 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

@ -419,12 +419,27 @@ pyOpenRPA - роботы помогут!
* Быстрая навигация
* 7. Функции Image
* 7. Функции Screen
* Общее
* Класс Box
* Класс Point
* Символьное указание точки (inPointRuleStr)
* Символьное указание области (inAnchorRuleStr)
* Описание функций
* Быстрая навигация

Loading…
Cancel
Save