Update sphinx doc in Orchestrator and in UIDesktop

Orchestrator autodoc 60%
Robot UIDesktop 30%
dev-linux
Ivan Maslov 4 years ago
parent 9b5f69289a
commit df6978a951

@ -51,7 +51,7 @@ def AgentActivityItemAdd(inGSettings, inHostNameStr, inUserStr, inActivityItemDi
def AgentOSCMD(inGSettings, inHostNameStr, inUserStr, inCMDStr, inRunAsyncBool=True): def AgentOSCMD(inGSettings, inHostNameStr, inUserStr, inCMDStr, inRunAsyncBool=True):
""" """
pyOpenRPA.Agent: Send CMD to OS. Result return to log + Orchestrator by the A2O connection Send CMD to OS throught the pyOpenRPA.Agent daemon. Result return to log + Orchestrator by the A2O connection
def OSCMD(inCMDStr, inRunAsyncBool=True, inGSettings=None): def OSCMD(inCMDStr, inRunAsyncBool=True, inGSettings=None):
Send to agent activity item to OSCMD Send to agent activity item to OSCMD
@ -855,7 +855,7 @@ def ProcessStop(inProcessNameWOExeStr, inCloseForceBool, inUserNameStr = "%usern
def ProcessListGet(inProcessNameWOExeList=None): def ProcessListGet(inProcessNameWOExeList=None):
""" """
Return process list on the orchestrator machine. You can determine the list of the processes you are interested - def will return the list about it. Return process list on the orchestrator machine sorted by Memory Usage. You can determine the list of the processes you are interested - def will return the list about it.
.. code-block:: python .. code-block:: python
@ -863,7 +863,8 @@ def ProcessListGet(inProcessNameWOExeList=None):
from pyOpenRPA import Orchestrator from pyOpenRPA import Orchestrator
lProcessList = Orchestrator.ProcessListGet() lProcessList = Orchestrator.ProcessListGet()
# Return the list of the process on the machine. !ATTENTION! RUn orchestrator as administrator to get all process list on the machine. # Return the list of the process on the machine.
# !ATTENTION! RUn orchestrator as administrator to get all process list on the machine.
:param inProcessNameWOExeList: :param inProcessNameWOExeList:
:return: { :return: {
@ -881,7 +882,6 @@ def ProcessListGet(inProcessNameWOExeList=None):
""" """
if inProcessNameWOExeList is None: inProcessNameWOExeList = [] if inProcessNameWOExeList is None: inProcessNameWOExeList = []
'''Get list of running process sorted by Memory Usage and filtered by inProcessNameWOExeList'''
lMapUPPERInput = {} # Mapping for processes WO exe lMapUPPERInput = {} # Mapping for processes WO exe
lResult = {"ProcessWOExeList":[], "ProcessWOExeUpperList":[],"ProcessDetailList":[]} lResult = {"ProcessWOExeList":[], "ProcessWOExeUpperList":[],"ProcessDetailList":[]}
# Create updated list for quick check # Create updated list for quick check
@ -913,14 +913,28 @@ def ProcessListGet(inProcessNameWOExeList=None):
# Python def - start module function # Python def - start module function
def PythonStart(inModulePathStr, inDefNameStr, inArgList=None, inArgDict=None, inLogger = None): def PythonStart(inModulePathStr, inDefNameStr, inArgList=None, inArgDict=None, inLogger = None):
""" """
Python import module and start def Import module and run def in the Orchestrator process.
:param inModulePathStr: .. note::
:param inDefNameStr:
:param inArgList: Import module will be each time when PythonStart def will be called.
:param inArgDict:
:param inLogger: .. code-block:: python
:return:
# USAGE
from pyOpenRPA import Orchestrator
Orchestrator.PythonStart(
inModulePathStr="ModuleToCall.py", # inModulePathStr: Working Directory\\ModuleToCall.py
inDefNameStr="TestDef")
# Import module in Orchestrator process and call def "TestDef" from module "ModuleToCall.py"
:param inModulePathStr: Absolute or relative (working directory of the orchestrator process) path to the importing module .py
:param inDefNameStr: Def name in module
:param inArgList: List of the arguments for callable def
:param inArgDict: Dict of the named arguments for callable def
:param inLogger: Logger instance to log some information when PythonStart def is running
:return: None
""" """
if inArgList is None: inArgList=[] if inArgList is None: inArgList=[]
if inArgDict is None: inArgDict={} if inArgDict is None: inArgDict={}
@ -931,23 +945,42 @@ def PythonStart(inModulePathStr, inDefNameStr, inArgList=None, inArgDict=None, i
except Exception as e: except Exception as e:
if inLogger: inLogger.exception("Loop activity error: module/function not founded") if inLogger: inLogger.exception("Loop activity error: module/function not founded")
# # # # # # # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# Scheduler # Scheduler
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
def SchedulerActivityTimeAddWeekly(inGSettings, inTimeHHMMStr="23:55:", inWeekdayList=None, inActivityList=None): def SchedulerActivityTimeAddWeekly(inGSettings, inTimeHHMMStr="23:55:", inWeekdayList=None, inActivityList=None):
""" """
Add activity in time weekly Add activity item list in scheduler. You can set weekday list and set time when launch. Activity list will be executed at planned time/day.
.. code-block:: python
# USAGE
from pyOpenRPA import Orchestrator
# EXAMPLE 1
def TestDef(inArg1Str):
pass
lActivityItem = Orchestrator.ProcessorActivityItemCreate(
inDef = TestDef,
inArgList=[],
inArgDict={"inArg1Str": "ArgValueStr"},
inArgGSettingsStr = None,
inArgLoggerStr = None)
Orchestrator.SchedulerActivityTimeAddWeekly(
inGSettings = gSettingsDict,
inTimeHHMMStr = "04:34",
inWeekdayList=[2,3,4],
inActivityList = [lActivityItem])
# Activity will be executed at 04:34 Wednesday (2), thursday (3), friday (4)
:param inGSettings: Global settings dict (singleton) :param inGSettings: Global settings dict (singleton)
:param inTimeHHMMStr: :param inTimeHHMMStr: Activation time from "00:00" to "23:59". Example: "05:29"
:param inWeekdayList: :param inWeekdayList: Week day list to initiate activity list. Use int from 0 (monday) to 6 (sunday) as list items. Example: [0,1,2,3,4]. Default value is everyday ([0,1,2,3,4,5,6])
:param inActivityList: :param inActivityList: Activity list structure
:return: :return: None
""" """
if inWeekdayList is None: inWeekdayList=[] if inWeekdayList is None: inWeekdayList=[0,1,2,3,4,5,6]
if inActivityList is None: inActivityList=[] if inActivityList is None: inActivityList=[]
Processor.__ActivityListVerify__(inActivityList=inActivityList) # DO VERIFICATION FOR THE inActivityList Processor.__ActivityListVerify__(inActivityList=inActivityList) # DO VERIFICATION FOR THE inActivityList
lActivityTimeItemDict = { lActivityTimeItemDict = {
@ -965,18 +998,64 @@ def SchedulerActivityTimeAddWeekly(inGSettings, inTimeHHMMStr="23:55:", inWeekda
def RDPTemplateCreate(inLoginStr, inPasswordStr, inHostStr="127.0.0.1", inPortInt = 3389, inWidthPXInt = 1680, inHeightPXInt = 1050, def RDPTemplateCreate(inLoginStr, inPasswordStr, inHostStr="127.0.0.1", inPortInt = 3389, inWidthPXInt = 1680, inHeightPXInt = 1050,
inUseBothMonitorBool = False, inDepthBitInt = 32, inSharedDriveList=None): inUseBothMonitorBool = False, inDepthBitInt = 32, inSharedDriveList=None):
""" """
Create some RDP template dict to use it when connect/reconnect Create RDP connect dict item/ Use it connect/reconnect (Orchestrator.RDPSessionConnect)
:param inLoginStr: .. code-block:: python
:param inPasswordStr:
:param inHostStr: # USAGE
:param inPortInt: from pyOpenRPA import Orchestrator
:param inWidthPXInt:
:param inHeightPXInt: lRDPItemDict = Orchestrator.RDPTemplateCreate(
:param inUseBothMonitorBool: inLoginStr = "USER_99",
:param inDepthBitInt: inPasswordStr = "USER_PASS_HERE",
:param inSharedDriveList: inHostStr="127.0.0.1",
inPortInt = 3389,
inWidthPXInt = 1680,
inHeightPXInt = 1050,
inUseBothMonitorBool = False,
inDepthBitInt = 32,
inSharedDriveList=None)
# lRDPTemplateDict= { # Init the configuration item
# "Host": "127.0.0.1", "Port": "3389", "Login": "USER_99", "Password": "USER_PASS_HERE",
# "Screen": { "Width": 1680, "Height": 1050, "FlagUseAllMonitors": False, "DepthBit": "32" },
# "SharedDriveList": ["c"],
# ###### Will updated in program ############
# "SessionHex": "77777sdfsdf77777dsfdfsf77777777", # Hex is created when robot runs, example ""
# "SessionIsWindowExistBool": False, "SessionIsWindowResponsibleBool": False, "SessionIsIgnoredBool": False
# }
:param inLoginStr: User/Robot Login, example "USER_99"
:param inPasswordStr: Password, example "USER_PASS_HERE"
:param inHostStr: Host address, example "77.77.22.22"
:param inPortInt: RDP Port, example "3389" (default)
:param inWidthPXInt: Width of the remote desktop in pixels, example 1680
:param inHeightPXInt: Height of the remote desktop in pixels, example 1050
:param inUseBothMonitorBool: True - connect to the RDP with both monitors. False - else case
:param inDepthBitInt: Remote desktop bitness. Available: 32 or 24 or 16 or 15, example 32
:param inSharedDriveList: Host local disc to connect to the RDP session. Example: ["c", "d"]
:return: :return:
{
"Host": inHostStr, # Host address, example "77.77.22.22"
"Port": str(inPortInt), # RDP Port, example "3389"
"Login": inLoginStr, # Login, example "test"
"Password": inPasswordStr, # Password, example "test"
"Screen": {
"Width": inWidthPXInt, # Width of the remote desktop in pixels, example 1680
"Height": inHeightPXInt, # Height of the remote desktop in pixels, example 1050
# "640x480" or "1680x1050" or "FullScreen". If Resolution not exists set full screen, example
"FlagUseAllMonitors": inUseBothMonitorBool, # True or False, example False
"DepthBit": str(inDepthBitInt) # "32" or "24" or "16" or "15", example "32"
},
"SharedDriveList": inSharedDriveList, # List of the Root sesion hard drives, example ["c"]
###### Will updated in program ############
"SessionHex": "77777sdfsdf77777dsfdfsf77777777", # Hex is created when robot runs, example ""
"SessionIsWindowExistBool": False,
# Flag if the RDP window is exist, old name "FlagSessionIsActive". Check every n seconds , example False
"SessionIsWindowResponsibleBool": False,
# Flag if RDP window is responsible (recieve commands). Check every nn seconds. If window is Responsible - window is Exist too , example False
"SessionIsIgnoredBool": False # Flag to ignore RDP window False - dont ignore, True - ignore, example False
}
""" """
if inSharedDriveList is None: inSharedDriveList = ["c"] if inSharedDriveList is None: inSharedDriveList = ["c"]
lRDPTemplateDict= { # Init the configuration item lRDPTemplateDict= { # Init the configuration item
@ -1006,7 +1085,7 @@ def RDPTemplateCreate(inLoginStr, inPasswordStr, inHostStr="127.0.0.1", inPortIn
# Return list if dublicates # Return list if dublicates
def RDPSessionDublicatesResolve(inGSettings): def RDPSessionDublicatesResolve(inGSettings):
""" """
Search dublicates in GSettings RDPlist DEVELOPING Search dublicates in GSettings RDPlist
!def is developing! !def is developing!
:param inGSettings: Global settings dict (singleton) :param inGSettings: Global settings dict (singleton)

@ -240,6 +240,14 @@ def UIOSelector_Get_UIOList (inSpecificationList,inElement=None,inFlagRaiseExcep
#inFlagRaiseException - Флаг True - выкинуть ошибку в случае обнаружении пустого списка #inFlagRaiseException - Флаг True - выкинуть ошибку в случае обнаружении пустого списка
#old name - PywinautoExtElementGet #old name - PywinautoExtElementGet
def UIOSelector_Get_UIO (inSpecificationList,inElement=None,inFlagRaiseException=True): def UIOSelector_Get_UIO (inSpecificationList,inElement=None,inFlagRaiseException=True):
'''
Get the pywinauto object by the UIO selector.
:param inSpecificationList:
:param inElement:
:param inFlagRaiseException:
:return:
'''
lResult=None lResult=None
#Получить родительский объект если на вход ничего не поступило #Получить родительский объект если на вход ничего не поступило
lResultList=UIOSelector_Get_UIOList(inSpecificationList,inElement,False) lResultList=UIOSelector_Get_UIOList(inSpecificationList,inElement,False)
@ -255,6 +263,12 @@ def UIOSelector_Get_UIO (inSpecificationList,inElement=None,inFlagRaiseException
#UIOSelector #UIOSelector
#old name - - #old name - -
def UIOSelector_Exist_Bool (inUIOSelector): def UIOSelector_Exist_Bool (inUIOSelector):
'''
Check if object is exist by the UIO selector.
:param inUIOSelector:
:return: True - Object is exist. False - else case
'''
lResult=False lResult=False
#Check the bitness #Check the bitness
lSafeOtherProcess = UIOSelector_SafeOtherGet_Process(inUIOSelector) lSafeOtherProcess = UIOSelector_SafeOtherGet_Process(inUIOSelector)
@ -288,6 +302,18 @@ def UIOSelector_Exist_Bool (inUIOSelector):
#####Внимание##### #####Внимание#####
##Функция ожидания появления элементов (тк элементы могут быть недоступны, неизвестно в каком фреймворке каждый из них может появиться) ##Функция ожидания появления элементов (тк элементы могут быть недоступны, неизвестно в каком фреймворке каждый из них может появиться)
def UIOSelectorsSecs_WaitAppear_List (inSpecificationListList,inWaitSecs,inFlagWaitAllInMoment=False): def UIOSelectorsSecs_WaitAppear_List (inSpecificationListList,inWaitSecs,inFlagWaitAllInMoment=False):
'''
Wait for many UI object will appear in GUI for inWaitSecs seconds.
:param inSpecificationListList: UIOSelector list.
Example: [
[{"title":"notepad"},{"title":"OK"}],
[{"title":"notepad"},{"title":"Cancel"}]
]
:param inWaitSecs: Float value (seconds) for wait UI element appear in GUI
:param inFlagWaitAllInMoment: True - Wait all UI objects from the UIOSelector list to be appeared
:return: List of index, which UI object UIO will be appeared. Example: [1] # Appear only UI object with UIO selector: [{"title":"notepad"},{"title":"Cancel"}]
'''
lResultFlag=False lResultFlag=False
lSecsSleep = 1 #Настроечный параметр lSecsSleep = 1 #Настроечный параметр
lSecsDone = 0 lSecsDone = 0
@ -327,6 +353,19 @@ def UIOSelectorsSecs_WaitAppear_List (inSpecificationListList,inWaitSecs,inFlagW
#####Внимание##### #####Внимание#####
##Функция ожидания пропажи элементов (тк элементы могут быть недоступны, неизвестно в каком фреймворке каждый из них может появиться) ##Функция ожидания пропажи элементов (тк элементы могут быть недоступны, неизвестно в каком фреймворке каждый из них может появиться)
def UIOSelectorsSecs_WaitDisappear_List (inSpecificationListList,inWaitSecs,inFlagWaitAllInMoment=False): def UIOSelectorsSecs_WaitDisappear_List (inSpecificationListList,inWaitSecs,inFlagWaitAllInMoment=False):
'''
Wait for many UI object will disappear in GUI for inWaitSecs seconds.
:param inSpecificationListList: UIOSelector list.
Example: [
[{"title":"notepad"},{"title":"OK"}],
[{"title":"notepad"},{"title":"Cancel"}]
]
:param inWaitSecs: Float value (seconds) for wait UI element disappear in GUI
:param inFlagWaitAllInMoment: True - Wait all UI objects from the UIOSelector list to be disappeared.
:return: List of index, which UI object UIO will be disappeared. Example: [1] # Disappear only UI object with UIO selector: [{"title":"notepad"},{"title":"Cancel"}]
:return:
'''
lResultFlag=False lResultFlag=False
lSecsSleep = 1 #Настроечный параметр lSecsSleep = 1 #Настроечный параметр
lSecsDone = 0 lSecsDone = 0
@ -363,6 +402,13 @@ def UIOSelectorsSecs_WaitDisappear_List (inSpecificationListList,inWaitSecs,inFl
#return: Bool - True - UIO is appear #return: Bool - True - UIO is appear
#old name - - #old name - -
def UIOSelectorSecs_WaitAppear_Bool (inSpecificationList,inWaitSecs): def UIOSelectorSecs_WaitAppear_Bool (inSpecificationList,inWaitSecs):
'''
Wait for UI object will appear in GUI for inWaitSecs seconds.
:param inSpecificationList: UIOSelector. Example: [{"title":"notepad"},{"title":"OK"}]
:param inWaitSecs: Float value (seconds) for wait UI element appear in GUI
:return: True - UI object will appear. False - else case
'''
lWaitAppearList=UIOSelectorsSecs_WaitAppear_List([inSpecificationList],inWaitSecs) lWaitAppearList=UIOSelectorsSecs_WaitAppear_List([inSpecificationList],inWaitSecs)
lResult=False lResult=False
if len(lWaitAppearList)>0: if len(lWaitAppearList)>0:
@ -375,6 +421,14 @@ def UIOSelectorSecs_WaitAppear_Bool (inSpecificationList,inWaitSecs):
#return: Bool - True - UIO is Disappear #return: Bool - True - UIO is Disappear
#old name - - #old name - -
def UIOSelectorSecs_WaitDisappear_Bool (inSpecificationList,inWaitSecs): def UIOSelectorSecs_WaitDisappear_Bool (inSpecificationList,inWaitSecs):
'''
Wait for UI object will disappear in GUI for inWaitSecs seconds.
:param inSpecificationList: UIOSelector.
Example: [{"title":"notepad"},{"title":"OK"}]
:param inWaitSecs: Float value (seconds) for wait UI element disappear in GUI
:return: True - UI object will disappear. False - else case
'''
lWaitDisappearList=UIOSelectorsSecs_WaitDisappear_List([inSpecificationList],inWaitSecs) lWaitDisappearList=UIOSelectorsSecs_WaitDisappear_List([inSpecificationList],inWaitSecs)
lResult=False lResult=False
if len(lWaitDisappearList)>0: if len(lWaitDisappearList)>0:
@ -386,6 +440,12 @@ def UIOSelectorSecs_WaitDisappear_Bool (inSpecificationList,inWaitSecs):
#old name - None #old name - None
#return None (if Process not found), int 32, or int 64 #return None (if Process not found), int 32, or int 64
def UIOSelector_Get_BitnessInt (inSpecificationList): def UIOSelector_Get_BitnessInt (inSpecificationList):
'''
Detect process bitness by the UI Object UIO Selector.
:param inSpecificationList: UIOSelector. Example: [{"title":"notepad"},{"title":"OK"}]
:return: int 32 or int 64
'''
lResult=None lResult=None
#Получить объект Application (Для проверки разрядности) #Получить объект Application (Для проверки разрядности)
lRootElement=PWASpecification_Get_PWAApplication(inSpecificationList) lRootElement=PWASpecification_Get_PWAApplication(inSpecificationList)
@ -401,6 +461,12 @@ def UIOSelector_Get_BitnessInt (inSpecificationList):
#old name - None #old name - None
#return None (if Process not found), int 32, or int 64 #return None (if Process not found), int 32, or int 64
def UIOSelector_Get_BitnessStr (inSpecificationList): def UIOSelector_Get_BitnessStr (inSpecificationList):
'''
Detect process bitness by the UI Object UIO Selector.
:param inSpecificationList: UIOSelector. Example: [{"title":"notepad"},{"title":"OK"}]
:return: str "32" or str "64"
'''
lResult=None lResult=None
#Получить объект Application (Для проверки разрядности) #Получить объект Application (Для проверки разрядности)
lRootElement=PWASpecification_Get_PWAApplication(inSpecificationList) lRootElement=PWASpecification_Get_PWAApplication(inSpecificationList)
@ -415,15 +481,23 @@ def UIOSelector_Get_BitnessStr (inSpecificationList):
#old name - None #old name - None
#return int 32, or int 64 #return int 32, or int 64
def Get_OSBitnessInt (): def Get_OSBitnessInt ():
lResult=32; '''
Detect OS bitness.
:return: int 32 or int 64
'''
lResult=32
if pywinauto.sysinfo.is_x64_OS(): if pywinauto.sysinfo.is_x64_OS():
lResult=64; lResult=64
return lResult; return lResult
################################################################################################# #################################################################################################
#Safe get other process or None if destination app is the other/same bitness
#inUIOSelector - selector of the destination
#return None or process (of the other bitness)
def UIOSelector_SafeOtherGet_Process(inUIOSelector): def UIOSelector_SafeOtherGet_Process(inUIOSelector):
'''
Safe get other process or None if destination app is the other/same bitness
:param inUIOSelector: UIO Selector of the UI object
:return: None or process (of the other bitness)
'''
#Default value #Default value
lResult = None lResult = None
#Go check bitness if selector exists #Go check bitness if selector exists
@ -434,11 +508,14 @@ def UIOSelector_SafeOtherGet_Process(inUIOSelector):
lResult = Utils.ProcessBitness.OtherProcessGet() lResult = Utils.ProcessBitness.OtherProcessGet()
return lResult return lResult
################################################################################################## ##################################################################################################
#inControlSpecificationArray - List of dict, dict in pywinauto.find_windows notation
#Backend selection - attribute "backend" ("win32" || "uia") in 1-st list element
#return list of UIO object
#old name - GetControl
def PWASpecification_Get_UIO(inControlSpecificationArray): def PWASpecification_Get_UIO(inControlSpecificationArray):
'''
#Backend def selection - attribute "backend" ("win32" || "uia") in 1-st list element
#old name - GetControl
:param inControlSpecificationArray: List of dict, dict in pywinauto.find_windows notation
:return: list of UIO object
'''
#Определение backend #Определение backend
lBackend=mDefaultPywinautoBackend lBackend=mDefaultPywinautoBackend
if "backend" in inControlSpecificationArray[0]: if "backend" in inControlSpecificationArray[0]:
@ -448,7 +525,7 @@ def PWASpecification_Get_UIO(inControlSpecificationArray):
inControlSpecificationOriginArray=copy.deepcopy(inControlSpecificationArray) inControlSpecificationOriginArray=copy.deepcopy(inControlSpecificationArray)
inControlSpecificationArray=UIOSelector_SearchProcessNormalize_UIOSelector(inControlSpecificationArray) inControlSpecificationArray=UIOSelector_SearchProcessNormalize_UIOSelector(inControlSpecificationArray)
#Выполнить идентификацию объектов, если передан массив #Выполнить идентификацию объектов, если передан массив
lResultList=[]; lResultList=[]
lTempObject=None lTempObject=None
if len(inControlSpecificationArray) > 0: if len(inControlSpecificationArray) > 0:
#Сформировать выборку элементов, которые подходят под первый уровень спецификации #Сформировать выборку элементов, которые подходят под первый уровень спецификации
@ -485,11 +562,13 @@ def PWASpecification_Get_UIO(inControlSpecificationArray):
lResultList.append(lTempObject) lResultList.append(lTempObject)
return lResultList return lResultList
################################################################################################## ##################################################################################################
#inControlSpecificationArray - List of dict, dict in pywinauto.find_windows notation
#Backend selection - attribute "backend" ("win32" || "uia") in 1-st list element
#return process application object
#old name - None
def PWASpecification_Get_PWAApplication(inControlSpecificationArray): def PWASpecification_Get_PWAApplication(inControlSpecificationArray):
'''
#Backend selection - attribute "backend" ("win32" || "uia") in 1-st list element
:param inControlSpecificationArray: List of dict, dict in pywinauto.find_windows notation
:return: process application object
'''
inControlSpecificationArray=copy.deepcopy(inControlSpecificationArray) inControlSpecificationArray=copy.deepcopy(inControlSpecificationArray)
#Определение backend #Определение backend
lBackend=mDefaultPywinautoBackend lBackend=mDefaultPywinautoBackend
@ -500,7 +579,7 @@ def PWASpecification_Get_PWAApplication(inControlSpecificationArray):
inControlSpecificationOriginArray=inControlSpecificationArray inControlSpecificationOriginArray=inControlSpecificationArray
inControlSpecificationArray=UIOSelector_SearchProcessNormalize_UIOSelector(inControlSpecificationArray) inControlSpecificationArray=UIOSelector_SearchProcessNormalize_UIOSelector(inControlSpecificationArray)
#Выполнить идентификацию объектов, если передан массив #Выполнить идентификацию объектов, если передан массив
lResultList=[]; lResultList=[]
lTempObject=None lTempObject=None
if len(inControlSpecificationArray) > 0: if len(inControlSpecificationArray) > 0:
#Выполнить подключение к объекту #Выполнить подключение к объекту
@ -521,10 +600,14 @@ def PWASpecification_Get_PWAApplication(inControlSpecificationArray):
return lTempObject return lTempObject
########################################################################################################### ###########################################################################################################
#inElementSpecificationList = UIOSelector (see description on the top of the document)
#result = pywinauto element wrapper instance or None
#old name - AutomationSearchMouseElement
def UIOSelector_SearchChildByMouse_UIO(inElementSpecification): def UIOSelector_SearchChildByMouse_UIO(inElementSpecification):
'''
UIOSelector (see description on the top of the document)
#old name - AutomationSearchMouseElement
:param inElementSpecification: UIOSelector of the UI Object
:return: pywinauto element wrapper instance or None
'''
lGUISearchElementSelected=None lGUISearchElementSelected=None
#Настройка - частота обновления подсвечивания #Настройка - частота обновления подсвечивания
lTimeSleepSeconds=0.4 lTimeSleepSeconds=0.4
@ -556,17 +639,21 @@ def UIOSelector_SearchChildByMouse_UIO(inElementSpecification):
UIO_Highlight(lElementFounded) UIO_Highlight(lElementFounded)
else: else:
#Была нажата клавиша Ctrl - выйти из цикла #Была нажата клавиша Ctrl - выйти из цикла
lFlagLoop=False; lFlagLoop=False
#Заснуть до следующего цикла #Заснуть до следующего цикла
time.sleep(lTimeSleepSeconds) time.sleep(lTimeSleepSeconds)
#Вернуть результат поиска #Вернуть результат поиска
return lElementFoundedList return lElementFoundedList
#################################################################################################### ####################################################################################################
#inElementSpecification - UIOSelector
#!!!!!Safe call is included (you can set activity and UIDesktop will choose the bitness and return the result)!!!!!
#old name - AutomationSearchMouseElementHierarchy #old name - AutomationSearchMouseElementHierarchy
def UIOSelector_SearchChildByMouse_UIOTree(inUIOSelector): def UIOSelector_SearchChildByMouse_UIOTree(inUIOSelector):
'''
!!!!Safe call is included (you can set activity and UIDesktop will choose the bitness and return the result)!!!!!
:param inUIOSelector: UIOSelector of the UI Object
:return: ?
'''
lItemInfo = [] lItemInfo = []
#Check the bitness #Check the bitness
lSafeOtherProcess = UIOSelector_SafeOtherGet_Process(inUIOSelector) lSafeOtherProcess = UIOSelector_SafeOtherGet_Process(inUIOSelector)
@ -750,7 +837,9 @@ def UIOSelector_Get_UIOActivityList (inUIOSelector):
#inUIOSelector #inUIOSelector
#inActionName - UIOActivity (name) from Pywinauto #inActionName - UIOActivity (name) from Pywinauto
#old name - ElementRunAction #old name - ElementRunAction
def UIOSelectorUIOActivity_Run_Dict(inUIOSelector, inActionName, inArgumentList=[], inkwArgumentObject={}): def UIOSelectorUIOActivity_Run_Dict(inUIOSelector, inActionName, inArgumentList=None, inkwArgumentObject=None):
if inArgumentList is None: inArgumentList=[] # 2021 02 22 Minor fix by Ivan Maslov
if inkwArgumentObject is None: inkwArgumentObject={} # 2021 02 22 Minor fix by Ivan Maslov
lResult={} lResult={}
#Check the bitness #Check the bitness
lSafeOtherProcess = UIOSelector_SafeOtherGet_Process(inUIOSelector) lSafeOtherProcess = UIOSelector_SafeOtherGet_Process(inUIOSelector)
@ -804,7 +893,7 @@ def UIOSelector_Get_UIOInfo(inUIOSelector):
#Подготовка входного массива #Подготовка входного массива
inUIOSelector=UIOSelector_SearchUIONormalize_UIOSelector(inUIOSelector) inUIOSelector=UIOSelector_SearchUIONormalize_UIOSelector(inUIOSelector)
#Выполнить идентификацию объектов, если передан массив #Выполнить идентификацию объектов, если передан массив
lResultList=[]; lResultList=[]
if len(inUIOSelector) > 0: if len(inUIOSelector) > 0:
#Получить объект #Получить объект
lTempObject=UIOSelector_Get_UIO(inUIOSelector) lTempObject=UIOSelector_Get_UIO(inUIOSelector)
@ -832,7 +921,8 @@ def UIOSelector_Get_UIOInfo(inUIOSelector):
#inHierarchyList: [{"index":<>,"element":<>}] - technical argument for internal purpose #inHierarchyList: [{"index":<>,"element":<>}] - technical argument for internal purpose
#result -List of dict [{"index":<>,"element":<>}] -- list of element hierarchy specifications #result -List of dict [{"index":<>,"element":<>}] -- list of element hierarchy specifications
#old name - GUISearchElementByRootXY #old name - GUISearchElementByRootXY
def UIOXY_SearchChild_ListDict(inRootElement,inX,inY,inHierarchyList=[]): def UIOXY_SearchChild_ListDict(inRootElement,inX,inY,inHierarchyList=None):
if inHierarchyList is None: inHierarchyList = []
#Инициализация результирующего значения #Инициализация результирующего значения
lResultElement = None lResultElement = None
lResultElementX1 = None lResultElementX1 = None
@ -921,7 +1011,8 @@ def UIOXY_SearchChild_ListDict(inRootElement,inX,inY,inHierarchyList=[]):
#!!!!!Safe call is included (you can set activity and UIDesktop will choose the bitness and return the result)!!!!! #!!!!!Safe call is included (you can set activity and UIDesktop will choose the bitness and return the result)!!!!!
#inControlSpecificationArray- UIOSelector #inControlSpecificationArray- UIOSelector
#old name - ElementGetChildElementList #old name - ElementGetChildElementList
def UIOSelector_GetChildList_UIOList(inUIOSelector=[], inBackend=mDefaultPywinautoBackend): def UIOSelector_GetChildList_UIOList(inUIOSelector=None, inBackend=mDefaultPywinautoBackend):
if inUIOSelector is None: inUIOSelector = []
#mRobotLogger.info(f"File!!!!") #mRobotLogger.info(f"File!!!!")
#mRobotLogger.info(f"inSelector:{str(inUIOSelector)}, inBackend:{str(inBackend)}") #mRobotLogger.info(f"inSelector:{str(inUIOSelector)}, inBackend:{str(inBackend)}")
#pdb.set_trace() #pdb.set_trace()
@ -1202,7 +1293,7 @@ def BackendStr_GetTopLevelList_UIOInfo(inBackend=mDefaultPywinautoBackend):
lResultList2=[] lResultList2=[]
for lI in lResultList: for lI in lResultList:
lTempObjectInfo=lI lTempObjectInfo=lI
lResultList2.append(UIOEI_Convert_UIOInfo(lI)); lResultList2.append(UIOEI_Convert_UIOInfo(lI))
return lResultList2 return lResultList2
################################################################################################### ###################################################################################################

@ -194,7 +194,7 @@
<td><p>Add activity in AgentDict.</p></td> <td><p>Add activity in AgentDict.</p></td>
</tr> </tr>
<tr class="row-even"><td><p><a class="reference internal" href="#pyOpenRPA.Orchestrator.__Orchestrator__.AgentOSCMD" title="pyOpenRPA.Orchestrator.__Orchestrator__.AgentOSCMD"><code class="xref py py-obj docutils literal notranslate"><span class="pre">AgentOSCMD</span></code></a>(inGSettings, inHostNameStr, …)</p></td> <tr class="row-even"><td><p><a class="reference internal" href="#pyOpenRPA.Orchestrator.__Orchestrator__.AgentOSCMD" title="pyOpenRPA.Orchestrator.__Orchestrator__.AgentOSCMD"><code class="xref py py-obj docutils literal notranslate"><span class="pre">AgentOSCMD</span></code></a>(inGSettings, inHostNameStr, …)</p></td>
<td><p>pyOpenRPA.Agent: Send CMD to OS.</p></td> <td><p>Send CMD to OS throught the pyOpenRPA.Agent daemon.</p></td>
</tr> </tr>
<tr class="row-odd"><td><p><a class="reference internal" href="#pyOpenRPA.Orchestrator.__Orchestrator__.AgentOSFileBinaryDataBase64StrCreate" title="pyOpenRPA.Orchestrator.__Orchestrator__.AgentOSFileBinaryDataBase64StrCreate"><code class="xref py py-obj docutils literal notranslate"><span class="pre">AgentOSFileBinaryDataBase64StrCreate</span></code></a>(…)</p></td> <tr class="row-odd"><td><p><a class="reference internal" href="#pyOpenRPA.Orchestrator.__Orchestrator__.AgentOSFileBinaryDataBase64StrCreate" title="pyOpenRPA.Orchestrator.__Orchestrator__.AgentOSFileBinaryDataBase64StrCreate"><code class="xref py py-obj docutils literal notranslate"><span class="pre">AgentOSFileBinaryDataBase64StrCreate</span></code></a>(…)</p></td>
<td><p>pyOpenRPA.Agent: Create binary file by the base64 string (safe for JSON transmission) def OSFileBinaryDataBase64StrCreate(inFilePathStr, inFileDataBase64Str,inGSettings = None): Send binary file to Agent (base64 string)</p></td> <td><p>pyOpenRPA.Agent: Create binary file by the base64 string (safe for JSON transmission) def OSFileBinaryDataBase64StrCreate(inFilePathStr, inFileDataBase64Str,inGSettings = None): Send binary file to Agent (base64 string)</p></td>
@ -236,7 +236,7 @@
<td><p>Check if there is any running process that contains the given name processName.</p></td> <td><p>Check if there is any running process that contains the given name processName.</p></td>
</tr> </tr>
<tr class="row-even"><td><p><a class="reference internal" href="#pyOpenRPA.Orchestrator.__Orchestrator__.ProcessListGet" title="pyOpenRPA.Orchestrator.__Orchestrator__.ProcessListGet"><code class="xref py py-obj docutils literal notranslate"><span class="pre">ProcessListGet</span></code></a>([inProcessNameWOExeList])</p></td> <tr class="row-even"><td><p><a class="reference internal" href="#pyOpenRPA.Orchestrator.__Orchestrator__.ProcessListGet" title="pyOpenRPA.Orchestrator.__Orchestrator__.ProcessListGet"><code class="xref py py-obj docutils literal notranslate"><span class="pre">ProcessListGet</span></code></a>([inProcessNameWOExeList])</p></td>
<td><p>Return process list on the orchestrator machine.</p></td> <td><p>Return process list on the orchestrator machine sorted by Memory Usage.</p></td>
</tr> </tr>
<tr class="row-odd"><td><p><a class="reference internal" href="#pyOpenRPA.Orchestrator.__Orchestrator__.ProcessStart" title="pyOpenRPA.Orchestrator.__Orchestrator__.ProcessStart"><code class="xref py py-obj docutils literal notranslate"><span class="pre">ProcessStart</span></code></a>(inPathStr, inArgList[, …])</p></td> <tr class="row-odd"><td><p><a class="reference internal" href="#pyOpenRPA.Orchestrator.__Orchestrator__.ProcessStart" title="pyOpenRPA.Orchestrator.__Orchestrator__.ProcessStart"><code class="xref py py-obj docutils literal notranslate"><span class="pre">ProcessStart</span></code></a>(inPathStr, inArgList[, …])</p></td>
<td><p>Start process locally.</p></td> <td><p>Start process locally.</p></td>
@ -257,7 +257,7 @@
<td><p>Update alias for def (can be used in ActivityItem in field Def).</p></td> <td><p>Update alias for def (can be used in ActivityItem in field Def).</p></td>
</tr> </tr>
<tr class="row-odd"><td><p><a class="reference internal" href="#pyOpenRPA.Orchestrator.__Orchestrator__.PythonStart" title="pyOpenRPA.Orchestrator.__Orchestrator__.PythonStart"><code class="xref py py-obj docutils literal notranslate"><span class="pre">PythonStart</span></code></a>(inModulePathStr, inDefNameStr[, …])</p></td> <tr class="row-odd"><td><p><a class="reference internal" href="#pyOpenRPA.Orchestrator.__Orchestrator__.PythonStart" title="pyOpenRPA.Orchestrator.__Orchestrator__.PythonStart"><code class="xref py py-obj docutils literal notranslate"><span class="pre">PythonStart</span></code></a>(inModulePathStr, inDefNameStr[, …])</p></td>
<td><p>Python import module and start def</p></td> <td><p>Import module and run def in the Orchestrator process.</p></td>
</tr> </tr>
<tr class="row-even"><td><p><a class="reference internal" href="#pyOpenRPA.Orchestrator.__Orchestrator__.RDPSessionCMDRun" title="pyOpenRPA.Orchestrator.__Orchestrator__.RDPSessionCMDRun"><code class="xref py py-obj docutils literal notranslate"><span class="pre">RDPSessionCMDRun</span></code></a>(inGSettings, …[, inModeStr])</p></td> <tr class="row-even"><td><p><a class="reference internal" href="#pyOpenRPA.Orchestrator.__Orchestrator__.RDPSessionCMDRun" title="pyOpenRPA.Orchestrator.__Orchestrator__.RDPSessionCMDRun"><code class="xref py py-obj docutils literal notranslate"><span class="pre">RDPSessionCMDRun</span></code></a>(inGSettings, …[, inModeStr])</p></td>
<td><p>Send command in RDP session</p></td> <td><p>Send command in RDP session</p></td>
@ -269,7 +269,7 @@
<td><p>Disconnect the RDP session</p></td> <td><p>Disconnect the RDP session</p></td>
</tr> </tr>
<tr class="row-odd"><td><p><a class="reference internal" href="#pyOpenRPA.Orchestrator.__Orchestrator__.RDPSessionDublicatesResolve" title="pyOpenRPA.Orchestrator.__Orchestrator__.RDPSessionDublicatesResolve"><code class="xref py py-obj docutils literal notranslate"><span class="pre">RDPSessionDublicatesResolve</span></code></a>(inGSettings)</p></td> <tr class="row-odd"><td><p><a class="reference internal" href="#pyOpenRPA.Orchestrator.__Orchestrator__.RDPSessionDublicatesResolve" title="pyOpenRPA.Orchestrator.__Orchestrator__.RDPSessionDublicatesResolve"><code class="xref py py-obj docutils literal notranslate"><span class="pre">RDPSessionDublicatesResolve</span></code></a>(inGSettings)</p></td>
<td><p>Search dublicates in GSettings RDPlist !def is developing!</p></td> <td><p>DEVELOPING Search dublicates in GSettings RDPlist !def is developing!</p></td>
</tr> </tr>
<tr class="row-even"><td><p><a class="reference internal" href="#pyOpenRPA.Orchestrator.__Orchestrator__.RDPSessionFileStoredRecieve" title="pyOpenRPA.Orchestrator.__Orchestrator__.RDPSessionFileStoredRecieve"><code class="xref py py-obj docutils literal notranslate"><span class="pre">RDPSessionFileStoredRecieve</span></code></a>(inGSettings, …)</p></td> <tr class="row-even"><td><p><a class="reference internal" href="#pyOpenRPA.Orchestrator.__Orchestrator__.RDPSessionFileStoredRecieve" title="pyOpenRPA.Orchestrator.__Orchestrator__.RDPSessionFileStoredRecieve"><code class="xref py py-obj docutils literal notranslate"><span class="pre">RDPSessionFileStoredRecieve</span></code></a>(inGSettings, …)</p></td>
<td><p>Receive file from Session RDP to Host using shared drive in RDP</p></td> <td><p>Receive file from Session RDP to Host using shared drive in RDP</p></td>
@ -296,10 +296,10 @@
<td><p>Check RDP Session responsibility TODO NEED DEV + TEST</p></td> <td><p>Check RDP Session responsibility TODO NEED DEV + TEST</p></td>
</tr> </tr>
<tr class="row-even"><td><p><a class="reference internal" href="#pyOpenRPA.Orchestrator.__Orchestrator__.RDPTemplateCreate" title="pyOpenRPA.Orchestrator.__Orchestrator__.RDPTemplateCreate"><code class="xref py py-obj docutils literal notranslate"><span class="pre">RDPTemplateCreate</span></code></a>(inLoginStr, inPasswordStr)</p></td> <tr class="row-even"><td><p><a class="reference internal" href="#pyOpenRPA.Orchestrator.__Orchestrator__.RDPTemplateCreate" title="pyOpenRPA.Orchestrator.__Orchestrator__.RDPTemplateCreate"><code class="xref py py-obj docutils literal notranslate"><span class="pre">RDPTemplateCreate</span></code></a>(inLoginStr, inPasswordStr)</p></td>
<td><p>Create some RDP template dict to use it when connect/reconnect</p></td> <td><p>Create RDP connect dict item/ Use it connect/reconnect (Orchestrator.RDPSessionConnect)</p></td>
</tr> </tr>
<tr class="row-odd"><td><p><a class="reference internal" href="#pyOpenRPA.Orchestrator.__Orchestrator__.SchedulerActivityTimeAddWeekly" title="pyOpenRPA.Orchestrator.__Orchestrator__.SchedulerActivityTimeAddWeekly"><code class="xref py py-obj docutils literal notranslate"><span class="pre">SchedulerActivityTimeAddWeekly</span></code></a>(inGSettings)</p></td> <tr class="row-odd"><td><p><a class="reference internal" href="#pyOpenRPA.Orchestrator.__Orchestrator__.SchedulerActivityTimeAddWeekly" title="pyOpenRPA.Orchestrator.__Orchestrator__.SchedulerActivityTimeAddWeekly"><code class="xref py py-obj docutils literal notranslate"><span class="pre">SchedulerActivityTimeAddWeekly</span></code></a>(inGSettings)</p></td>
<td><p>Add activity in time weekly</p></td> <td><p>Add activity item list in scheduler.</p></td>
</tr> </tr>
<tr class="row-even"><td><p><a class="reference internal" href="#pyOpenRPA.Orchestrator.__Orchestrator__.UACKeyListCheck" title="pyOpenRPA.Orchestrator.__Orchestrator__.UACKeyListCheck"><code class="xref py py-obj docutils literal notranslate"><span class="pre">UACKeyListCheck</span></code></a>(inRequest, inRoleKeyList)</p></td> <tr class="row-even"><td><p><a class="reference internal" href="#pyOpenRPA.Orchestrator.__Orchestrator__.UACKeyListCheck" title="pyOpenRPA.Orchestrator.__Orchestrator__.UACKeyListCheck"><code class="xref py py-obj docutils literal notranslate"><span class="pre">UACKeyListCheck</span></code></a>(inRequest, inRoleKeyList)</p></td>
<td><p>Check is client is has access for the key list</p></td> <td><p>Check is client is has access for the key list</p></td>
@ -359,7 +359,7 @@
<dl class="py function"> <dl class="py function">
<dt id="pyOpenRPA.Orchestrator.__Orchestrator__.AgentOSCMD"> <dt id="pyOpenRPA.Orchestrator.__Orchestrator__.AgentOSCMD">
<code class="sig-prename descclassname">pyOpenRPA.Orchestrator.__Orchestrator__.</code><code class="sig-name descname">AgentOSCMD</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inGSettings</span></em>, <em class="sig-param"><span class="n">inHostNameStr</span></em>, <em class="sig-param"><span class="n">inUserStr</span></em>, <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><span class="sig-paren">)</span><a class="reference internal" href="../_modules/pyOpenRPA/Orchestrator/__Orchestrator__.html#AgentOSCMD"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pyOpenRPA.Orchestrator.__Orchestrator__.AgentOSCMD" title="Permalink to this definition"></a></dt> <code class="sig-prename descclassname">pyOpenRPA.Orchestrator.__Orchestrator__.</code><code class="sig-name descname">AgentOSCMD</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inGSettings</span></em>, <em class="sig-param"><span class="n">inHostNameStr</span></em>, <em class="sig-param"><span class="n">inUserStr</span></em>, <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><span class="sig-paren">)</span><a class="reference internal" href="../_modules/pyOpenRPA/Orchestrator/__Orchestrator__.html#AgentOSCMD"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pyOpenRPA.Orchestrator.__Orchestrator__.AgentOSCMD" title="Permalink to this definition"></a></dt>
<dd><p>pyOpenRPA.Agent: Send CMD to OS. Result return to log + Orchestrator by the A2O connection <dd><p>Send CMD to OS throught the pyOpenRPA.Agent daemon. Result return to log + Orchestrator by the A2O connection
def OSCMD(inCMDStr, inRunAsyncBool=True, inGSettings=None): def OSCMD(inCMDStr, inRunAsyncBool=True, inGSettings=None):
Send to agent activity item to OSCMD</p> Send to agent activity item to OSCMD</p>
<dl class="field-list simple"> <dl class="field-list simple">
@ -640,12 +640,13 @@ Create Activity Item for the agent</p>
<dl class="py function"> <dl class="py function">
<dt id="pyOpenRPA.Orchestrator.__Orchestrator__.ProcessListGet"> <dt id="pyOpenRPA.Orchestrator.__Orchestrator__.ProcessListGet">
<code class="sig-prename descclassname">pyOpenRPA.Orchestrator.__Orchestrator__.</code><code class="sig-name descname">ProcessListGet</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inProcessNameWOExeList</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#ProcessListGet"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pyOpenRPA.Orchestrator.__Orchestrator__.ProcessListGet" title="Permalink to this definition"></a></dt> <code class="sig-prename descclassname">pyOpenRPA.Orchestrator.__Orchestrator__.</code><code class="sig-name descname">ProcessListGet</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inProcessNameWOExeList</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#ProcessListGet"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pyOpenRPA.Orchestrator.__Orchestrator__.ProcessListGet" title="Permalink to this definition"></a></dt>
<dd><p>Return process list on the orchestrator machine. You can determine the list of the processes you are interested - def will return the list about it.</p> <dd><p>Return process list on the orchestrator machine sorted by Memory Usage. You can determine the list of the processes you are interested - def will return the list about it.</p>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="c1"># USAGE</span> <div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="c1"># USAGE</span>
<span class="kn">from</span> <span class="nn">pyOpenRPA</span> <span class="kn">import</span> <span class="n">Orchestrator</span> <span class="kn">from</span> <span class="nn">pyOpenRPA</span> <span class="kn">import</span> <span class="n">Orchestrator</span>
<span class="n">lProcessList</span> <span class="o">=</span> <span class="n">Orchestrator</span><span class="o">.</span><span class="n">ProcessListGet</span><span class="p">()</span> <span class="n">lProcessList</span> <span class="o">=</span> <span class="n">Orchestrator</span><span class="o">.</span><span class="n">ProcessListGet</span><span class="p">()</span>
<span class="c1"># Return the list of the process on the machine. !ATTENTION! RUn orchestrator as administrator to get all process list on the machine.</span> <span class="c1"># Return the list of the process on the machine.</span>
<span class="c1"># !ATTENTION! RUn orchestrator as administrator to get all process list on the machine.</span>
</pre></div> </pre></div>
</div> </div>
<dl class="field-list simple"> <dl class="field-list simple">
@ -912,19 +913,32 @@ Create Activity Item for the agent</p>
<dl class="py function"> <dl class="py function">
<dt id="pyOpenRPA.Orchestrator.__Orchestrator__.PythonStart"> <dt id="pyOpenRPA.Orchestrator.__Orchestrator__.PythonStart">
<code class="sig-prename descclassname">pyOpenRPA.Orchestrator.__Orchestrator__.</code><code class="sig-name descname">PythonStart</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inModulePathStr</span></em>, <em class="sig-param"><span class="n">inDefNameStr</span></em>, <em class="sig-param"><span class="n">inArgList</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">inArgDict</span><span class="o">=</span><span class="default_value">None</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#PythonStart"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pyOpenRPA.Orchestrator.__Orchestrator__.PythonStart" title="Permalink to this definition"></a></dt> <code class="sig-prename descclassname">pyOpenRPA.Orchestrator.__Orchestrator__.</code><code class="sig-name descname">PythonStart</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inModulePathStr</span></em>, <em class="sig-param"><span class="n">inDefNameStr</span></em>, <em class="sig-param"><span class="n">inArgList</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">inArgDict</span><span class="o">=</span><span class="default_value">None</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#PythonStart"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pyOpenRPA.Orchestrator.__Orchestrator__.PythonStart" title="Permalink to this definition"></a></dt>
<dd><p>Python import module and start def</p> <dd><p>Import module and run def in the Orchestrator process.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Import module will be each time when PythonStart def will be called.</p>
</div>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="c1"># USAGE</span>
<span class="kn">from</span> <span class="nn">pyOpenRPA</span> <span class="kn">import</span> <span class="n">Orchestrator</span>
<span class="n">Orchestrator</span><span class="o">.</span><span class="n">PythonStart</span><span class="p">(</span>
<span class="n">inModulePathStr</span><span class="o">=</span><span class="s2">&quot;ModuleToCall.py&quot;</span><span class="p">,</span> <span class="c1"># inModulePathStr: Working Directory\ModuleToCall.py</span>
<span class="n">inDefNameStr</span><span class="o">=</span><span class="s2">&quot;TestDef&quot;</span><span class="p">)</span>
<span class="c1"># Import module in Orchestrator process and call def &quot;TestDef&quot; from module &quot;ModuleToCall.py&quot;</span>
</pre></div>
</div>
<dl class="field-list simple"> <dl class="field-list simple">
<dt class="field-odd">Parameters</dt> <dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple"> <dd class="field-odd"><ul class="simple">
<li><p><strong>inModulePathStr</strong> </p></li> <li><p><strong>inModulePathStr</strong> Absolute or relative (working directory of the orchestrator process) path to the importing module .py</p></li>
<li><p><strong>inDefNameStr</strong> </p></li> <li><p><strong>inDefNameStr</strong> Def name in module</p></li>
<li><p><strong>inArgList</strong> </p></li> <li><p><strong>inArgList</strong> List of the arguments for callable def</p></li>
<li><p><strong>inArgDict</strong> </p></li> <li><p><strong>inArgDict</strong> Dict of the named arguments for callable def</p></li>
<li><p><strong>inLogger</strong> </p></li> <li><p><strong>inLogger</strong> Logger instance to log some information when PythonStart def is running</p></li>
</ul> </ul>
</dd> </dd>
<dt class="field-even">Returns</dt> <dt class="field-even">Returns</dt>
<dd class="field-even"><p></p> <dd class="field-even"><p>None</p>
</dd> </dd>
</dl> </dl>
</dd></dl> </dd></dl>
@ -1008,7 +1022,7 @@ Var 2 (Backward compatibility): inGSettings, inRDPSessionKeyStr, inHostStr, inP
<dl class="py function"> <dl class="py function">
<dt id="pyOpenRPA.Orchestrator.__Orchestrator__.RDPSessionDublicatesResolve"> <dt id="pyOpenRPA.Orchestrator.__Orchestrator__.RDPSessionDublicatesResolve">
<code class="sig-prename descclassname">pyOpenRPA.Orchestrator.__Orchestrator__.</code><code class="sig-name descname">RDPSessionDublicatesResolve</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inGSettings</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/pyOpenRPA/Orchestrator/__Orchestrator__.html#RDPSessionDublicatesResolve"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pyOpenRPA.Orchestrator.__Orchestrator__.RDPSessionDublicatesResolve" title="Permalink to this definition"></a></dt> <code class="sig-prename descclassname">pyOpenRPA.Orchestrator.__Orchestrator__.</code><code class="sig-name descname">RDPSessionDublicatesResolve</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inGSettings</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/pyOpenRPA/Orchestrator/__Orchestrator__.html#RDPSessionDublicatesResolve"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pyOpenRPA.Orchestrator.__Orchestrator__.RDPSessionDublicatesResolve" title="Permalink to this definition"></a></dt>
<dd><p>Search dublicates in GSettings RDPlist <dd><p>DEVELOPING Search dublicates in GSettings RDPlist
!def is developing!</p> !def is developing!</p>
<dl class="field-list simple"> <dl class="field-list simple">
<dt class="field-odd">Parameters</dt> <dt class="field-odd">Parameters</dt>
@ -1170,23 +1184,71 @@ Var 2 (Backward compatibility): inGSettings, inRDPSessionKeyStr, inHostStr, inP
<dl class="py function"> <dl class="py function">
<dt id="pyOpenRPA.Orchestrator.__Orchestrator__.RDPTemplateCreate"> <dt id="pyOpenRPA.Orchestrator.__Orchestrator__.RDPTemplateCreate">
<code class="sig-prename descclassname">pyOpenRPA.Orchestrator.__Orchestrator__.</code><code class="sig-name descname">RDPTemplateCreate</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inLoginStr</span></em>, <em class="sig-param"><span class="n">inPasswordStr</span></em>, <em class="sig-param"><span class="n">inHostStr</span><span class="o">=</span><span class="default_value">'127.0.0.1'</span></em>, <em class="sig-param"><span class="n">inPortInt</span><span class="o">=</span><span class="default_value">3389</span></em>, <em class="sig-param"><span class="n">inWidthPXInt</span><span class="o">=</span><span class="default_value">1680</span></em>, <em class="sig-param"><span class="n">inHeightPXInt</span><span class="o">=</span><span class="default_value">1050</span></em>, <em class="sig-param"><span class="n">inUseBothMonitorBool</span><span class="o">=</span><span class="default_value">False</span></em>, <em class="sig-param"><span class="n">inDepthBitInt</span><span class="o">=</span><span class="default_value">32</span></em>, <em class="sig-param"><span class="n">inSharedDriveList</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#RDPTemplateCreate"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pyOpenRPA.Orchestrator.__Orchestrator__.RDPTemplateCreate" title="Permalink to this definition"></a></dt> <code class="sig-prename descclassname">pyOpenRPA.Orchestrator.__Orchestrator__.</code><code class="sig-name descname">RDPTemplateCreate</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inLoginStr</span></em>, <em class="sig-param"><span class="n">inPasswordStr</span></em>, <em class="sig-param"><span class="n">inHostStr</span><span class="o">=</span><span class="default_value">'127.0.0.1'</span></em>, <em class="sig-param"><span class="n">inPortInt</span><span class="o">=</span><span class="default_value">3389</span></em>, <em class="sig-param"><span class="n">inWidthPXInt</span><span class="o">=</span><span class="default_value">1680</span></em>, <em class="sig-param"><span class="n">inHeightPXInt</span><span class="o">=</span><span class="default_value">1050</span></em>, <em class="sig-param"><span class="n">inUseBothMonitorBool</span><span class="o">=</span><span class="default_value">False</span></em>, <em class="sig-param"><span class="n">inDepthBitInt</span><span class="o">=</span><span class="default_value">32</span></em>, <em class="sig-param"><span class="n">inSharedDriveList</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#RDPTemplateCreate"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pyOpenRPA.Orchestrator.__Orchestrator__.RDPTemplateCreate" title="Permalink to this definition"></a></dt>
<dd><p>Create some RDP template dict to use it when connect/reconnect</p> <dd><p>Create RDP connect dict item/ Use it connect/reconnect (Orchestrator.RDPSessionConnect)</p>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="c1"># USAGE</span>
<span class="kn">from</span> <span class="nn">pyOpenRPA</span> <span class="kn">import</span> <span class="n">Orchestrator</span>
<span class="n">lRDPItemDict</span> <span class="o">=</span> <span class="n">Orchestrator</span><span class="o">.</span><span class="n">RDPTemplateCreate</span><span class="p">(</span>
<span class="n">inLoginStr</span> <span class="o">=</span> <span class="s2">&quot;USER_99&quot;</span><span class="p">,</span>
<span class="n">inPasswordStr</span> <span class="o">=</span> <span class="s2">&quot;USER_PASS_HERE&quot;</span><span class="p">,</span>
<span class="n">inHostStr</span><span class="o">=</span><span class="s2">&quot;127.0.0.1&quot;</span><span class="p">,</span>
<span class="n">inPortInt</span> <span class="o">=</span> <span class="mi">3389</span><span class="p">,</span>
<span class="n">inWidthPXInt</span> <span class="o">=</span> <span class="mi">1680</span><span class="p">,</span>
<span class="n">inHeightPXInt</span> <span class="o">=</span> <span class="mi">1050</span><span class="p">,</span>
<span class="n">inUseBothMonitorBool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">,</span>
<span class="n">inDepthBitInt</span> <span class="o">=</span> <span class="mi">32</span><span class="p">,</span>
<span class="n">inSharedDriveList</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span>
<span class="c1"># lRDPTemplateDict= { # Init the configuration item</span>
<span class="c1"># &quot;Host&quot;: &quot;127.0.0.1&quot;, &quot;Port&quot;: &quot;3389&quot;, &quot;Login&quot;: &quot;USER_99&quot;, &quot;Password&quot;: &quot;USER_PASS_HERE&quot;,</span>
<span class="c1"># &quot;Screen&quot;: { &quot;Width&quot;: 1680, &quot;Height&quot;: 1050, &quot;FlagUseAllMonitors&quot;: False, &quot;DepthBit&quot;: &quot;32&quot; },</span>
<span class="c1"># &quot;SharedDriveList&quot;: [&quot;c&quot;],</span>
<span class="c1"># ###### Will updated in program ############</span>
<span class="c1"># &quot;SessionHex&quot;: &quot;77777sdfsdf77777dsfdfsf77777777&quot;, # Hex is created when robot runs, example &quot;&quot;</span>
<span class="c1"># &quot;SessionIsWindowExistBool&quot;: False, &quot;SessionIsWindowResponsibleBool&quot;: False, &quot;SessionIsIgnoredBool&quot;: False</span>
<span class="c1"># }</span>
</pre></div>
</div>
<dl class="field-list simple"> <dl class="field-list simple">
<dt class="field-odd">Parameters</dt> <dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple"> <dd class="field-odd"><ul class="simple">
<li><p><strong>inLoginStr</strong> </p></li> <li><p><strong>inLoginStr</strong> User/Robot Login, example “USER_99”</p></li>
<li><p><strong>inPasswordStr</strong> </p></li> <li><p><strong>inPasswordStr</strong> Password, example “USER_PASS_HERE”</p></li>
<li><p><strong>inHostStr</strong> </p></li> <li><p><strong>inHostStr</strong> Host address, example “77.77.22.22”</p></li>
<li><p><strong>inPortInt</strong> </p></li> <li><p><strong>inPortInt</strong> RDP Port, example “3389” (default)</p></li>
<li><p><strong>inWidthPXInt</strong> </p></li> <li><p><strong>inWidthPXInt</strong> Width of the remote desktop in pixels, example 1680</p></li>
<li><p><strong>inHeightPXInt</strong> </p></li> <li><p><strong>inHeightPXInt</strong> Height of the remote desktop in pixels, example 1050</p></li>
<li><p><strong>inUseBothMonitorBool</strong> </p></li> <li><p><strong>inUseBothMonitorBool</strong> True - connect to the RDP with both monitors. False - else case</p></li>
<li><p><strong>inDepthBitInt</strong> </p></li> <li><p><strong>inDepthBitInt</strong> Remote desktop bitness. Available: 32 or 24 or 16 or 15, example 32</p></li>
<li><p><strong>inSharedDriveList</strong> </p></li> <li><p><strong>inSharedDriveList</strong> Host local disc to connect to the RDP session. Example: [“c”, “d”]</p></li>
</ul> </ul>
</dd> </dd>
<dt class="field-even">Returns</dt> <dt class="field-even">Returns</dt>
<dd class="field-even"><p></p> <dd class="field-even"><p><dl>
<dt>{</dt><dd><p>“Host”: inHostStr, # Host address, example “77.77.22.22”
“Port”: str(inPortInt), # RDP Port, example “3389”
“Login”: inLoginStr, # Login, example “test”
“Password”: inPasswordStr, # Password, example “test”
“Screen”: {</p>
<blockquote>
<div><p>”Width”: inWidthPXInt, # Width of the remote desktop in pixels, example 1680
“Height”: inHeightPXInt, # Height of the remote desktop in pixels, example 1050
# “640x480” or “1680x1050” or “FullScreen”. If Resolution not exists set full screen, example
“FlagUseAllMonitors”: inUseBothMonitorBool, # True or False, example False
“DepthBit”: str(inDepthBitInt) # “32” or “24” or “16” or “15”, example “32”</p>
</div></blockquote>
<p>},
“SharedDriveList”: inSharedDriveList, # List of the Root sesion hard drives, example [“c”]
###### Will updated in program ############
“SessionHex”: “77777sdfsdf77777dsfdfsf77777777”, # Hex is created when robot runs, example “”
“SessionIsWindowExistBool”: False,
# Flag if the RDP window is exist, old name “FlagSessionIsActive”. Check every n seconds , example False
“SessionIsWindowResponsibleBool”: False,
# Flag if RDP window is responsible (recieve commands). Check every nn seconds. If window is Responsible - window is Exist too , example False
“SessionIsIgnoredBool”: False # Flag to ignore RDP window False - dont ignore, True - ignore, example False</p>
</dd>
</dl>
<p>}</p>
</p>
</dd> </dd>
</dl> </dl>
</dd></dl> </dd></dl>
@ -1194,18 +1256,38 @@ Var 2 (Backward compatibility): inGSettings, inRDPSessionKeyStr, inHostStr, inP
<dl class="py function"> <dl class="py function">
<dt id="pyOpenRPA.Orchestrator.__Orchestrator__.SchedulerActivityTimeAddWeekly"> <dt id="pyOpenRPA.Orchestrator.__Orchestrator__.SchedulerActivityTimeAddWeekly">
<code class="sig-prename descclassname">pyOpenRPA.Orchestrator.__Orchestrator__.</code><code class="sig-name descname">SchedulerActivityTimeAddWeekly</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inGSettings</span></em>, <em class="sig-param"><span class="n">inTimeHHMMStr</span><span class="o">=</span><span class="default_value">'23:55:'</span></em>, <em class="sig-param"><span class="n">inWeekdayList</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">inActivityList</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#SchedulerActivityTimeAddWeekly"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pyOpenRPA.Orchestrator.__Orchestrator__.SchedulerActivityTimeAddWeekly" title="Permalink to this definition"></a></dt> <code class="sig-prename descclassname">pyOpenRPA.Orchestrator.__Orchestrator__.</code><code class="sig-name descname">SchedulerActivityTimeAddWeekly</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inGSettings</span></em>, <em class="sig-param"><span class="n">inTimeHHMMStr</span><span class="o">=</span><span class="default_value">'23:55:'</span></em>, <em class="sig-param"><span class="n">inWeekdayList</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">inActivityList</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#SchedulerActivityTimeAddWeekly"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pyOpenRPA.Orchestrator.__Orchestrator__.SchedulerActivityTimeAddWeekly" title="Permalink to this definition"></a></dt>
<dd><p>Add activity in time weekly</p> <dd><p>Add activity item list in scheduler. You can set weekday list and set time when launch. Activity list will be executed at planned time/day.</p>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="c1"># USAGE</span>
<span class="kn">from</span> <span class="nn">pyOpenRPA</span> <span class="kn">import</span> <span class="n">Orchestrator</span>
<span class="c1"># EXAMPLE 1</span>
<span class="k">def</span> <span class="nf">TestDef</span><span class="p">(</span><span class="n">inArg1Str</span><span class="p">):</span>
<span class="k">pass</span>
<span class="n">lActivityItem</span> <span class="o">=</span> <span class="n">Orchestrator</span><span class="o">.</span><span class="n">ProcessorActivityItemCreate</span><span class="p">(</span>
<span class="n">inDef</span> <span class="o">=</span> <span class="n">TestDef</span><span class="p">,</span>
<span class="n">inArgList</span><span class="o">=</span><span class="p">[],</span>
<span class="n">inArgDict</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;inArg1Str&quot;</span><span class="p">:</span> <span class="s2">&quot;ArgValueStr&quot;</span><span class="p">},</span>
<span class="n">inArgGSettingsStr</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
<span class="n">inArgLoggerStr</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span>
<span class="n">Orchestrator</span><span class="o">.</span><span class="n">SchedulerActivityTimeAddWeekly</span><span class="p">(</span>
<span class="n">inGSettings</span> <span class="o">=</span> <span class="n">gSettingsDict</span><span class="p">,</span>
<span class="n">inTimeHHMMStr</span> <span class="o">=</span> <span class="s2">&quot;04:34&quot;</span><span class="p">,</span>
<span class="n">inWeekdayList</span><span class="o">=</span><span class="p">[</span><span class="mi">2</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="mi">4</span><span class="p">],</span>
<span class="n">inActivityList</span> <span class="o">=</span> <span class="p">[</span><span class="n">lActivityItem</span><span class="p">])</span>
<span class="c1"># Activity will be executed at 04:34 Wednesday (2), thursday (3), friday (4)</span>
</pre></div>
</div>
<dl class="field-list simple"> <dl class="field-list simple">
<dt class="field-odd">Parameters</dt> <dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple"> <dd class="field-odd"><ul class="simple">
<li><p><strong>inGSettings</strong> Global settings dict (singleton)</p></li> <li><p><strong>inGSettings</strong> Global settings dict (singleton)</p></li>
<li><p><strong>inTimeHHMMStr</strong> </p></li> <li><p><strong>inTimeHHMMStr</strong> Activation time from “00:00” to “23:59”. Example: “05:29”</p></li>
<li><p><strong>inWeekdayList</strong> </p></li> <li><p><strong>inWeekdayList</strong> Week day list to initiate activity list. Use int from 0 (monday) to 6 (sunday) as list items. Example: [0,1,2,3,4]. Default value is everyday ([0,1,2,3,4,5,6])</p></li>
<li><p><strong>inActivityList</strong> </p></li> <li><p><strong>inActivityList</strong> Activity list structure</p></li>
</ul> </ul>
</dd> </dd>
<dt class="field-even">Returns</dt> <dt class="field-even">Returns</dt>
<dd class="field-even"><p></p> <dd class="field-even"><p>None</p>
</dd> </dd>
</dl> </dl>
</dd></dl> </dd></dl>

@ -174,6 +174,141 @@
<p>pyOpenRPA Robot is the python package.</p> <p>pyOpenRPA Robot is the python package.</p>
<div class="section" id="module-pyOpenRPA.Robot.UIDesktop"> <div class="section" id="module-pyOpenRPA.Robot.UIDesktop">
<span id="pyopenrpa-robot"></span><h2>pyOpenRPA Robot<a class="headerlink" href="#module-pyOpenRPA.Robot.UIDesktop" title="Permalink to this headline"></a></h2> <span id="pyopenrpa-robot"></span><h2>pyOpenRPA Robot<a class="headerlink" href="#module-pyOpenRPA.Robot.UIDesktop" title="Permalink to this headline"></a></h2>
<dl class="py function">
<dt id="pyOpenRPA.Robot.UIDesktop.Get_OSBitnessInt">
<code class="sig-prename descclassname">pyOpenRPA.Robot.UIDesktop.</code><code class="sig-name descname">Get_OSBitnessInt</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/pyOpenRPA/Robot/UIDesktop.html#Get_OSBitnessInt"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pyOpenRPA.Robot.UIDesktop.Get_OSBitnessInt" title="Permalink to this definition"></a></dt>
<dd><p>Detect OS bitness.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p>int 32 or int 64</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt id="pyOpenRPA.Robot.UIDesktop.PWASpecification_Get_PWAApplication">
<code class="sig-prename descclassname">pyOpenRPA.Robot.UIDesktop.</code><code class="sig-name descname">PWASpecification_Get_PWAApplication</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inControlSpecificationArray</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/pyOpenRPA/Robot/UIDesktop.html#PWASpecification_Get_PWAApplication"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pyOpenRPA.Robot.UIDesktop.PWASpecification_Get_PWAApplication" title="Permalink to this definition"></a></dt>
<dd><p>#Backend selection - attribute “backend” (“win32” || “uia”) in 1-st list element</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>inControlSpecificationArray</strong> List of dict, dict in pywinauto.find_windows notation</p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>process application object</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt id="pyOpenRPA.Robot.UIDesktop.PWASpecification_Get_UIO">
<code class="sig-prename descclassname">pyOpenRPA.Robot.UIDesktop.</code><code class="sig-name descname">PWASpecification_Get_UIO</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inControlSpecificationArray</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/pyOpenRPA/Robot/UIDesktop.html#PWASpecification_Get_UIO"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pyOpenRPA.Robot.UIDesktop.PWASpecification_Get_UIO" title="Permalink to this definition"></a></dt>
<dd><p>#Backend def selection - attribute “backend” (“win32” || “uia”) in 1-st list element
#old name - GetControl</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>inControlSpecificationArray</strong> List of dict, dict in pywinauto.find_windows notation</p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>list of UIO object</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt id="pyOpenRPA.Robot.UIDesktop.UIOSelectorSecs_WaitAppear_Bool">
<code class="sig-prename descclassname">pyOpenRPA.Robot.UIDesktop.</code><code class="sig-name descname">UIOSelectorSecs_WaitAppear_Bool</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inSpecificationList</span></em>, <em class="sig-param"><span class="n">inWaitSecs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/pyOpenRPA/Robot/UIDesktop.html#UIOSelectorSecs_WaitAppear_Bool"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pyOpenRPA.Robot.UIDesktop.UIOSelectorSecs_WaitAppear_Bool" title="Permalink to this definition"></a></dt>
<dd><p>Wait for UI object will appear in GUI for inWaitSecs seconds.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>inSpecificationList</strong> UIOSelector. Example: [{“title”:”notepad”},{“title”:”OK”}]</p></li>
<li><p><strong>inWaitSecs</strong> Float value (seconds) for wait UI element appear in GUI</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>True - UI object will appear. False - else case</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt id="pyOpenRPA.Robot.UIDesktop.UIOSelectorSecs_WaitDisappear_Bool">
<code class="sig-prename descclassname">pyOpenRPA.Robot.UIDesktop.</code><code class="sig-name descname">UIOSelectorSecs_WaitDisappear_Bool</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inSpecificationList</span></em>, <em class="sig-param"><span class="n">inWaitSecs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/pyOpenRPA/Robot/UIDesktop.html#UIOSelectorSecs_WaitDisappear_Bool"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pyOpenRPA.Robot.UIDesktop.UIOSelectorSecs_WaitDisappear_Bool" title="Permalink to this definition"></a></dt>
<dd><p>Wait for UI object will disappear in GUI for inWaitSecs seconds.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>inSpecificationList</strong> UIOSelector.
Example: [{“title”:”notepad”},{“title”:”OK”}]</p></li>
<li><p><strong>inWaitSecs</strong> Float value (seconds) for wait UI element disappear in GUI</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>True - UI object will disappear. False - else case</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt id="pyOpenRPA.Robot.UIDesktop.UIOSelector_Exist_Bool">
<code class="sig-prename descclassname">pyOpenRPA.Robot.UIDesktop.</code><code class="sig-name descname">UIOSelector_Exist_Bool</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inUIOSelector</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/pyOpenRPA/Robot/UIDesktop.html#UIOSelector_Exist_Bool"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pyOpenRPA.Robot.UIDesktop.UIOSelector_Exist_Bool" title="Permalink to this definition"></a></dt>
<dd><p>Check if object is exist by the UIO selector.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>inUIOSelector</strong> </p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>True - Object is exist. False - else case</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt id="pyOpenRPA.Robot.UIDesktop.UIOSelector_Get_BitnessInt">
<code class="sig-prename descclassname">pyOpenRPA.Robot.UIDesktop.</code><code class="sig-name descname">UIOSelector_Get_BitnessInt</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inSpecificationList</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/pyOpenRPA/Robot/UIDesktop.html#UIOSelector_Get_BitnessInt"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pyOpenRPA.Robot.UIDesktop.UIOSelector_Get_BitnessInt" title="Permalink to this definition"></a></dt>
<dd><p>Detect process bitness by the UI Object UIO Selector.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>inSpecificationList</strong> UIOSelector. Example: [{“title”:”notepad”},{“title”:”OK”}]</p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>int 32 or int 64</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt id="pyOpenRPA.Robot.UIDesktop.UIOSelector_Get_BitnessStr">
<code class="sig-prename descclassname">pyOpenRPA.Robot.UIDesktop.</code><code class="sig-name descname">UIOSelector_Get_BitnessStr</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inSpecificationList</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/pyOpenRPA/Robot/UIDesktop.html#UIOSelector_Get_BitnessStr"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pyOpenRPA.Robot.UIDesktop.UIOSelector_Get_BitnessStr" title="Permalink to this definition"></a></dt>
<dd><p>Detect process bitness by the UI Object UIO Selector.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>inSpecificationList</strong> UIOSelector. Example: [{“title”:”notepad”},{“title”:”OK”}]</p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>str “32” or str “64”</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt id="pyOpenRPA.Robot.UIDesktop.UIOSelector_Get_UIO">
<code class="sig-prename descclassname">pyOpenRPA.Robot.UIDesktop.</code><code class="sig-name descname">UIOSelector_Get_UIO</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inSpecificationList</span></em>, <em class="sig-param"><span class="n">inElement</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">inFlagRaiseException</span><span class="o">=</span><span class="default_value">True</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/pyOpenRPA/Robot/UIDesktop.html#UIOSelector_Get_UIO"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pyOpenRPA.Robot.UIDesktop.UIOSelector_Get_UIO" title="Permalink to this definition"></a></dt>
<dd><p>Get the pywinauto object by the UIO selector.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>inSpecificationList</strong> </p></li>
<li><p><strong>inElement</strong> </p></li>
<li><p><strong>inFlagRaiseException</strong> </p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p></p>
</dd>
</dl>
</dd></dl>
<dl class="py function"> <dl class="py function">
<dt id="pyOpenRPA.Robot.UIDesktop.UIOSelector_Get_UIOList"> <dt id="pyOpenRPA.Robot.UIDesktop.UIOSelector_Get_UIOList">
<code class="sig-prename descclassname">pyOpenRPA.Robot.UIDesktop.</code><code class="sig-name descname">UIOSelector_Get_UIOList</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inSpecificationList</span></em>, <em class="sig-param"><span class="n">inElement</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">inFlagRaiseException</span><span class="o">=</span><span class="default_value">True</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/pyOpenRPA/Robot/UIDesktop.html#UIOSelector_Get_UIOList"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pyOpenRPA.Robot.UIDesktop.UIOSelector_Get_UIOList" title="Permalink to this definition"></a></dt> <code class="sig-prename descclassname">pyOpenRPA.Robot.UIDesktop.</code><code class="sig-name descname">UIOSelector_Get_UIOList</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inSpecificationList</span></em>, <em class="sig-param"><span class="n">inElement</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">inFlagRaiseException</span><span class="o">=</span><span class="default_value">True</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/pyOpenRPA/Robot/UIDesktop.html#UIOSelector_Get_UIOList"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pyOpenRPA.Robot.UIDesktop.UIOSelector_Get_UIOList" title="Permalink to this definition"></a></dt>
@ -192,6 +327,103 @@
</dl> </dl>
</dd></dl> </dd></dl>
<dl class="py function">
<dt id="pyOpenRPA.Robot.UIDesktop.UIOSelector_SafeOtherGet_Process">
<code class="sig-prename descclassname">pyOpenRPA.Robot.UIDesktop.</code><code class="sig-name descname">UIOSelector_SafeOtherGet_Process</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inUIOSelector</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/pyOpenRPA/Robot/UIDesktop.html#UIOSelector_SafeOtherGet_Process"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pyOpenRPA.Robot.UIDesktop.UIOSelector_SafeOtherGet_Process" title="Permalink to this definition"></a></dt>
<dd><p>Safe get other process or None if destination app is the other/same bitness</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>inUIOSelector</strong> UIO Selector of the UI object</p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>None or process (of the other bitness)</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt id="pyOpenRPA.Robot.UIDesktop.UIOSelector_SearchChildByMouse_UIO">
<code class="sig-prename descclassname">pyOpenRPA.Robot.UIDesktop.</code><code class="sig-name descname">UIOSelector_SearchChildByMouse_UIO</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inElementSpecification</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/pyOpenRPA/Robot/UIDesktop.html#UIOSelector_SearchChildByMouse_UIO"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pyOpenRPA.Robot.UIDesktop.UIOSelector_SearchChildByMouse_UIO" title="Permalink to this definition"></a></dt>
<dd><p>UIOSelector (see description on the top of the document)
#old name - AutomationSearchMouseElement</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>inElementSpecification</strong> UIOSelector of the UI Object</p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>pywinauto element wrapper instance or None</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt id="pyOpenRPA.Robot.UIDesktop.UIOSelector_SearchChildByMouse_UIOTree">
<code class="sig-prename descclassname">pyOpenRPA.Robot.UIDesktop.</code><code class="sig-name descname">UIOSelector_SearchChildByMouse_UIOTree</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inUIOSelector</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/pyOpenRPA/Robot/UIDesktop.html#UIOSelector_SearchChildByMouse_UIOTree"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pyOpenRPA.Robot.UIDesktop.UIOSelector_SearchChildByMouse_UIOTree" title="Permalink to this definition"></a></dt>
<dd><p>!!!!Safe call is included (you can set activity and UIDesktop will choose the bitness and return the result)!!!!!</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>inUIOSelector</strong> UIOSelector of the UI Object</p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><p>?</p>
</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt id="pyOpenRPA.Robot.UIDesktop.UIOSelectorsSecs_WaitAppear_List">
<code class="sig-prename descclassname">pyOpenRPA.Robot.UIDesktop.</code><code class="sig-name descname">UIOSelectorsSecs_WaitAppear_List</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inSpecificationListList</span></em>, <em class="sig-param"><span class="n">inWaitSecs</span></em>, <em class="sig-param"><span class="n">inFlagWaitAllInMoment</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#UIOSelectorsSecs_WaitAppear_List"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pyOpenRPA.Robot.UIDesktop.UIOSelectorsSecs_WaitAppear_List" title="Permalink to this definition"></a></dt>
<dd><p>Wait for many UI object will appear in GUI for inWaitSecs seconds.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>inSpecificationListList</strong> <p>UIOSelector list.
Example: [</p>
<blockquote>
<div><p>[{“title”:”notepad”},{“title”:”OK”}],
[{“title”:”notepad”},{“title”:”Cancel”}]</p>
</div></blockquote>
<p>]</p>
</p></li>
<li><p><strong>inWaitSecs</strong> Float value (seconds) for wait UI element appear in GUI</p></li>
<li><p><strong>inFlagWaitAllInMoment</strong> True - Wait all UI objects from the UIOSelector list to be appeared</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>List of index, which UI object UIO will be appeared. Example: [1] # Appear only UI object with UIO selector: [{“title”:”notepad”},{“title”:”Cancel”}]</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt id="pyOpenRPA.Robot.UIDesktop.UIOSelectorsSecs_WaitDisappear_List">
<code class="sig-prename descclassname">pyOpenRPA.Robot.UIDesktop.</code><code class="sig-name descname">UIOSelectorsSecs_WaitDisappear_List</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inSpecificationListList</span></em>, <em class="sig-param"><span class="n">inWaitSecs</span></em>, <em class="sig-param"><span class="n">inFlagWaitAllInMoment</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#UIOSelectorsSecs_WaitDisappear_List"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pyOpenRPA.Robot.UIDesktop.UIOSelectorsSecs_WaitDisappear_List" title="Permalink to this definition"></a></dt>
<dd><p>Wait for many UI object will disappear in GUI for inWaitSecs seconds.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>inSpecificationListList</strong> <p>UIOSelector list.
Example: [</p>
<blockquote>
<div><p>[{“title”:”notepad”},{“title”:”OK”}],
[{“title”:”notepad”},{“title”:”Cancel”}]</p>
</div></blockquote>
<p>]</p>
</p></li>
<li><p><strong>inWaitSecs</strong> Float value (seconds) for wait UI element disappear in GUI</p></li>
<li><p><strong>inFlagWaitAllInMoment</strong> True - Wait all UI objects from the UIOSelector list to be disappeared.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>List of index, which UI object UIO will be disappeared. Example: [1] # Disappear only UI object with UIO selector: [{“title”:”notepad”},{“title”:”Cancel”}]</p>
</dd>
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p></p>
</dd>
</dl>
</dd></dl>
</div> </div>
</div> </div>

@ -191,11 +191,188 @@
<col style="width: 90%" /> <col style="width: 90%" />
</colgroup> </colgroup>
<tbody> <tbody>
<tr class="row-odd"><td><p><a class="reference internal" href="#pyOpenRPA.Robot.UIDesktop.UIOSelector_Get_UIOList" title="pyOpenRPA.Robot.UIDesktop.UIOSelector_Get_UIOList"><code class="xref py py-obj docutils literal notranslate"><span class="pre">UIOSelector_Get_UIOList</span></code></a>(inSpecificationList)</p></td> <tr class="row-odd"><td><p><a class="reference internal" href="#pyOpenRPA.Robot.UIDesktop.Get_OSBitnessInt" title="pyOpenRPA.Robot.UIDesktop.Get_OSBitnessInt"><code class="xref py py-obj docutils literal notranslate"><span class="pre">Get_OSBitnessInt</span></code></a>()</p></td>
<td><p>Detect OS bitness.</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="#pyOpenRPA.Robot.UIDesktop.PWASpecification_Get_PWAApplication" title="pyOpenRPA.Robot.UIDesktop.PWASpecification_Get_PWAApplication"><code class="xref py py-obj docutils literal notranslate"><span class="pre">PWASpecification_Get_PWAApplication</span></code></a>(…)</p></td>
<td><p>#Backend selection - attribute “backend” (“win32” || “uia”) in 1-st list element</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference internal" href="#pyOpenRPA.Robot.UIDesktop.PWASpecification_Get_UIO" title="pyOpenRPA.Robot.UIDesktop.PWASpecification_Get_UIO"><code class="xref py py-obj docutils literal notranslate"><span class="pre">PWASpecification_Get_UIO</span></code></a>(…)</p></td>
<td><p>#Backend def selection - attribute “backend” (“win32” || “uia”) in 1-st list element #old name - GetControl</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="#pyOpenRPA.Robot.UIDesktop.UIOSelectorSecs_WaitAppear_Bool" title="pyOpenRPA.Robot.UIDesktop.UIOSelectorSecs_WaitAppear_Bool"><code class="xref py py-obj docutils literal notranslate"><span class="pre">UIOSelectorSecs_WaitAppear_Bool</span></code></a>(…)</p></td>
<td><p>Wait for UI object will appear in GUI for inWaitSecs seconds.</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference internal" href="#pyOpenRPA.Robot.UIDesktop.UIOSelectorSecs_WaitDisappear_Bool" title="pyOpenRPA.Robot.UIDesktop.UIOSelectorSecs_WaitDisappear_Bool"><code class="xref py py-obj docutils literal notranslate"><span class="pre">UIOSelectorSecs_WaitDisappear_Bool</span></code></a>(…)</p></td>
<td><p>Wait for UI object will disappear in GUI for inWaitSecs seconds.</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="#pyOpenRPA.Robot.UIDesktop.UIOSelector_Exist_Bool" title="pyOpenRPA.Robot.UIDesktop.UIOSelector_Exist_Bool"><code class="xref py py-obj docutils literal notranslate"><span class="pre">UIOSelector_Exist_Bool</span></code></a>(inUIOSelector)</p></td>
<td><p>Check if object is exist by the UIO selector.</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference internal" href="#pyOpenRPA.Robot.UIDesktop.UIOSelector_Get_BitnessInt" title="pyOpenRPA.Robot.UIDesktop.UIOSelector_Get_BitnessInt"><code class="xref py py-obj docutils literal notranslate"><span class="pre">UIOSelector_Get_BitnessInt</span></code></a>(inSpecificationList)</p></td>
<td><p>Detect process bitness by the UI Object UIO Selector.</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="#pyOpenRPA.Robot.UIDesktop.UIOSelector_Get_BitnessStr" title="pyOpenRPA.Robot.UIDesktop.UIOSelector_Get_BitnessStr"><code class="xref py py-obj docutils literal notranslate"><span class="pre">UIOSelector_Get_BitnessStr</span></code></a>(inSpecificationList)</p></td>
<td><p>Detect process bitness by the UI Object UIO Selector.</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference internal" href="#pyOpenRPA.Robot.UIDesktop.UIOSelector_Get_UIO" title="pyOpenRPA.Robot.UIDesktop.UIOSelector_Get_UIO"><code class="xref py py-obj docutils literal notranslate"><span class="pre">UIOSelector_Get_UIO</span></code></a>(inSpecificationList[, …])</p></td>
<td><p>Get the pywinauto object by the UIO selector.</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="#pyOpenRPA.Robot.UIDesktop.UIOSelector_Get_UIOList" title="pyOpenRPA.Robot.UIDesktop.UIOSelector_Get_UIOList"><code class="xref py py-obj docutils literal notranslate"><span class="pre">UIOSelector_Get_UIOList</span></code></a>(inSpecificationList)</p></td>
<td><p>Get the UIO list by the selector</p></td> <td><p>Get the UIO list by the selector</p></td>
</tr> </tr>
<tr class="row-odd"><td><p><a class="reference internal" href="#pyOpenRPA.Robot.UIDesktop.UIOSelector_SafeOtherGet_Process" title="pyOpenRPA.Robot.UIDesktop.UIOSelector_SafeOtherGet_Process"><code class="xref py py-obj docutils literal notranslate"><span class="pre">UIOSelector_SafeOtherGet_Process</span></code></a>(inUIOSelector)</p></td>
<td><p>Safe get other process or None if destination app is the other/same bitness</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="#pyOpenRPA.Robot.UIDesktop.UIOSelector_SearchChildByMouse_UIO" title="pyOpenRPA.Robot.UIDesktop.UIOSelector_SearchChildByMouse_UIO"><code class="xref py py-obj docutils literal notranslate"><span class="pre">UIOSelector_SearchChildByMouse_UIO</span></code></a>(…)</p></td>
<td><p>UIOSelector (see description on the top of the document) #old name - AutomationSearchMouseElement</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference internal" href="#pyOpenRPA.Robot.UIDesktop.UIOSelector_SearchChildByMouse_UIOTree" title="pyOpenRPA.Robot.UIDesktop.UIOSelector_SearchChildByMouse_UIOTree"><code class="xref py py-obj docutils literal notranslate"><span class="pre">UIOSelector_SearchChildByMouse_UIOTree</span></code></a>(…)</p></td>
<td><p>!!!!Safe call is included (you can set activity and UIDesktop will choose the bitness and return the result)!!!!!</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="#pyOpenRPA.Robot.UIDesktop.UIOSelectorsSecs_WaitAppear_List" title="pyOpenRPA.Robot.UIDesktop.UIOSelectorsSecs_WaitAppear_List"><code class="xref py py-obj docutils literal notranslate"><span class="pre">UIOSelectorsSecs_WaitAppear_List</span></code></a>(…[, …])</p></td>
<td><p>Wait for many UI object will appear in GUI for inWaitSecs seconds.</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference internal" href="#pyOpenRPA.Robot.UIDesktop.UIOSelectorsSecs_WaitDisappear_List" title="pyOpenRPA.Robot.UIDesktop.UIOSelectorsSecs_WaitDisappear_List"><code class="xref py py-obj docutils literal notranslate"><span class="pre">UIOSelectorsSecs_WaitDisappear_List</span></code></a>(…[, …])</p></td>
<td><p>Wait for many UI object will disappear in GUI for inWaitSecs seconds.</p></td>
</tr>
</tbody> </tbody>
</table> </table>
<dl class="py function">
<dt id="pyOpenRPA.Robot.UIDesktop.Get_OSBitnessInt">
<code class="sig-prename descclassname">pyOpenRPA.Robot.UIDesktop.</code><code class="sig-name descname">Get_OSBitnessInt</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/pyOpenRPA/Robot/UIDesktop.html#Get_OSBitnessInt"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pyOpenRPA.Robot.UIDesktop.Get_OSBitnessInt" title="Permalink to this definition"></a></dt>
<dd><p>Detect OS bitness.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p>int 32 or int 64</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt id="pyOpenRPA.Robot.UIDesktop.PWASpecification_Get_PWAApplication">
<code class="sig-prename descclassname">pyOpenRPA.Robot.UIDesktop.</code><code class="sig-name descname">PWASpecification_Get_PWAApplication</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inControlSpecificationArray</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/pyOpenRPA/Robot/UIDesktop.html#PWASpecification_Get_PWAApplication"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pyOpenRPA.Robot.UIDesktop.PWASpecification_Get_PWAApplication" title="Permalink to this definition"></a></dt>
<dd><p>#Backend selection - attribute “backend” (“win32” || “uia”) in 1-st list element</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>inControlSpecificationArray</strong> List of dict, dict in pywinauto.find_windows notation</p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>process application object</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt id="pyOpenRPA.Robot.UIDesktop.PWASpecification_Get_UIO">
<code class="sig-prename descclassname">pyOpenRPA.Robot.UIDesktop.</code><code class="sig-name descname">PWASpecification_Get_UIO</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inControlSpecificationArray</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/pyOpenRPA/Robot/UIDesktop.html#PWASpecification_Get_UIO"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pyOpenRPA.Robot.UIDesktop.PWASpecification_Get_UIO" title="Permalink to this definition"></a></dt>
<dd><p>#Backend def selection - attribute “backend” (“win32” || “uia”) in 1-st list element
#old name - GetControl</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>inControlSpecificationArray</strong> List of dict, dict in pywinauto.find_windows notation</p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>list of UIO object</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt id="pyOpenRPA.Robot.UIDesktop.UIOSelectorSecs_WaitAppear_Bool">
<code class="sig-prename descclassname">pyOpenRPA.Robot.UIDesktop.</code><code class="sig-name descname">UIOSelectorSecs_WaitAppear_Bool</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inSpecificationList</span></em>, <em class="sig-param"><span class="n">inWaitSecs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/pyOpenRPA/Robot/UIDesktop.html#UIOSelectorSecs_WaitAppear_Bool"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pyOpenRPA.Robot.UIDesktop.UIOSelectorSecs_WaitAppear_Bool" title="Permalink to this definition"></a></dt>
<dd><p>Wait for UI object will appear in GUI for inWaitSecs seconds.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>inSpecificationList</strong> UIOSelector. Example: [{“title”:”notepad”},{“title”:”OK”}]</p></li>
<li><p><strong>inWaitSecs</strong> Float value (seconds) for wait UI element appear in GUI</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>True - UI object will appear. False - else case</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt id="pyOpenRPA.Robot.UIDesktop.UIOSelectorSecs_WaitDisappear_Bool">
<code class="sig-prename descclassname">pyOpenRPA.Robot.UIDesktop.</code><code class="sig-name descname">UIOSelectorSecs_WaitDisappear_Bool</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inSpecificationList</span></em>, <em class="sig-param"><span class="n">inWaitSecs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/pyOpenRPA/Robot/UIDesktop.html#UIOSelectorSecs_WaitDisappear_Bool"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pyOpenRPA.Robot.UIDesktop.UIOSelectorSecs_WaitDisappear_Bool" title="Permalink to this definition"></a></dt>
<dd><p>Wait for UI object will disappear in GUI for inWaitSecs seconds.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>inSpecificationList</strong> UIOSelector.
Example: [{“title”:”notepad”},{“title”:”OK”}]</p></li>
<li><p><strong>inWaitSecs</strong> Float value (seconds) for wait UI element disappear in GUI</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>True - UI object will disappear. False - else case</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt id="pyOpenRPA.Robot.UIDesktop.UIOSelector_Exist_Bool">
<code class="sig-prename descclassname">pyOpenRPA.Robot.UIDesktop.</code><code class="sig-name descname">UIOSelector_Exist_Bool</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inUIOSelector</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/pyOpenRPA/Robot/UIDesktop.html#UIOSelector_Exist_Bool"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pyOpenRPA.Robot.UIDesktop.UIOSelector_Exist_Bool" title="Permalink to this definition"></a></dt>
<dd><p>Check if object is exist by the UIO selector.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>inUIOSelector</strong> </p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>True - Object is exist. False - else case</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt id="pyOpenRPA.Robot.UIDesktop.UIOSelector_Get_BitnessInt">
<code class="sig-prename descclassname">pyOpenRPA.Robot.UIDesktop.</code><code class="sig-name descname">UIOSelector_Get_BitnessInt</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inSpecificationList</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/pyOpenRPA/Robot/UIDesktop.html#UIOSelector_Get_BitnessInt"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pyOpenRPA.Robot.UIDesktop.UIOSelector_Get_BitnessInt" title="Permalink to this definition"></a></dt>
<dd><p>Detect process bitness by the UI Object UIO Selector.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>inSpecificationList</strong> UIOSelector. Example: [{“title”:”notepad”},{“title”:”OK”}]</p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>int 32 or int 64</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt id="pyOpenRPA.Robot.UIDesktop.UIOSelector_Get_BitnessStr">
<code class="sig-prename descclassname">pyOpenRPA.Robot.UIDesktop.</code><code class="sig-name descname">UIOSelector_Get_BitnessStr</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inSpecificationList</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/pyOpenRPA/Robot/UIDesktop.html#UIOSelector_Get_BitnessStr"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pyOpenRPA.Robot.UIDesktop.UIOSelector_Get_BitnessStr" title="Permalink to this definition"></a></dt>
<dd><p>Detect process bitness by the UI Object UIO Selector.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>inSpecificationList</strong> UIOSelector. Example: [{“title”:”notepad”},{“title”:”OK”}]</p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>str “32” or str “64”</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt id="pyOpenRPA.Robot.UIDesktop.UIOSelector_Get_UIO">
<code class="sig-prename descclassname">pyOpenRPA.Robot.UIDesktop.</code><code class="sig-name descname">UIOSelector_Get_UIO</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inSpecificationList</span></em>, <em class="sig-param"><span class="n">inElement</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">inFlagRaiseException</span><span class="o">=</span><span class="default_value">True</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/pyOpenRPA/Robot/UIDesktop.html#UIOSelector_Get_UIO"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pyOpenRPA.Robot.UIDesktop.UIOSelector_Get_UIO" title="Permalink to this definition"></a></dt>
<dd><p>Get the pywinauto object by the UIO selector.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>inSpecificationList</strong> </p></li>
<li><p><strong>inElement</strong> </p></li>
<li><p><strong>inFlagRaiseException</strong> </p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p></p>
</dd>
</dl>
</dd></dl>
<dl class="py function"> <dl class="py function">
<dt id="pyOpenRPA.Robot.UIDesktop.UIOSelector_Get_UIOList"> <dt id="pyOpenRPA.Robot.UIDesktop.UIOSelector_Get_UIOList">
<code class="sig-prename descclassname">pyOpenRPA.Robot.UIDesktop.</code><code class="sig-name descname">UIOSelector_Get_UIOList</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inSpecificationList</span></em>, <em class="sig-param"><span class="n">inElement</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">inFlagRaiseException</span><span class="o">=</span><span class="default_value">True</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/pyOpenRPA/Robot/UIDesktop.html#UIOSelector_Get_UIOList"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pyOpenRPA.Robot.UIDesktop.UIOSelector_Get_UIOList" title="Permalink to this definition"></a></dt> <code class="sig-prename descclassname">pyOpenRPA.Robot.UIDesktop.</code><code class="sig-name descname">UIOSelector_Get_UIOList</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inSpecificationList</span></em>, <em class="sig-param"><span class="n">inElement</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">inFlagRaiseException</span><span class="o">=</span><span class="default_value">True</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/pyOpenRPA/Robot/UIDesktop.html#UIOSelector_Get_UIOList"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pyOpenRPA.Robot.UIDesktop.UIOSelector_Get_UIOList" title="Permalink to this definition"></a></dt>
@ -214,6 +391,103 @@
</dl> </dl>
</dd></dl> </dd></dl>
<dl class="py function">
<dt id="pyOpenRPA.Robot.UIDesktop.UIOSelector_SafeOtherGet_Process">
<code class="sig-prename descclassname">pyOpenRPA.Robot.UIDesktop.</code><code class="sig-name descname">UIOSelector_SafeOtherGet_Process</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inUIOSelector</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/pyOpenRPA/Robot/UIDesktop.html#UIOSelector_SafeOtherGet_Process"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pyOpenRPA.Robot.UIDesktop.UIOSelector_SafeOtherGet_Process" title="Permalink to this definition"></a></dt>
<dd><p>Safe get other process or None if destination app is the other/same bitness</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>inUIOSelector</strong> UIO Selector of the UI object</p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>None or process (of the other bitness)</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt id="pyOpenRPA.Robot.UIDesktop.UIOSelector_SearchChildByMouse_UIO">
<code class="sig-prename descclassname">pyOpenRPA.Robot.UIDesktop.</code><code class="sig-name descname">UIOSelector_SearchChildByMouse_UIO</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inElementSpecification</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/pyOpenRPA/Robot/UIDesktop.html#UIOSelector_SearchChildByMouse_UIO"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pyOpenRPA.Robot.UIDesktop.UIOSelector_SearchChildByMouse_UIO" title="Permalink to this definition"></a></dt>
<dd><p>UIOSelector (see description on the top of the document)
#old name - AutomationSearchMouseElement</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>inElementSpecification</strong> UIOSelector of the UI Object</p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>pywinauto element wrapper instance or None</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt id="pyOpenRPA.Robot.UIDesktop.UIOSelector_SearchChildByMouse_UIOTree">
<code class="sig-prename descclassname">pyOpenRPA.Robot.UIDesktop.</code><code class="sig-name descname">UIOSelector_SearchChildByMouse_UIOTree</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inUIOSelector</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/pyOpenRPA/Robot/UIDesktop.html#UIOSelector_SearchChildByMouse_UIOTree"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pyOpenRPA.Robot.UIDesktop.UIOSelector_SearchChildByMouse_UIOTree" title="Permalink to this definition"></a></dt>
<dd><p>!!!!Safe call is included (you can set activity and UIDesktop will choose the bitness and return the result)!!!!!</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>inUIOSelector</strong> UIOSelector of the UI Object</p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><p>?</p>
</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt id="pyOpenRPA.Robot.UIDesktop.UIOSelectorsSecs_WaitAppear_List">
<code class="sig-prename descclassname">pyOpenRPA.Robot.UIDesktop.</code><code class="sig-name descname">UIOSelectorsSecs_WaitAppear_List</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inSpecificationListList</span></em>, <em class="sig-param"><span class="n">inWaitSecs</span></em>, <em class="sig-param"><span class="n">inFlagWaitAllInMoment</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#UIOSelectorsSecs_WaitAppear_List"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pyOpenRPA.Robot.UIDesktop.UIOSelectorsSecs_WaitAppear_List" title="Permalink to this definition"></a></dt>
<dd><p>Wait for many UI object will appear in GUI for inWaitSecs seconds.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>inSpecificationListList</strong> <p>UIOSelector list.
Example: [</p>
<blockquote>
<div><p>[{“title”:”notepad”},{“title”:”OK”}],
[{“title”:”notepad”},{“title”:”Cancel”}]</p>
</div></blockquote>
<p>]</p>
</p></li>
<li><p><strong>inWaitSecs</strong> Float value (seconds) for wait UI element appear in GUI</p></li>
<li><p><strong>inFlagWaitAllInMoment</strong> True - Wait all UI objects from the UIOSelector list to be appeared</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>List of index, which UI object UIO will be appeared. Example: [1] # Appear only UI object with UIO selector: [{“title”:”notepad”},{“title”:”Cancel”}]</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt id="pyOpenRPA.Robot.UIDesktop.UIOSelectorsSecs_WaitDisappear_List">
<code class="sig-prename descclassname">pyOpenRPA.Robot.UIDesktop.</code><code class="sig-name descname">UIOSelectorsSecs_WaitDisappear_List</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inSpecificationListList</span></em>, <em class="sig-param"><span class="n">inWaitSecs</span></em>, <em class="sig-param"><span class="n">inFlagWaitAllInMoment</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#UIOSelectorsSecs_WaitDisappear_List"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#pyOpenRPA.Robot.UIDesktop.UIOSelectorsSecs_WaitDisappear_List" title="Permalink to this definition"></a></dt>
<dd><p>Wait for many UI object will disappear in GUI for inWaitSecs seconds.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>inSpecificationListList</strong> <p>UIOSelector list.
Example: [</p>
<blockquote>
<div><p>[{“title”:”notepad”},{“title”:”OK”}],
[{“title”:”notepad”},{“title”:”Cancel”}]</p>
</div></blockquote>
<p>]</p>
</p></li>
<li><p><strong>inWaitSecs</strong> Float value (seconds) for wait UI element disappear in GUI</p></li>
<li><p><strong>inFlagWaitAllInMoment</strong> True - Wait all UI objects from the UIOSelector list to be disappeared.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>List of index, which UI object UIO will be disappeared. Example: [1] # Disappear only UI object with UIO selector: [{“title”:”notepad”},{“title”:”Cancel”}]</p>
</dd>
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p></p>
</dd>
</dl>
</dd></dl>
</div> </div>
<div class="section" id="references"> <div class="section" id="references">
<h2>References<a class="headerlink" href="#references" title="Permalink to this headline"></a></h2> <h2>References<a class="headerlink" href="#references" title="Permalink to this headline"></a></h2>

@ -216,7 +216,7 @@
<div class="viewcode-block" id="AgentOSCMD"><a class="viewcode-back" href="../../../Orchestrator/02_Defs.html#pyOpenRPA.Orchestrator.__Orchestrator__.AgentOSCMD">[docs]</a><span class="k">def</span> <span class="nf">AgentOSCMD</span><span class="p">(</span><span class="n">inGSettings</span><span class="p">,</span> <span class="n">inHostNameStr</span><span class="p">,</span> <span class="n">inUserStr</span><span class="p">,</span> <span class="n">inCMDStr</span><span class="p">,</span> <span class="n">inRunAsyncBool</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span> <div class="viewcode-block" id="AgentOSCMD"><a class="viewcode-back" href="../../../Orchestrator/02_Defs.html#pyOpenRPA.Orchestrator.__Orchestrator__.AgentOSCMD">[docs]</a><span class="k">def</span> <span class="nf">AgentOSCMD</span><span class="p">(</span><span class="n">inGSettings</span><span class="p">,</span> <span class="n">inHostNameStr</span><span class="p">,</span> <span class="n">inUserStr</span><span class="p">,</span> <span class="n">inCMDStr</span><span class="p">,</span> <span class="n">inRunAsyncBool</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;</span> <span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> pyOpenRPA.Agent: Send CMD to OS. Result return to log + Orchestrator by the A2O connection</span> <span class="sd"> Send CMD to OS throught the pyOpenRPA.Agent daemon. Result return to log + Orchestrator by the A2O connection</span>
<span class="sd"> def OSCMD(inCMDStr, inRunAsyncBool=True, inGSettings=None):</span> <span class="sd"> def OSCMD(inCMDStr, inRunAsyncBool=True, inGSettings=None):</span>
<span class="sd"> Send to agent activity item to OSCMD</span> <span class="sd"> Send to agent activity item to OSCMD</span>
@ -1020,7 +1020,7 @@
<div class="viewcode-block" id="ProcessListGet"><a class="viewcode-back" href="../../../Orchestrator/02_Defs.html#pyOpenRPA.Orchestrator.__Orchestrator__.ProcessListGet">[docs]</a><span class="k">def</span> <span class="nf">ProcessListGet</span><span class="p">(</span><span class="n">inProcessNameWOExeList</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span> <div class="viewcode-block" id="ProcessListGet"><a class="viewcode-back" href="../../../Orchestrator/02_Defs.html#pyOpenRPA.Orchestrator.__Orchestrator__.ProcessListGet">[docs]</a><span class="k">def</span> <span class="nf">ProcessListGet</span><span class="p">(</span><span class="n">inProcessNameWOExeList</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;</span> <span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Return process list on the orchestrator machine. You can determine the list of the processes you are interested - def will return the list about it.</span> <span class="sd"> Return process list on the orchestrator machine sorted by Memory Usage. You can determine the list of the processes you are interested - def will return the list about it.</span>
<span class="sd"> .. code-block:: python</span> <span class="sd"> .. code-block:: python</span>
@ -1028,7 +1028,8 @@
<span class="sd"> from pyOpenRPA import Orchestrator</span> <span class="sd"> from pyOpenRPA import Orchestrator</span>
<span class="sd"> lProcessList = Orchestrator.ProcessListGet()</span> <span class="sd"> lProcessList = Orchestrator.ProcessListGet()</span>
<span class="sd"> # Return the list of the process on the machine. !ATTENTION! RUn orchestrator as administrator to get all process list on the machine.</span> <span class="sd"> # Return the list of the process on the machine.</span>
<span class="sd"> # !ATTENTION! RUn orchestrator as administrator to get all process list on the machine.</span>
<span class="sd"> :param inProcessNameWOExeList:</span> <span class="sd"> :param inProcessNameWOExeList:</span>
<span class="sd"> :return: {</span> <span class="sd"> :return: {</span>
@ -1046,7 +1047,6 @@
<span class="sd"> &quot;&quot;&quot;</span> <span class="sd"> &quot;&quot;&quot;</span>
<span class="k">if</span> <span class="n">inProcessNameWOExeList</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> <span class="n">inProcessNameWOExeList</span> <span class="o">=</span> <span class="p">[]</span> <span class="k">if</span> <span class="n">inProcessNameWOExeList</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> <span class="n">inProcessNameWOExeList</span> <span class="o">=</span> <span class="p">[]</span>
<span class="sd">&#39;&#39;&#39;Get list of running process sorted by Memory Usage and filtered by inProcessNameWOExeList&#39;&#39;&#39;</span>
<span class="n">lMapUPPERInput</span> <span class="o">=</span> <span class="p">{}</span> <span class="c1"># Mapping for processes WO exe</span> <span class="n">lMapUPPERInput</span> <span class="o">=</span> <span class="p">{}</span> <span class="c1"># Mapping for processes WO exe</span>
<span class="n">lResult</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;ProcessWOExeList&quot;</span><span class="p">:[],</span> <span class="s2">&quot;ProcessWOExeUpperList&quot;</span><span class="p">:[],</span><span class="s2">&quot;ProcessDetailList&quot;</span><span class="p">:[]}</span> <span class="n">lResult</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;ProcessWOExeList&quot;</span><span class="p">:[],</span> <span class="s2">&quot;ProcessWOExeUpperList&quot;</span><span class="p">:[],</span><span class="s2">&quot;ProcessDetailList&quot;</span><span class="p">:[]}</span>
<span class="c1"># Create updated list for quick check</span> <span class="c1"># Create updated list for quick check</span>
@ -1078,14 +1078,28 @@
<span class="c1"># Python def - start module function</span> <span class="c1"># Python def - start module function</span>
<div class="viewcode-block" id="PythonStart"><a class="viewcode-back" href="../../../Orchestrator/02_Defs.html#pyOpenRPA.Orchestrator.__Orchestrator__.PythonStart">[docs]</a><span class="k">def</span> <span class="nf">PythonStart</span><span class="p">(</span><span class="n">inModulePathStr</span><span class="p">,</span> <span class="n">inDefNameStr</span><span class="p">,</span> <span class="n">inArgList</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">inArgDict</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">inLogger</span> <span class="o">=</span> <span class="kc">None</span><span class="p">):</span> <div class="viewcode-block" id="PythonStart"><a class="viewcode-back" href="../../../Orchestrator/02_Defs.html#pyOpenRPA.Orchestrator.__Orchestrator__.PythonStart">[docs]</a><span class="k">def</span> <span class="nf">PythonStart</span><span class="p">(</span><span class="n">inModulePathStr</span><span class="p">,</span> <span class="n">inDefNameStr</span><span class="p">,</span> <span class="n">inArgList</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">inArgDict</span><span class="o">=</span><span class="kc">None</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> <span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Python import module and start def</span> <span class="sd"> Import module and run def in the Orchestrator process.</span>
<span class="sd"> :param inModulePathStr:</span> <span class="sd"> .. note::</span>
<span class="sd"> :param inDefNameStr:</span>
<span class="sd"> :param inArgList:</span> <span class="sd"> Import module will be each time when PythonStart def will be called.</span>
<span class="sd"> :param inArgDict:</span>
<span class="sd"> :param inLogger:</span> <span class="sd"> .. code-block:: python</span>
<span class="sd"> :return:</span>
<span class="sd"> # USAGE</span>
<span class="sd"> from pyOpenRPA import Orchestrator</span>
<span class="sd"> Orchestrator.PythonStart(</span>
<span class="sd"> inModulePathStr=&quot;ModuleToCall.py&quot;, # inModulePathStr: Working Directory\\ModuleToCall.py</span>
<span class="sd"> inDefNameStr=&quot;TestDef&quot;)</span>
<span class="sd"> # Import module in Orchestrator process and call def &quot;TestDef&quot; from module &quot;ModuleToCall.py&quot;</span>
<span class="sd"> :param inModulePathStr: Absolute or relative (working directory of the orchestrator process) path to the importing module .py</span>
<span class="sd"> :param inDefNameStr: Def name in module</span>
<span class="sd"> :param inArgList: List of the arguments for callable def</span>
<span class="sd"> :param inArgDict: Dict of the named arguments for callable def</span>
<span class="sd"> :param inLogger: Logger instance to log some information when PythonStart def is running</span>
<span class="sd"> :return: None</span>
<span class="sd"> &quot;&quot;&quot;</span> <span class="sd"> &quot;&quot;&quot;</span>
<span class="k">if</span> <span class="n">inArgList</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> <span class="n">inArgList</span><span class="o">=</span><span class="p">[]</span> <span class="k">if</span> <span class="n">inArgList</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> <span class="n">inArgList</span><span class="o">=</span><span class="p">[]</span>
<span class="k">if</span> <span class="n">inArgDict</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> <span class="n">inArgDict</span><span class="o">=</span><span class="p">{}</span> <span class="k">if</span> <span class="n">inArgDict</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> <span class="n">inArgDict</span><span class="o">=</span><span class="p">{}</span>
@ -1096,23 +1110,42 @@
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</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>
<span class="k">if</span> <span class="n">inLogger</span><span class="p">:</span> <span class="n">inLogger</span><span class="o">.</span><span class="n">exception</span><span class="p">(</span><span class="s2">&quot;Loop activity error: module/function not founded&quot;</span><span class="p">)</span></div> <span class="k">if</span> <span class="n">inLogger</span><span class="p">:</span> <span class="n">inLogger</span><span class="o">.</span><span class="n">exception</span><span class="p">(</span><span class="s2">&quot;Loop activity error: module/function not founded&quot;</span><span class="p">)</span></div>
<span class="c1"># # # # # # # # # # # # # # # # # # # # # # #</span>
<span class="c1"># # # # # # # # # # # # # # # # # # # # # # #</span> <span class="c1"># # # # # # # # # # # # # # # # # # # # # # #</span>
<span class="c1"># Scheduler</span> <span class="c1"># Scheduler</span>
<span class="c1"># # # # # # # # # # # # # # # # # # # # # # #</span> <span class="c1"># # # # # # # # # # # # # # # # # # # # # # #</span>
<div class="viewcode-block" id="SchedulerActivityTimeAddWeekly"><a class="viewcode-back" href="../../../Orchestrator/02_Defs.html#pyOpenRPA.Orchestrator.__Orchestrator__.SchedulerActivityTimeAddWeekly">[docs]</a><span class="k">def</span> <span class="nf">SchedulerActivityTimeAddWeekly</span><span class="p">(</span><span class="n">inGSettings</span><span class="p">,</span> <span class="n">inTimeHHMMStr</span><span class="o">=</span><span class="s2">&quot;23:55:&quot;</span><span class="p">,</span> <span class="n">inWeekdayList</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">inActivityList</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span> <div class="viewcode-block" id="SchedulerActivityTimeAddWeekly"><a class="viewcode-back" href="../../../Orchestrator/02_Defs.html#pyOpenRPA.Orchestrator.__Orchestrator__.SchedulerActivityTimeAddWeekly">[docs]</a><span class="k">def</span> <span class="nf">SchedulerActivityTimeAddWeekly</span><span class="p">(</span><span class="n">inGSettings</span><span class="p">,</span> <span class="n">inTimeHHMMStr</span><span class="o">=</span><span class="s2">&quot;23:55:&quot;</span><span class="p">,</span> <span class="n">inWeekdayList</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">inActivityList</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;</span> <span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Add activity in time weekly</span> <span class="sd"> Add activity item list in scheduler. You can set weekday list and set time when launch. Activity list will be executed at planned time/day.</span>
<span class="sd"> .. code-block:: python</span>
<span class="sd"> # USAGE</span>
<span class="sd"> from pyOpenRPA import Orchestrator</span>
<span class="sd"> # EXAMPLE 1</span>
<span class="sd"> def TestDef(inArg1Str):</span>
<span class="sd"> pass</span>
<span class="sd"> lActivityItem = Orchestrator.ProcessorActivityItemCreate(</span>
<span class="sd"> inDef = TestDef,</span>
<span class="sd"> inArgList=[],</span>
<span class="sd"> inArgDict={&quot;inArg1Str&quot;: &quot;ArgValueStr&quot;},</span>
<span class="sd"> inArgGSettingsStr = None,</span>
<span class="sd"> inArgLoggerStr = None)</span>
<span class="sd"> Orchestrator.SchedulerActivityTimeAddWeekly(</span>
<span class="sd"> inGSettings = gSettingsDict,</span>
<span class="sd"> inTimeHHMMStr = &quot;04:34&quot;,</span>
<span class="sd"> inWeekdayList=[2,3,4],</span>
<span class="sd"> inActivityList = [lActivityItem])</span>
<span class="sd"> # Activity will be executed at 04:34 Wednesday (2), thursday (3), friday (4)</span>
<span class="sd"> :param inGSettings: Global settings dict (singleton)</span> <span class="sd"> :param inGSettings: Global settings dict (singleton)</span>
<span class="sd"> :param inTimeHHMMStr:</span> <span class="sd"> :param inTimeHHMMStr: Activation time from &quot;00:00&quot; to &quot;23:59&quot;. Example: &quot;05:29&quot;</span>
<span class="sd"> :param inWeekdayList:</span> <span class="sd"> :param inWeekdayList: Week day list to initiate activity list. Use int from 0 (monday) to 6 (sunday) as list items. Example: [0,1,2,3,4]. Default value is everyday ([0,1,2,3,4,5,6])</span>
<span class="sd"> :param inActivityList:</span> <span class="sd"> :param inActivityList: Activity list structure</span>
<span class="sd"> :return:</span> <span class="sd"> :return: None</span>
<span class="sd"> &quot;&quot;&quot;</span> <span class="sd"> &quot;&quot;&quot;</span>
<span class="k">if</span> <span class="n">inWeekdayList</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> <span class="n">inWeekdayList</span><span class="o">=</span><span class="p">[]</span> <span class="k">if</span> <span class="n">inWeekdayList</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> <span class="n">inWeekdayList</span><span class="o">=</span><span class="p">[</span><span class="mi">0</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="mi">4</span><span class="p">,</span><span class="mi">5</span><span class="p">,</span><span class="mi">6</span><span class="p">]</span>
<span class="k">if</span> <span class="n">inActivityList</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> <span class="n">inActivityList</span><span class="o">=</span><span class="p">[]</span> <span class="k">if</span> <span class="n">inActivityList</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> <span class="n">inActivityList</span><span class="o">=</span><span class="p">[]</span>
<span class="n">Processor</span><span class="o">.</span><span class="n">__ActivityListVerify__</span><span class="p">(</span><span class="n">inActivityList</span><span class="o">=</span><span class="n">inActivityList</span><span class="p">)</span> <span class="c1"># DO VERIFICATION FOR THE inActivityList</span> <span class="n">Processor</span><span class="o">.</span><span class="n">__ActivityListVerify__</span><span class="p">(</span><span class="n">inActivityList</span><span class="o">=</span><span class="n">inActivityList</span><span class="p">)</span> <span class="c1"># DO VERIFICATION FOR THE inActivityList</span>
<span class="n">lActivityTimeItemDict</span> <span class="o">=</span> <span class="p">{</span> <span class="n">lActivityTimeItemDict</span> <span class="o">=</span> <span class="p">{</span>
@ -1130,18 +1163,64 @@
<div class="viewcode-block" id="RDPTemplateCreate"><a class="viewcode-back" href="../../../Orchestrator/02_Defs.html#pyOpenRPA.Orchestrator.__Orchestrator__.RDPTemplateCreate">[docs]</a><span class="k">def</span> <span class="nf">RDPTemplateCreate</span><span class="p">(</span><span class="n">inLoginStr</span><span class="p">,</span> <span class="n">inPasswordStr</span><span class="p">,</span> <span class="n">inHostStr</span><span class="o">=</span><span class="s2">&quot;127.0.0.1&quot;</span><span class="p">,</span> <span class="n">inPortInt</span> <span class="o">=</span> <span class="mi">3389</span><span class="p">,</span> <span class="n">inWidthPXInt</span> <span class="o">=</span> <span class="mi">1680</span><span class="p">,</span> <span class="n">inHeightPXInt</span> <span class="o">=</span> <span class="mi">1050</span><span class="p">,</span> <div class="viewcode-block" id="RDPTemplateCreate"><a class="viewcode-back" href="../../../Orchestrator/02_Defs.html#pyOpenRPA.Orchestrator.__Orchestrator__.RDPTemplateCreate">[docs]</a><span class="k">def</span> <span class="nf">RDPTemplateCreate</span><span class="p">(</span><span class="n">inLoginStr</span><span class="p">,</span> <span class="n">inPasswordStr</span><span class="p">,</span> <span class="n">inHostStr</span><span class="o">=</span><span class="s2">&quot;127.0.0.1&quot;</span><span class="p">,</span> <span class="n">inPortInt</span> <span class="o">=</span> <span class="mi">3389</span><span class="p">,</span> <span class="n">inWidthPXInt</span> <span class="o">=</span> <span class="mi">1680</span><span class="p">,</span> <span class="n">inHeightPXInt</span> <span class="o">=</span> <span class="mi">1050</span><span class="p">,</span>
<span class="n">inUseBothMonitorBool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">,</span> <span class="n">inDepthBitInt</span> <span class="o">=</span> <span class="mi">32</span><span class="p">,</span> <span class="n">inSharedDriveList</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span> <span class="n">inUseBothMonitorBool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">,</span> <span class="n">inDepthBitInt</span> <span class="o">=</span> <span class="mi">32</span><span class="p">,</span> <span class="n">inSharedDriveList</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;</span> <span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Create some RDP template dict to use it when connect/reconnect</span> <span class="sd"> Create RDP connect dict item/ Use it connect/reconnect (Orchestrator.RDPSessionConnect)</span>
<span class="sd"> :param inLoginStr:</span> <span class="sd"> .. code-block:: python</span>
<span class="sd"> :param inPasswordStr:</span>
<span class="sd"> :param inHostStr:</span> <span class="sd"> # USAGE</span>
<span class="sd"> :param inPortInt:</span> <span class="sd"> from pyOpenRPA import Orchestrator</span>
<span class="sd"> :param inWidthPXInt:</span>
<span class="sd"> :param inHeightPXInt:</span> <span class="sd"> lRDPItemDict = Orchestrator.RDPTemplateCreate(</span>
<span class="sd"> :param inUseBothMonitorBool:</span> <span class="sd"> inLoginStr = &quot;USER_99&quot;,</span>
<span class="sd"> :param inDepthBitInt:</span> <span class="sd"> inPasswordStr = &quot;USER_PASS_HERE&quot;,</span>
<span class="sd"> :param inSharedDriveList:</span> <span class="sd"> inHostStr=&quot;127.0.0.1&quot;,</span>
<span class="sd"> inPortInt = 3389,</span>
<span class="sd"> inWidthPXInt = 1680,</span>
<span class="sd"> inHeightPXInt = 1050,</span>
<span class="sd"> inUseBothMonitorBool = False,</span>
<span class="sd"> inDepthBitInt = 32,</span>
<span class="sd"> inSharedDriveList=None)</span>
<span class="sd"> # lRDPTemplateDict= { # Init the configuration item</span>
<span class="sd"> # &quot;Host&quot;: &quot;127.0.0.1&quot;, &quot;Port&quot;: &quot;3389&quot;, &quot;Login&quot;: &quot;USER_99&quot;, &quot;Password&quot;: &quot;USER_PASS_HERE&quot;,</span>
<span class="sd"> # &quot;Screen&quot;: { &quot;Width&quot;: 1680, &quot;Height&quot;: 1050, &quot;FlagUseAllMonitors&quot;: False, &quot;DepthBit&quot;: &quot;32&quot; },</span>
<span class="sd"> # &quot;SharedDriveList&quot;: [&quot;c&quot;],</span>
<span class="sd"> # ###### Will updated in program ############</span>
<span class="sd"> # &quot;SessionHex&quot;: &quot;77777sdfsdf77777dsfdfsf77777777&quot;, # Hex is created when robot runs, example &quot;&quot;</span>
<span class="sd"> # &quot;SessionIsWindowExistBool&quot;: False, &quot;SessionIsWindowResponsibleBool&quot;: False, &quot;SessionIsIgnoredBool&quot;: False</span>
<span class="sd"> # }</span>
<span class="sd"> :param inLoginStr: User/Robot Login, example &quot;USER_99&quot;</span>
<span class="sd"> :param inPasswordStr: Password, example &quot;USER_PASS_HERE&quot;</span>
<span class="sd"> :param inHostStr: Host address, example &quot;77.77.22.22&quot;</span>
<span class="sd"> :param inPortInt: RDP Port, example &quot;3389&quot; (default)</span>
<span class="sd"> :param inWidthPXInt: Width of the remote desktop in pixels, example 1680</span>
<span class="sd"> :param inHeightPXInt: Height of the remote desktop in pixels, example 1050</span>
<span class="sd"> :param inUseBothMonitorBool: True - connect to the RDP with both monitors. False - else case</span>
<span class="sd"> :param inDepthBitInt: Remote desktop bitness. Available: 32 or 24 or 16 or 15, example 32</span>
<span class="sd"> :param inSharedDriveList: Host local disc to connect to the RDP session. Example: [&quot;c&quot;, &quot;d&quot;]</span>
<span class="sd"> :return:</span> <span class="sd"> :return:</span>
<span class="sd"> {</span>
<span class="sd"> &quot;Host&quot;: inHostStr, # Host address, example &quot;77.77.22.22&quot;</span>
<span class="sd"> &quot;Port&quot;: str(inPortInt), # RDP Port, example &quot;3389&quot;</span>
<span class="sd"> &quot;Login&quot;: inLoginStr, # Login, example &quot;test&quot;</span>
<span class="sd"> &quot;Password&quot;: inPasswordStr, # Password, example &quot;test&quot;</span>
<span class="sd"> &quot;Screen&quot;: {</span>
<span class="sd"> &quot;Width&quot;: inWidthPXInt, # Width of the remote desktop in pixels, example 1680</span>
<span class="sd"> &quot;Height&quot;: inHeightPXInt, # Height of the remote desktop in pixels, example 1050</span>
<span class="sd"> # &quot;640x480&quot; or &quot;1680x1050&quot; or &quot;FullScreen&quot;. If Resolution not exists set full screen, example</span>
<span class="sd"> &quot;FlagUseAllMonitors&quot;: inUseBothMonitorBool, # True or False, example False</span>
<span class="sd"> &quot;DepthBit&quot;: str(inDepthBitInt) # &quot;32&quot; or &quot;24&quot; or &quot;16&quot; or &quot;15&quot;, example &quot;32&quot;</span>
<span class="sd"> },</span>
<span class="sd"> &quot;SharedDriveList&quot;: inSharedDriveList, # List of the Root sesion hard drives, example [&quot;c&quot;]</span>
<span class="sd"> ###### Will updated in program ############</span>
<span class="sd"> &quot;SessionHex&quot;: &quot;77777sdfsdf77777dsfdfsf77777777&quot;, # Hex is created when robot runs, example &quot;&quot;</span>
<span class="sd"> &quot;SessionIsWindowExistBool&quot;: False,</span>
<span class="sd"> # Flag if the RDP window is exist, old name &quot;FlagSessionIsActive&quot;. Check every n seconds , example False</span>
<span class="sd"> &quot;SessionIsWindowResponsibleBool&quot;: False,</span>
<span class="sd"> # Flag if RDP window is responsible (recieve commands). Check every nn seconds. If window is Responsible - window is Exist too , example False</span>
<span class="sd"> &quot;SessionIsIgnoredBool&quot;: False # Flag to ignore RDP window False - dont ignore, True - ignore, example False</span>
<span class="sd"> }</span>
<span class="sd"> &quot;&quot;&quot;</span> <span class="sd"> &quot;&quot;&quot;</span>
<span class="k">if</span> <span class="n">inSharedDriveList</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> <span class="n">inSharedDriveList</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;c&quot;</span><span class="p">]</span> <span class="k">if</span> <span class="n">inSharedDriveList</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> <span class="n">inSharedDriveList</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;c&quot;</span><span class="p">]</span>
<span class="n">lRDPTemplateDict</span><span class="o">=</span> <span class="p">{</span> <span class="c1"># Init the configuration item</span> <span class="n">lRDPTemplateDict</span><span class="o">=</span> <span class="p">{</span> <span class="c1"># Init the configuration item</span>
@ -1171,7 +1250,7 @@
<span class="c1"># Return list if dublicates</span> <span class="c1"># Return list if dublicates</span>
<div class="viewcode-block" id="RDPSessionDublicatesResolve"><a class="viewcode-back" href="../../../Orchestrator/02_Defs.html#pyOpenRPA.Orchestrator.__Orchestrator__.RDPSessionDublicatesResolve">[docs]</a><span class="k">def</span> <span class="nf">RDPSessionDublicatesResolve</span><span class="p">(</span><span class="n">inGSettings</span><span class="p">):</span> <div class="viewcode-block" id="RDPSessionDublicatesResolve"><a class="viewcode-back" href="../../../Orchestrator/02_Defs.html#pyOpenRPA.Orchestrator.__Orchestrator__.RDPSessionDublicatesResolve">[docs]</a><span class="k">def</span> <span class="nf">RDPSessionDublicatesResolve</span><span class="p">(</span><span class="n">inGSettings</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;</span> <span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Search dublicates in GSettings RDPlist</span> <span class="sd"> DEVELOPING Search dublicates in GSettings RDPlist</span>
<span class="sd"> !def is developing!</span> <span class="sd"> !def is developing!</span>
<span class="sd"> :param inGSettings: Global settings dict (singleton)</span> <span class="sd"> :param inGSettings: Global settings dict (singleton)</span>

@ -404,7 +404,15 @@
<span class="c1">#inElement - Входной элемент - показатель, что не требуется выполнять коннект к процессу</span> <span class="c1">#inElement - Входной элемент - показатель, что не требуется выполнять коннект к процессу</span>
<span class="c1">#inFlagRaiseException - Флаг True - выкинуть ошибку в случае обнаружении пустого списка</span> <span class="c1">#inFlagRaiseException - Флаг True - выкинуть ошибку в случае обнаружении пустого списка</span>
<span class="c1">#old name - PywinautoExtElementGet</span> <span class="c1">#old name - PywinautoExtElementGet</span>
<span class="k">def</span> <span class="nf">UIOSelector_Get_UIO</span> <span class="p">(</span><span class="n">inSpecificationList</span><span class="p">,</span><span class="n">inElement</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span><span class="n">inFlagRaiseException</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span> <div class="viewcode-block" id="UIOSelector_Get_UIO"><a class="viewcode-back" href="../../../Robot/02_Defs.html#pyOpenRPA.Robot.UIDesktop.UIOSelector_Get_UIO">[docs]</a><span class="k">def</span> <span class="nf">UIOSelector_Get_UIO</span> <span class="p">(</span><span class="n">inSpecificationList</span><span class="p">,</span><span class="n">inElement</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span><span class="n">inFlagRaiseException</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
<span class="sd">&#39;&#39;&#39;</span>
<span class="sd"> Get the pywinauto object by the UIO selector.</span>
<span class="sd"> :param inSpecificationList:</span>
<span class="sd"> :param inElement:</span>
<span class="sd"> :param inFlagRaiseException:</span>
<span class="sd"> :return:</span>
<span class="sd"> &#39;&#39;&#39;</span>
<span class="n">lResult</span><span class="o">=</span><span class="kc">None</span> <span class="n">lResult</span><span class="o">=</span><span class="kc">None</span>
<span class="c1">#Получить родительский объект если на вход ничего не поступило</span> <span class="c1">#Получить родительский объект если на вход ничего не поступило</span>
<span class="n">lResultList</span><span class="o">=</span><span class="n">UIOSelector_Get_UIOList</span><span class="p">(</span><span class="n">inSpecificationList</span><span class="p">,</span><span class="n">inElement</span><span class="p">,</span><span class="kc">False</span><span class="p">)</span> <span class="n">lResultList</span><span class="o">=</span><span class="n">UIOSelector_Get_UIOList</span><span class="p">(</span><span class="n">inSpecificationList</span><span class="p">,</span><span class="n">inElement</span><span class="p">,</span><span class="kc">False</span><span class="p">)</span>
@ -413,13 +421,19 @@
<span class="c1">#Условие, если результирующий список пустой и установлен флаг создания ошибки (и inElement is None - не следствие рекурсивного вызова)</span> <span class="c1">#Условие, если результирующий список пустой и установлен флаг создания ошибки (и inElement is None - не следствие рекурсивного вызова)</span>
<span class="k">if</span> <span class="n">lResult</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">and</span> <span class="n">inFlagRaiseException</span><span class="p">:</span> <span class="k">if</span> <span class="n">lResult</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">and</span> <span class="n">inFlagRaiseException</span><span class="p">:</span>
<span class="k">raise</span> <span class="n">pywinauto</span><span class="o">.</span><span class="n">findwindows</span><span class="o">.</span><span class="n">ElementNotFoundError</span><span class="p">(</span><span class="s2">&quot;Robot can&#39;t find element by the UIOSelector&quot;</span><span class="p">)</span> <span class="k">raise</span> <span class="n">pywinauto</span><span class="o">.</span><span class="n">findwindows</span><span class="o">.</span><span class="n">ElementNotFoundError</span><span class="p">(</span><span class="s2">&quot;Robot can&#39;t find element by the UIOSelector&quot;</span><span class="p">)</span>
<span class="k">return</span> <span class="n">lResult</span> <span class="k">return</span> <span class="n">lResult</span></div>
<span class="c1">#################################################################################################</span> <span class="c1">#################################################################################################</span>
<span class="c1">#Check if UIO exist (Identified by the UIOSelector)</span> <span class="c1">#Check if UIO exist (Identified by the UIOSelector)</span>
<span class="c1">#!!!!!Safe call is included (you can set activity and UIDesktop will choose the bitness and return the result)!!!!!</span> <span class="c1">#!!!!!Safe call is included (you can set activity and UIDesktop will choose the bitness and return the result)!!!!!</span>
<span class="c1">#UIOSelector</span> <span class="c1">#UIOSelector</span>
<span class="c1">#old name - -</span> <span class="c1">#old name - -</span>
<span class="k">def</span> <span class="nf">UIOSelector_Exist_Bool</span> <span class="p">(</span><span class="n">inUIOSelector</span><span class="p">):</span> <div class="viewcode-block" id="UIOSelector_Exist_Bool"><a class="viewcode-back" href="../../../Robot/02_Defs.html#pyOpenRPA.Robot.UIDesktop.UIOSelector_Exist_Bool">[docs]</a><span class="k">def</span> <span class="nf">UIOSelector_Exist_Bool</span> <span class="p">(</span><span class="n">inUIOSelector</span><span class="p">):</span>
<span class="sd">&#39;&#39;&#39;</span>
<span class="sd"> Check if object is exist by the UIO selector.</span>
<span class="sd"> :param inUIOSelector:</span>
<span class="sd"> :return: True - Object is exist. False - else case</span>
<span class="sd"> &#39;&#39;&#39;</span>
<span class="n">lResult</span><span class="o">=</span><span class="kc">False</span> <span class="n">lResult</span><span class="o">=</span><span class="kc">False</span>
<span class="c1">#Check the bitness</span> <span class="c1">#Check the bitness</span>
<span class="n">lSafeOtherProcess</span> <span class="o">=</span> <span class="n">UIOSelector_SafeOtherGet_Process</span><span class="p">(</span><span class="n">inUIOSelector</span><span class="p">)</span> <span class="n">lSafeOtherProcess</span> <span class="o">=</span> <span class="n">UIOSelector_SafeOtherGet_Process</span><span class="p">(</span><span class="n">inUIOSelector</span><span class="p">)</span>
@ -442,7 +456,7 @@
<span class="sa">f</span><span class="s2">&quot;Exception was occured in child process (message): </span><span class="si">{</span><span class="n">lPIPEResponseDict</span><span class="p">[</span><span class="s1">&#39;ErrorMessage&#39;</span><span class="p">]</span><span class="si">}</span><span class="s2">, (traceback): </span><span class="si">{</span><span class="n">lPIPEResponseDict</span><span class="p">[</span><span class="s1">&#39;ErrorTraceback&#39;</span><span class="p">]</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span> <span class="sa">f</span><span class="s2">&quot;Exception was occured in child process (message): </span><span class="si">{</span><span class="n">lPIPEResponseDict</span><span class="p">[</span><span class="s1">&#39;ErrorMessage&#39;</span><span class="p">]</span><span class="si">}</span><span class="s2">, (traceback): </span><span class="si">{</span><span class="n">lPIPEResponseDict</span><span class="p">[</span><span class="s1">&#39;ErrorTraceback&#39;</span><span class="p">]</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
<span class="k">else</span><span class="p">:</span> <span class="k">else</span><span class="p">:</span>
<span class="n">lResult</span> <span class="o">=</span> <span class="n">lPIPEResponseDict</span><span class="p">[</span><span class="s2">&quot;Result&quot;</span><span class="p">]</span> <span class="n">lResult</span> <span class="o">=</span> <span class="n">lPIPEResponseDict</span><span class="p">[</span><span class="s2">&quot;Result&quot;</span><span class="p">]</span>
<span class="k">return</span> <span class="n">lResult</span> <span class="k">return</span> <span class="n">lResult</span></div>
<span class="c1">#################################################################################################</span> <span class="c1">#################################################################################################</span>
<span class="c1">#Wait for UIO is appear (at least one of them or all at the same time)</span> <span class="c1">#Wait for UIO is appear (at least one of them or all at the same time)</span>
<span class="c1">#inSpecificationListList - List of the UIOSelector</span> <span class="c1">#inSpecificationListList - List of the UIOSelector</span>
@ -452,7 +466,19 @@
<span class="c1">#old name - -</span> <span class="c1">#old name - -</span>
<span class="c1">#####Внимание#####</span> <span class="c1">#####Внимание#####</span>
<span class="c1">##Функция ожидания появления элементов (тк элементы могут быть недоступны, неизвестно в каком фреймворке каждый из них может появиться)</span> <span class="c1">##Функция ожидания появления элементов (тк элементы могут быть недоступны, неизвестно в каком фреймворке каждый из них может появиться)</span>
<span class="k">def</span> <span class="nf">UIOSelectorsSecs_WaitAppear_List</span> <span class="p">(</span><span class="n">inSpecificationListList</span><span class="p">,</span><span class="n">inWaitSecs</span><span class="p">,</span><span class="n">inFlagWaitAllInMoment</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> <div class="viewcode-block" id="UIOSelectorsSecs_WaitAppear_List"><a class="viewcode-back" href="../../../Robot/02_Defs.html#pyOpenRPA.Robot.UIDesktop.UIOSelectorsSecs_WaitAppear_List">[docs]</a><span class="k">def</span> <span class="nf">UIOSelectorsSecs_WaitAppear_List</span> <span class="p">(</span><span class="n">inSpecificationListList</span><span class="p">,</span><span class="n">inWaitSecs</span><span class="p">,</span><span class="n">inFlagWaitAllInMoment</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
<span class="sd">&#39;&#39;&#39;</span>
<span class="sd"> Wait for many UI object will appear in GUI for inWaitSecs seconds.</span>
<span class="sd"> :param inSpecificationListList: UIOSelector list.</span>
<span class="sd"> Example: [</span>
<span class="sd"> [{&quot;title&quot;:&quot;notepad&quot;},{&quot;title&quot;:&quot;OK&quot;}],</span>
<span class="sd"> [{&quot;title&quot;:&quot;notepad&quot;},{&quot;title&quot;:&quot;Cancel&quot;}]</span>
<span class="sd"> ]</span>
<span class="sd"> :param inWaitSecs: Float value (seconds) for wait UI element appear in GUI</span>
<span class="sd"> :param inFlagWaitAllInMoment: True - Wait all UI objects from the UIOSelector list to be appeared</span>
<span class="sd"> :return: List of index, which UI object UIO will be appeared. Example: [1] # Appear only UI object with UIO selector: [{&quot;title&quot;:&quot;notepad&quot;},{&quot;title&quot;:&quot;Cancel&quot;}]</span>
<span class="sd"> &#39;&#39;&#39;</span>
<span class="n">lResultFlag</span><span class="o">=</span><span class="kc">False</span> <span class="n">lResultFlag</span><span class="o">=</span><span class="kc">False</span>
<span class="n">lSecsSleep</span> <span class="o">=</span> <span class="mi">1</span> <span class="c1">#Настроечный параметр</span> <span class="n">lSecsSleep</span> <span class="o">=</span> <span class="mi">1</span> <span class="c1">#Настроечный параметр</span>
<span class="n">lSecsDone</span> <span class="o">=</span> <span class="mi">0</span> <span class="n">lSecsDone</span> <span class="o">=</span> <span class="mi">0</span>
@ -481,7 +507,7 @@
<span class="k">if</span> <span class="n">lResultFlag</span> <span class="o">==</span> <span class="kc">False</span><span class="p">:</span> <span class="k">if</span> <span class="n">lResultFlag</span> <span class="o">==</span> <span class="kc">False</span><span class="p">:</span>
<span class="n">lSecsDone</span><span class="o">=</span><span class="n">lSecsDone</span><span class="o">+</span><span class="n">lSecsSleep</span> <span class="n">lSecsDone</span><span class="o">=</span><span class="n">lSecsDone</span><span class="o">+</span><span class="n">lSecsSleep</span>
<span class="n">time</span><span class="o">.</span><span class="n">sleep</span><span class="p">(</span><span class="n">lSecsSleep</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">lSecsSleep</span><span class="p">)</span>
<span class="k">return</span> <span class="n">lResultList</span> <span class="k">return</span> <span class="n">lResultList</span></div>
<span class="c1">#################################################################################################</span> <span class="c1">#################################################################################################</span>
<span class="c1">#Wait for UIO is Disappear (at least one of them or all at the same time)</span> <span class="c1">#Wait for UIO is Disappear (at least one of them or all at the same time)</span>
<span class="c1">#inSpecificationListList - List of the UIOSelector</span> <span class="c1">#inSpecificationListList - List of the UIOSelector</span>
@ -491,7 +517,20 @@
<span class="c1">#old name - -</span> <span class="c1">#old name - -</span>
<span class="c1">#####Внимание#####</span> <span class="c1">#####Внимание#####</span>
<span class="c1">##Функция ожидания пропажи элементов (тк элементы могут быть недоступны, неизвестно в каком фреймворке каждый из них может появиться)</span> <span class="c1">##Функция ожидания пропажи элементов (тк элементы могут быть недоступны, неизвестно в каком фреймворке каждый из них может появиться)</span>
<span class="k">def</span> <span class="nf">UIOSelectorsSecs_WaitDisappear_List</span> <span class="p">(</span><span class="n">inSpecificationListList</span><span class="p">,</span><span class="n">inWaitSecs</span><span class="p">,</span><span class="n">inFlagWaitAllInMoment</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> <div class="viewcode-block" id="UIOSelectorsSecs_WaitDisappear_List"><a class="viewcode-back" href="../../../Robot/02_Defs.html#pyOpenRPA.Robot.UIDesktop.UIOSelectorsSecs_WaitDisappear_List">[docs]</a><span class="k">def</span> <span class="nf">UIOSelectorsSecs_WaitDisappear_List</span> <span class="p">(</span><span class="n">inSpecificationListList</span><span class="p">,</span><span class="n">inWaitSecs</span><span class="p">,</span><span class="n">inFlagWaitAllInMoment</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
<span class="sd">&#39;&#39;&#39;</span>
<span class="sd"> Wait for many UI object will disappear in GUI for inWaitSecs seconds.</span>
<span class="sd"> :param inSpecificationListList: UIOSelector list.</span>
<span class="sd"> Example: [</span>
<span class="sd"> [{&quot;title&quot;:&quot;notepad&quot;},{&quot;title&quot;:&quot;OK&quot;}],</span>
<span class="sd"> [{&quot;title&quot;:&quot;notepad&quot;},{&quot;title&quot;:&quot;Cancel&quot;}]</span>
<span class="sd"> ]</span>
<span class="sd"> :param inWaitSecs: Float value (seconds) for wait UI element disappear in GUI</span>
<span class="sd"> :param inFlagWaitAllInMoment: True - Wait all UI objects from the UIOSelector list to be disappeared.</span>
<span class="sd"> :return: List of index, which UI object UIO will be disappeared. Example: [1] # Disappear only UI object with UIO selector: [{&quot;title&quot;:&quot;notepad&quot;},{&quot;title&quot;:&quot;Cancel&quot;}]</span>
<span class="sd"> :return:</span>
<span class="sd"> &#39;&#39;&#39;</span>
<span class="n">lResultFlag</span><span class="o">=</span><span class="kc">False</span> <span class="n">lResultFlag</span><span class="o">=</span><span class="kc">False</span>
<span class="n">lSecsSleep</span> <span class="o">=</span> <span class="mi">1</span> <span class="c1">#Настроечный параметр</span> <span class="n">lSecsSleep</span> <span class="o">=</span> <span class="mi">1</span> <span class="c1">#Настроечный параметр</span>
<span class="n">lSecsDone</span> <span class="o">=</span> <span class="mi">0</span> <span class="n">lSecsDone</span> <span class="o">=</span> <span class="mi">0</span>
@ -520,37 +559,58 @@
<span class="k">if</span> <span class="n">lResultFlag</span> <span class="o">==</span> <span class="kc">False</span><span class="p">:</span> <span class="k">if</span> <span class="n">lResultFlag</span> <span class="o">==</span> <span class="kc">False</span><span class="p">:</span>
<span class="n">lSecsDone</span><span class="o">=</span><span class="n">lSecsDone</span><span class="o">+</span><span class="n">lSecsSleep</span> <span class="n">lSecsDone</span><span class="o">=</span><span class="n">lSecsDone</span><span class="o">+</span><span class="n">lSecsSleep</span>
<span class="n">time</span><span class="o">.</span><span class="n">sleep</span><span class="p">(</span><span class="n">lSecsSleep</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">lSecsSleep</span><span class="p">)</span>
<span class="k">return</span> <span class="n">lResultList</span> <span class="k">return</span> <span class="n">lResultList</span></div>
<span class="c1">#################################################################################################</span> <span class="c1">#################################################################################################</span>
<span class="c1">#Wait for UIO is appear (at least one of them or all at the same time)</span> <span class="c1">#Wait for UIO is appear (at least one of them or all at the same time)</span>
<span class="c1">#inSpecificationList - UIOSelector</span> <span class="c1">#inSpecificationList - UIOSelector</span>
<span class="c1">#inWaitSecs - Время ожидания объекта в секундах</span> <span class="c1">#inWaitSecs - Время ожидания объекта в секундах</span>
<span class="c1">#return: Bool - True - UIO is appear</span> <span class="c1">#return: Bool - True - UIO is appear</span>
<span class="c1">#old name - -</span> <span class="c1">#old name - -</span>
<span class="k">def</span> <span class="nf">UIOSelectorSecs_WaitAppear_Bool</span> <span class="p">(</span><span class="n">inSpecificationList</span><span class="p">,</span><span class="n">inWaitSecs</span><span class="p">):</span> <div class="viewcode-block" id="UIOSelectorSecs_WaitAppear_Bool"><a class="viewcode-back" href="../../../Robot/02_Defs.html#pyOpenRPA.Robot.UIDesktop.UIOSelectorSecs_WaitAppear_Bool">[docs]</a><span class="k">def</span> <span class="nf">UIOSelectorSecs_WaitAppear_Bool</span> <span class="p">(</span><span class="n">inSpecificationList</span><span class="p">,</span><span class="n">inWaitSecs</span><span class="p">):</span>
<span class="sd">&#39;&#39;&#39;</span>
<span class="sd"> Wait for UI object will appear in GUI for inWaitSecs seconds.</span>
<span class="sd"> :param inSpecificationList: UIOSelector. Example: [{&quot;title&quot;:&quot;notepad&quot;},{&quot;title&quot;:&quot;OK&quot;}]</span>
<span class="sd"> :param inWaitSecs: Float value (seconds) for wait UI element appear in GUI</span>
<span class="sd"> :return: True - UI object will appear. False - else case</span>
<span class="sd"> &#39;&#39;&#39;</span>
<span class="n">lWaitAppearList</span><span class="o">=</span><span class="n">UIOSelectorsSecs_WaitAppear_List</span><span class="p">([</span><span class="n">inSpecificationList</span><span class="p">],</span><span class="n">inWaitSecs</span><span class="p">)</span> <span class="n">lWaitAppearList</span><span class="o">=</span><span class="n">UIOSelectorsSecs_WaitAppear_List</span><span class="p">([</span><span class="n">inSpecificationList</span><span class="p">],</span><span class="n">inWaitSecs</span><span class="p">)</span>
<span class="n">lResult</span><span class="o">=</span><span class="kc">False</span> <span class="n">lResult</span><span class="o">=</span><span class="kc">False</span>
<span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">lWaitAppearList</span><span class="p">)</span><span class="o">&gt;</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">lWaitAppearList</span><span class="p">)</span><span class="o">&gt;</span><span class="mi">0</span><span class="p">:</span>
<span class="n">lResult</span><span class="o">=</span><span class="kc">True</span> <span class="n">lResult</span><span class="o">=</span><span class="kc">True</span>
<span class="k">return</span> <span class="n">lResult</span> <span class="k">return</span> <span class="n">lResult</span></div>
<span class="c1">#################################################################################################</span> <span class="c1">#################################################################################################</span>
<span class="c1">#Wait for UIO is disappear (at least one of them or all at the same time)</span> <span class="c1">#Wait for UIO is disappear (at least one of them or all at the same time)</span>
<span class="c1">#inSpecificationList - UIOSelector</span> <span class="c1">#inSpecificationList - UIOSelector</span>
<span class="c1">#inWaitSecs - Время ожидания пропажи объекта в секундах</span> <span class="c1">#inWaitSecs - Время ожидания пропажи объекта в секундах</span>
<span class="c1">#return: Bool - True - UIO is Disappear</span> <span class="c1">#return: Bool - True - UIO is Disappear</span>
<span class="c1">#old name - -</span> <span class="c1">#old name - -</span>
<span class="k">def</span> <span class="nf">UIOSelectorSecs_WaitDisappear_Bool</span> <span class="p">(</span><span class="n">inSpecificationList</span><span class="p">,</span><span class="n">inWaitSecs</span><span class="p">):</span> <div class="viewcode-block" id="UIOSelectorSecs_WaitDisappear_Bool"><a class="viewcode-back" href="../../../Robot/02_Defs.html#pyOpenRPA.Robot.UIDesktop.UIOSelectorSecs_WaitDisappear_Bool">[docs]</a><span class="k">def</span> <span class="nf">UIOSelectorSecs_WaitDisappear_Bool</span> <span class="p">(</span><span class="n">inSpecificationList</span><span class="p">,</span><span class="n">inWaitSecs</span><span class="p">):</span>
<span class="sd">&#39;&#39;&#39;</span>
<span class="sd"> Wait for UI object will disappear in GUI for inWaitSecs seconds.</span>
<span class="sd"> :param inSpecificationList: UIOSelector.</span>
<span class="sd"> Example: [{&quot;title&quot;:&quot;notepad&quot;},{&quot;title&quot;:&quot;OK&quot;}]</span>
<span class="sd"> :param inWaitSecs: Float value (seconds) for wait UI element disappear in GUI</span>
<span class="sd"> :return: True - UI object will disappear. False - else case</span>
<span class="sd"> &#39;&#39;&#39;</span>
<span class="n">lWaitDisappearList</span><span class="o">=</span><span class="n">UIOSelectorsSecs_WaitDisappear_List</span><span class="p">([</span><span class="n">inSpecificationList</span><span class="p">],</span><span class="n">inWaitSecs</span><span class="p">)</span> <span class="n">lWaitDisappearList</span><span class="o">=</span><span class="n">UIOSelectorsSecs_WaitDisappear_List</span><span class="p">([</span><span class="n">inSpecificationList</span><span class="p">],</span><span class="n">inWaitSecs</span><span class="p">)</span>
<span class="n">lResult</span><span class="o">=</span><span class="kc">False</span> <span class="n">lResult</span><span class="o">=</span><span class="kc">False</span>
<span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">lWaitDisappearList</span><span class="p">)</span><span class="o">&gt;</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">lWaitDisappearList</span><span class="p">)</span><span class="o">&gt;</span><span class="mi">0</span><span class="p">:</span>
<span class="n">lResult</span><span class="o">=</span><span class="kc">True</span> <span class="n">lResult</span><span class="o">=</span><span class="kc">True</span>
<span class="k">return</span> <span class="n">lResult</span> <span class="k">return</span> <span class="n">lResult</span></div>
<span class="c1">#################################################################################################</span> <span class="c1">#################################################################################################</span>
<span class="c1">#Get process bitness (32 or 64)</span> <span class="c1">#Get process bitness (32 or 64)</span>
<span class="c1">#inSpecificationList - UIOSelector</span> <span class="c1">#inSpecificationList - UIOSelector</span>
<span class="c1">#old name - None</span> <span class="c1">#old name - None</span>
<span class="c1">#return None (if Process not found), int 32, or int 64</span> <span class="c1">#return None (if Process not found), int 32, or int 64</span>
<span class="k">def</span> <span class="nf">UIOSelector_Get_BitnessInt</span> <span class="p">(</span><span class="n">inSpecificationList</span><span class="p">):</span> <div class="viewcode-block" id="UIOSelector_Get_BitnessInt"><a class="viewcode-back" href="../../../Robot/02_Defs.html#pyOpenRPA.Robot.UIDesktop.UIOSelector_Get_BitnessInt">[docs]</a><span class="k">def</span> <span class="nf">UIOSelector_Get_BitnessInt</span> <span class="p">(</span><span class="n">inSpecificationList</span><span class="p">):</span>
<span class="sd">&#39;&#39;&#39;</span>
<span class="sd"> Detect process bitness by the UI Object UIO Selector.</span>
<span class="sd"> :param inSpecificationList: UIOSelector. Example: [{&quot;title&quot;:&quot;notepad&quot;},{&quot;title&quot;:&quot;OK&quot;}]</span>
<span class="sd"> :return: int 32 or int 64</span>
<span class="sd"> &#39;&#39;&#39;</span>
<span class="n">lResult</span><span class="o">=</span><span class="kc">None</span> <span class="n">lResult</span><span class="o">=</span><span class="kc">None</span>
<span class="c1">#Получить объект Application (Для проверки разрядности)</span> <span class="c1">#Получить объект Application (Для проверки разрядности)</span>
<span class="n">lRootElement</span><span class="o">=</span><span class="n">PWASpecification_Get_PWAApplication</span><span class="p">(</span><span class="n">inSpecificationList</span><span class="p">)</span> <span class="n">lRootElement</span><span class="o">=</span><span class="n">PWASpecification_Get_PWAApplication</span><span class="p">(</span><span class="n">inSpecificationList</span><span class="p">)</span>
@ -559,13 +619,19 @@
<span class="n">lResult</span><span class="o">=</span><span class="mi">64</span> <span class="n">lResult</span><span class="o">=</span><span class="mi">64</span>
<span class="k">else</span><span class="p">:</span> <span class="k">else</span><span class="p">:</span>
<span class="n">lResult</span><span class="o">=</span><span class="mi">32</span> <span class="n">lResult</span><span class="o">=</span><span class="mi">32</span>
<span class="k">return</span> <span class="n">lResult</span> <span class="k">return</span> <span class="n">lResult</span></div>
<span class="c1">#################################################################################################</span> <span class="c1">#################################################################################################</span>
<span class="c1">#Get process bitness (&quot;32&quot; or &quot;64&quot;)</span> <span class="c1">#Get process bitness (&quot;32&quot; or &quot;64&quot;)</span>
<span class="c1">#inSpecificationList - UIOSelector</span> <span class="c1">#inSpecificationList - UIOSelector</span>
<span class="c1">#old name - None</span> <span class="c1">#old name - None</span>
<span class="c1">#return None (if Process not found), int 32, or int 64</span> <span class="c1">#return None (if Process not found), int 32, or int 64</span>
<span class="k">def</span> <span class="nf">UIOSelector_Get_BitnessStr</span> <span class="p">(</span><span class="n">inSpecificationList</span><span class="p">):</span> <div class="viewcode-block" id="UIOSelector_Get_BitnessStr"><a class="viewcode-back" href="../../../Robot/02_Defs.html#pyOpenRPA.Robot.UIDesktop.UIOSelector_Get_BitnessStr">[docs]</a><span class="k">def</span> <span class="nf">UIOSelector_Get_BitnessStr</span> <span class="p">(</span><span class="n">inSpecificationList</span><span class="p">):</span>
<span class="sd">&#39;&#39;&#39;</span>
<span class="sd"> Detect process bitness by the UI Object UIO Selector.</span>
<span class="sd"> :param inSpecificationList: UIOSelector. Example: [{&quot;title&quot;:&quot;notepad&quot;},{&quot;title&quot;:&quot;OK&quot;}]</span>
<span class="sd"> :return: str &quot;32&quot; or str &quot;64&quot;</span>
<span class="sd"> &#39;&#39;&#39;</span>
<span class="n">lResult</span><span class="o">=</span><span class="kc">None</span> <span class="n">lResult</span><span class="o">=</span><span class="kc">None</span>
<span class="c1">#Получить объект Application (Для проверки разрядности)</span> <span class="c1">#Получить объект Application (Для проверки разрядности)</span>
<span class="n">lRootElement</span><span class="o">=</span><span class="n">PWASpecification_Get_PWAApplication</span><span class="p">(</span><span class="n">inSpecificationList</span><span class="p">)</span> <span class="n">lRootElement</span><span class="o">=</span><span class="n">PWASpecification_Get_PWAApplication</span><span class="p">(</span><span class="n">inSpecificationList</span><span class="p">)</span>
@ -574,21 +640,29 @@
<span class="n">lResult</span><span class="o">=</span><span class="s2">&quot;64&quot;</span> <span class="n">lResult</span><span class="o">=</span><span class="s2">&quot;64&quot;</span>
<span class="k">else</span><span class="p">:</span> <span class="k">else</span><span class="p">:</span>
<span class="n">lResult</span><span class="o">=</span><span class="s2">&quot;32&quot;</span> <span class="n">lResult</span><span class="o">=</span><span class="s2">&quot;32&quot;</span>
<span class="k">return</span> <span class="n">lResult</span> <span class="k">return</span> <span class="n">lResult</span></div>
<span class="c1">#################################################################################################</span> <span class="c1">#################################################################################################</span>
<span class="c1">#Get OS bitness (32 or 64)</span> <span class="c1">#Get OS bitness (32 or 64)</span>
<span class="c1">#old name - None</span> <span class="c1">#old name - None</span>
<span class="c1">#return int 32, or int 64</span> <span class="c1">#return int 32, or int 64</span>
<span class="k">def</span> <span class="nf">Get_OSBitnessInt</span> <span class="p">():</span> <div class="viewcode-block" id="Get_OSBitnessInt"><a class="viewcode-back" href="../../../Robot/02_Defs.html#pyOpenRPA.Robot.UIDesktop.Get_OSBitnessInt">[docs]</a><span class="k">def</span> <span class="nf">Get_OSBitnessInt</span> <span class="p">():</span>
<span class="n">lResult</span><span class="o">=</span><span class="mi">32</span><span class="p">;</span> <span class="sd">&#39;&#39;&#39;</span>
<span class="sd"> Detect OS bitness.</span>
<span class="sd"> :return: int 32 or int 64</span>
<span class="sd"> &#39;&#39;&#39;</span>
<span class="n">lResult</span><span class="o">=</span><span class="mi">32</span>
<span class="k">if</span> <span class="n">pywinauto</span><span class="o">.</span><span class="n">sysinfo</span><span class="o">.</span><span class="n">is_x64_OS</span><span class="p">():</span> <span class="k">if</span> <span class="n">pywinauto</span><span class="o">.</span><span class="n">sysinfo</span><span class="o">.</span><span class="n">is_x64_OS</span><span class="p">():</span>
<span class="n">lResult</span><span class="o">=</span><span class="mi">64</span><span class="p">;</span> <span class="n">lResult</span><span class="o">=</span><span class="mi">64</span>
<span class="k">return</span> <span class="n">lResult</span><span class="p">;</span> <span class="k">return</span> <span class="n">lResult</span></div>
<span class="c1">#################################################################################################</span> <span class="c1">#################################################################################################</span>
<span class="c1">#Safe get other process or None if destination app is the other/same bitness</span> <div class="viewcode-block" id="UIOSelector_SafeOtherGet_Process"><a class="viewcode-back" href="../../../Robot/02_Defs.html#pyOpenRPA.Robot.UIDesktop.UIOSelector_SafeOtherGet_Process">[docs]</a><span class="k">def</span> <span class="nf">UIOSelector_SafeOtherGet_Process</span><span class="p">(</span><span class="n">inUIOSelector</span><span class="p">):</span>
<span class="c1">#inUIOSelector - selector of the destination</span> <span class="sd">&#39;&#39;&#39;</span>
<span class="c1">#return None or process (of the other bitness)</span> <span class="sd"> Safe get other process or None if destination app is the other/same bitness</span>
<span class="k">def</span> <span class="nf">UIOSelector_SafeOtherGet_Process</span><span class="p">(</span><span class="n">inUIOSelector</span><span class="p">):</span>
<span class="sd"> :param inUIOSelector: UIO Selector of the UI object</span>
<span class="sd"> :return: None or process (of the other bitness)</span>
<span class="sd"> &#39;&#39;&#39;</span>
<span class="c1">#Default value</span> <span class="c1">#Default value</span>
<span class="n">lResult</span> <span class="o">=</span> <span class="kc">None</span> <span class="n">lResult</span> <span class="o">=</span> <span class="kc">None</span>
<span class="c1">#Go check bitness if selector exists</span> <span class="c1">#Go check bitness if selector exists</span>
@ -597,13 +671,16 @@
<span class="n">lUIOSelectorAppBitness</span> <span class="o">=</span> <span class="n">UIOSelector_Get_BitnessStr</span><span class="p">(</span><span class="n">inUIOSelector</span><span class="p">)</span> <span class="n">lUIOSelectorAppBitness</span> <span class="o">=</span> <span class="n">UIOSelector_Get_BitnessStr</span><span class="p">(</span><span class="n">inUIOSelector</span><span class="p">)</span>
<span class="k">if</span> <span class="n">lUIOSelectorAppBitness</span> <span class="ow">and</span> <span class="n">Utils</span><span class="o">.</span><span class="n">ProcessBitness</span><span class="o">.</span><span class="n">mSettingsDict</span><span class="p">[</span><span class="s2">&quot;BitnessProcessCurrent&quot;</span><span class="p">]</span> <span class="o">!=</span> <span class="n">lUIOSelectorAppBitness</span><span class="p">:</span> <span class="k">if</span> <span class="n">lUIOSelectorAppBitness</span> <span class="ow">and</span> <span class="n">Utils</span><span class="o">.</span><span class="n">ProcessBitness</span><span class="o">.</span><span class="n">mSettingsDict</span><span class="p">[</span><span class="s2">&quot;BitnessProcessCurrent&quot;</span><span class="p">]</span> <span class="o">!=</span> <span class="n">lUIOSelectorAppBitness</span><span class="p">:</span>
<span class="n">lResult</span> <span class="o">=</span> <span class="n">Utils</span><span class="o">.</span><span class="n">ProcessBitness</span><span class="o">.</span><span class="n">OtherProcessGet</span><span class="p">()</span> <span class="n">lResult</span> <span class="o">=</span> <span class="n">Utils</span><span class="o">.</span><span class="n">ProcessBitness</span><span class="o">.</span><span class="n">OtherProcessGet</span><span class="p">()</span>
<span class="k">return</span> <span class="n">lResult</span> <span class="k">return</span> <span class="n">lResult</span></div>
<span class="c1">##################################################################################################</span> <span class="c1">##################################################################################################</span>
<span class="c1">#inControlSpecificationArray - List of dict, dict in pywinauto.find_windows notation</span> <div class="viewcode-block" id="PWASpecification_Get_UIO"><a class="viewcode-back" href="../../../Robot/02_Defs.html#pyOpenRPA.Robot.UIDesktop.PWASpecification_Get_UIO">[docs]</a><span class="k">def</span> <span class="nf">PWASpecification_Get_UIO</span><span class="p">(</span><span class="n">inControlSpecificationArray</span><span class="p">):</span>
<span class="c1">#Backend selection - attribute &quot;backend&quot; (&quot;win32&quot; || &quot;uia&quot;) in 1-st list element</span> <span class="sd">&#39;&#39;&#39;</span>
<span class="c1">#return list of UIO object</span> <span class="sd"> #Backend def selection - attribute &quot;backend&quot; (&quot;win32&quot; || &quot;uia&quot;) in 1-st list element</span>
<span class="c1">#old name - GetControl</span> <span class="sd"> #old name - GetControl</span>
<span class="k">def</span> <span class="nf">PWASpecification_Get_UIO</span><span class="p">(</span><span class="n">inControlSpecificationArray</span><span class="p">):</span>
<span class="sd"> :param inControlSpecificationArray: List of dict, dict in pywinauto.find_windows notation</span>
<span class="sd"> :return: list of UIO object</span>
<span class="sd"> &#39;&#39;&#39;</span>
<span class="c1">#Определение backend</span> <span class="c1">#Определение backend</span>
<span class="n">lBackend</span><span class="o">=</span><span class="n">mDefaultPywinautoBackend</span> <span class="n">lBackend</span><span class="o">=</span><span class="n">mDefaultPywinautoBackend</span>
<span class="k">if</span> <span class="s2">&quot;backend&quot;</span> <span class="ow">in</span> <span class="n">inControlSpecificationArray</span><span class="p">[</span><span class="mi">0</span><span class="p">]:</span> <span class="k">if</span> <span class="s2">&quot;backend&quot;</span> <span class="ow">in</span> <span class="n">inControlSpecificationArray</span><span class="p">[</span><span class="mi">0</span><span class="p">]:</span>
@ -613,7 +690,7 @@
<span class="n">inControlSpecificationOriginArray</span><span class="o">=</span><span class="n">copy</span><span class="o">.</span><span class="n">deepcopy</span><span class="p">(</span><span class="n">inControlSpecificationArray</span><span class="p">)</span> <span class="n">inControlSpecificationOriginArray</span><span class="o">=</span><span class="n">copy</span><span class="o">.</span><span class="n">deepcopy</span><span class="p">(</span><span class="n">inControlSpecificationArray</span><span class="p">)</span>
<span class="n">inControlSpecificationArray</span><span class="o">=</span><span class="n">UIOSelector_SearchProcessNormalize_UIOSelector</span><span class="p">(</span><span class="n">inControlSpecificationArray</span><span class="p">)</span> <span class="n">inControlSpecificationArray</span><span class="o">=</span><span class="n">UIOSelector_SearchProcessNormalize_UIOSelector</span><span class="p">(</span><span class="n">inControlSpecificationArray</span><span class="p">)</span>
<span class="c1">#Выполнить идентификацию объектов, если передан массив</span> <span class="c1">#Выполнить идентификацию объектов, если передан массив</span>
<span class="n">lResultList</span><span class="o">=</span><span class="p">[];</span> <span class="n">lResultList</span><span class="o">=</span><span class="p">[]</span>
<span class="n">lTempObject</span><span class="o">=</span><span class="kc">None</span> <span class="n">lTempObject</span><span class="o">=</span><span class="kc">None</span>
<span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">inControlSpecificationArray</span><span class="p">)</span> <span class="o">&gt;</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">inControlSpecificationArray</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="c1">#Сформировать выборку элементов, которые подходят под первый уровень спецификации</span>
@ -648,13 +725,15 @@
<span class="n">lTempObject</span><span class="o">=</span><span class="n">lTempObject</span><span class="o">.</span><span class="n">window</span><span class="p">(</span><span class="o">**</span><span class="n">lWindowSpecification</span><span class="p">)</span> <span class="n">lTempObject</span><span class="o">=</span><span class="n">lTempObject</span><span class="o">.</span><span class="n">window</span><span class="p">(</span><span class="o">**</span><span class="n">lWindowSpecification</span><span class="p">)</span>
<span class="c1">#Добавить объект в результирующий массив</span> <span class="c1">#Добавить объект в результирующий массив</span>
<span class="n">lResultList</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">lTempObject</span><span class="p">)</span> <span class="n">lResultList</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">lTempObject</span><span class="p">)</span>
<span class="k">return</span> <span class="n">lResultList</span> <span class="k">return</span> <span class="n">lResultList</span></div>
<span class="c1">##################################################################################################</span> <span class="c1">##################################################################################################</span>
<span class="c1">#inControlSpecificationArray - List of dict, dict in pywinauto.find_windows notation</span> <div class="viewcode-block" id="PWASpecification_Get_PWAApplication"><a class="viewcode-back" href="../../../Robot/02_Defs.html#pyOpenRPA.Robot.UIDesktop.PWASpecification_Get_PWAApplication">[docs]</a><span class="k">def</span> <span class="nf">PWASpecification_Get_PWAApplication</span><span class="p">(</span><span class="n">inControlSpecificationArray</span><span class="p">):</span>
<span class="c1">#Backend selection - attribute &quot;backend&quot; (&quot;win32&quot; || &quot;uia&quot;) in 1-st list element</span> <span class="sd">&#39;&#39;&#39;</span>
<span class="c1">#return process application object</span> <span class="sd"> #Backend selection - attribute &quot;backend&quot; (&quot;win32&quot; || &quot;uia&quot;) in 1-st list element</span>
<span class="c1">#old name - None</span>
<span class="k">def</span> <span class="nf">PWASpecification_Get_PWAApplication</span><span class="p">(</span><span class="n">inControlSpecificationArray</span><span class="p">):</span> <span class="sd"> :param inControlSpecificationArray: List of dict, dict in pywinauto.find_windows notation</span>
<span class="sd"> :return: process application object</span>
<span class="sd"> &#39;&#39;&#39;</span>
<span class="n">inControlSpecificationArray</span><span class="o">=</span><span class="n">copy</span><span class="o">.</span><span class="n">deepcopy</span><span class="p">(</span><span class="n">inControlSpecificationArray</span><span class="p">)</span> <span class="n">inControlSpecificationArray</span><span class="o">=</span><span class="n">copy</span><span class="o">.</span><span class="n">deepcopy</span><span class="p">(</span><span class="n">inControlSpecificationArray</span><span class="p">)</span>
<span class="c1">#Определение backend</span> <span class="c1">#Определение backend</span>
<span class="n">lBackend</span><span class="o">=</span><span class="n">mDefaultPywinautoBackend</span> <span class="n">lBackend</span><span class="o">=</span><span class="n">mDefaultPywinautoBackend</span>
@ -665,7 +744,7 @@
<span class="n">inControlSpecificationOriginArray</span><span class="o">=</span><span class="n">inControlSpecificationArray</span> <span class="n">inControlSpecificationOriginArray</span><span class="o">=</span><span class="n">inControlSpecificationArray</span>
<span class="n">inControlSpecificationArray</span><span class="o">=</span><span class="n">UIOSelector_SearchProcessNormalize_UIOSelector</span><span class="p">(</span><span class="n">inControlSpecificationArray</span><span class="p">)</span> <span class="n">inControlSpecificationArray</span><span class="o">=</span><span class="n">UIOSelector_SearchProcessNormalize_UIOSelector</span><span class="p">(</span><span class="n">inControlSpecificationArray</span><span class="p">)</span>
<span class="c1">#Выполнить идентификацию объектов, если передан массив</span> <span class="c1">#Выполнить идентификацию объектов, если передан массив</span>
<span class="n">lResultList</span><span class="o">=</span><span class="p">[];</span> <span class="n">lResultList</span><span class="o">=</span><span class="p">[]</span>
<span class="n">lTempObject</span><span class="o">=</span><span class="kc">None</span> <span class="n">lTempObject</span><span class="o">=</span><span class="kc">None</span>
<span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">inControlSpecificationArray</span><span class="p">)</span> <span class="o">&gt;</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">inControlSpecificationArray</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="c1">#Выполнить подключение к объекту</span>
@ -683,13 +762,17 @@
<span class="c1">#lTempObject=lRPAApplication.window(**inControlSpecificationArray[0])</span> <span class="c1">#lTempObject=lRPAApplication.window(**inControlSpecificationArray[0])</span>
<span class="c1">#Скорректировано из-за недопонимания структуры</span> <span class="c1">#Скорректировано из-за недопонимания структуры</span>
<span class="n">lTempObject</span><span class="o">=</span><span class="n">lRPAApplication</span> <span class="n">lTempObject</span><span class="o">=</span><span class="n">lRPAApplication</span>
<span class="k">return</span> <span class="n">lTempObject</span> <span class="k">return</span> <span class="n">lTempObject</span></div>
<span class="c1">###########################################################################################################</span> <span class="c1">###########################################################################################################</span>
<span class="c1">#inElementSpecificationList = UIOSelector (see description on the top of the document)</span> <div class="viewcode-block" id="UIOSelector_SearchChildByMouse_UIO"><a class="viewcode-back" href="../../../Robot/02_Defs.html#pyOpenRPA.Robot.UIDesktop.UIOSelector_SearchChildByMouse_UIO">[docs]</a><span class="k">def</span> <span class="nf">UIOSelector_SearchChildByMouse_UIO</span><span class="p">(</span><span class="n">inElementSpecification</span><span class="p">):</span>
<span class="c1">#result = pywinauto element wrapper instance or None</span> <span class="sd">&#39;&#39;&#39;</span>
<span class="c1">#old name - AutomationSearchMouseElement</span> <span class="sd"> UIOSelector (see description on the top of the document)</span>
<span class="k">def</span> <span class="nf">UIOSelector_SearchChildByMouse_UIO</span><span class="p">(</span><span class="n">inElementSpecification</span><span class="p">):</span> <span class="sd"> #old name - AutomationSearchMouseElement</span>
<span class="sd"> :param inElementSpecification: UIOSelector of the UI Object</span>
<span class="sd"> :return: pywinauto element wrapper instance or None</span>
<span class="sd"> &#39;&#39;&#39;</span>
<span class="n">lGUISearchElementSelected</span><span class="o">=</span><span class="kc">None</span> <span class="n">lGUISearchElementSelected</span><span class="o">=</span><span class="kc">None</span>
<span class="c1">#Настройка - частота обновления подсвечивания</span> <span class="c1">#Настройка - частота обновления подсвечивания</span>
<span class="n">lTimeSleepSeconds</span><span class="o">=</span><span class="mf">0.4</span> <span class="n">lTimeSleepSeconds</span><span class="o">=</span><span class="mf">0.4</span>
@ -721,17 +804,21 @@
<span class="n">UIO_Highlight</span><span class="p">(</span><span class="n">lElementFounded</span><span class="p">)</span> <span class="n">UIO_Highlight</span><span class="p">(</span><span class="n">lElementFounded</span><span class="p">)</span>
<span class="k">else</span><span class="p">:</span> <span class="k">else</span><span class="p">:</span>
<span class="c1">#Была нажата клавиша Ctrl - выйти из цикла</span> <span class="c1">#Была нажата клавиша Ctrl - выйти из цикла</span>
<span class="n">lFlagLoop</span><span class="o">=</span><span class="kc">False</span><span class="p">;</span> <span class="n">lFlagLoop</span><span class="o">=</span><span class="kc">False</span>
<span class="c1">#Заснуть до следующего цикла</span> <span class="c1">#Заснуть до следующего цикла</span>
<span class="n">time</span><span class="o">.</span><span class="n">sleep</span><span class="p">(</span><span class="n">lTimeSleepSeconds</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">lTimeSleepSeconds</span><span class="p">)</span>
<span class="c1">#Вернуть результат поиска</span> <span class="c1">#Вернуть результат поиска</span>
<span class="k">return</span> <span class="n">lElementFoundedList</span> <span class="k">return</span> <span class="n">lElementFoundedList</span></div>
<span class="c1">####################################################################################################</span> <span class="c1">####################################################################################################</span>
<span class="c1">#inElementSpecification - UIOSelector</span>
<span class="c1">#!!!!!Safe call is included (you can set activity and UIDesktop will choose the bitness and return the result)!!!!!</span>
<span class="c1">#old name - AutomationSearchMouseElementHierarchy</span> <span class="c1">#old name - AutomationSearchMouseElementHierarchy</span>
<span class="k">def</span> <span class="nf">UIOSelector_SearchChildByMouse_UIOTree</span><span class="p">(</span><span class="n">inUIOSelector</span><span class="p">):</span> <div class="viewcode-block" id="UIOSelector_SearchChildByMouse_UIOTree"><a class="viewcode-back" href="../../../Robot/02_Defs.html#pyOpenRPA.Robot.UIDesktop.UIOSelector_SearchChildByMouse_UIOTree">[docs]</a><span class="k">def</span> <span class="nf">UIOSelector_SearchChildByMouse_UIOTree</span><span class="p">(</span><span class="n">inUIOSelector</span><span class="p">):</span>
<span class="sd">&#39;&#39;&#39;</span>
<span class="sd"> !!!!Safe call is included (you can set activity and UIDesktop will choose the bitness and return the result)!!!!!</span>
<span class="sd"> :param inUIOSelector: UIOSelector of the UI Object</span>
<span class="sd"> :return: ?</span>
<span class="sd"> &#39;&#39;&#39;</span>
<span class="n">lItemInfo</span> <span class="o">=</span> <span class="p">[]</span> <span class="n">lItemInfo</span> <span class="o">=</span> <span class="p">[]</span>
<span class="c1">#Check the bitness</span> <span class="c1">#Check the bitness</span>
<span class="n">lSafeOtherProcess</span> <span class="o">=</span> <span class="n">UIOSelector_SafeOtherGet_Process</span><span class="p">(</span><span class="n">inUIOSelector</span><span class="p">)</span> <span class="n">lSafeOtherProcess</span> <span class="o">=</span> <span class="n">UIOSelector_SafeOtherGet_Process</span><span class="p">(</span><span class="n">inUIOSelector</span><span class="p">)</span>
@ -790,7 +877,7 @@
<span class="k">else</span><span class="p">:</span> <span class="k">else</span><span class="p">:</span>
<span class="n">lItemInfo</span> <span class="o">=</span> <span class="n">lPIPEResponseDict</span><span class="p">[</span><span class="s2">&quot;Result&quot;</span><span class="p">]</span> <span class="n">lItemInfo</span> <span class="o">=</span> <span class="n">lPIPEResponseDict</span><span class="p">[</span><span class="s2">&quot;Result&quot;</span><span class="p">]</span>
<span class="c1">#Вернуть результат</span> <span class="c1">#Вернуть результат</span>
<span class="k">return</span> <span class="n">lItemInfo</span> <span class="k">return</span> <span class="n">lItemInfo</span></div>
<span class="c1">####################################################################################################</span> <span class="c1">####################################################################################################</span>
<span class="c1">#inElement- UIO (UI Object)</span> <span class="c1">#inElement- UIO (UI Object)</span>
<span class="c1">#old name - PywinautoExtElementCtrlIndexGet</span> <span class="c1">#old name - PywinautoExtElementCtrlIndexGet</span>
@ -915,7 +1002,9 @@
<span class="c1">#inUIOSelector</span> <span class="c1">#inUIOSelector</span>
<span class="c1">#inActionName - UIOActivity (name) from Pywinauto</span> <span class="c1">#inActionName - UIOActivity (name) from Pywinauto</span>
<span class="c1">#old name - ElementRunAction</span> <span class="c1">#old name - ElementRunAction</span>
<span class="k">def</span> <span class="nf">UIOSelectorUIOActivity_Run_Dict</span><span class="p">(</span><span class="n">inUIOSelector</span><span class="p">,</span> <span class="n">inActionName</span><span class="p">,</span> <span class="n">inArgumentList</span><span class="o">=</span><span class="p">[],</span> <span class="n">inkwArgumentObject</span><span class="o">=</span><span class="p">{}):</span> <span class="k">def</span> <span class="nf">UIOSelectorUIOActivity_Run_Dict</span><span class="p">(</span><span class="n">inUIOSelector</span><span class="p">,</span> <span class="n">inActionName</span><span class="p">,</span> <span class="n">inArgumentList</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">inkwArgumentObject</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
<span class="k">if</span> <span class="n">inArgumentList</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> <span class="n">inArgumentList</span><span class="o">=</span><span class="p">[]</span> <span class="c1"># 2021 02 22 Minor fix by Ivan Maslov</span>
<span class="k">if</span> <span class="n">inkwArgumentObject</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> <span class="n">inkwArgumentObject</span><span class="o">=</span><span class="p">{}</span> <span class="c1"># 2021 02 22 Minor fix by Ivan Maslov</span>
<span class="n">lResult</span><span class="o">=</span><span class="p">{}</span> <span class="n">lResult</span><span class="o">=</span><span class="p">{}</span>
<span class="c1">#Check the bitness</span> <span class="c1">#Check the bitness</span>
<span class="n">lSafeOtherProcess</span> <span class="o">=</span> <span class="n">UIOSelector_SafeOtherGet_Process</span><span class="p">(</span><span class="n">inUIOSelector</span><span class="p">)</span> <span class="n">lSafeOtherProcess</span> <span class="o">=</span> <span class="n">UIOSelector_SafeOtherGet_Process</span><span class="p">(</span><span class="n">inUIOSelector</span><span class="p">)</span>
@ -969,7 +1058,7 @@
<span class="c1">#Подготовка входного массива</span> <span class="c1">#Подготовка входного массива</span>
<span class="n">inUIOSelector</span><span class="o">=</span><span class="n">UIOSelector_SearchUIONormalize_UIOSelector</span><span class="p">(</span><span class="n">inUIOSelector</span><span class="p">)</span> <span class="n">inUIOSelector</span><span class="o">=</span><span class="n">UIOSelector_SearchUIONormalize_UIOSelector</span><span class="p">(</span><span class="n">inUIOSelector</span><span class="p">)</span>
<span class="c1">#Выполнить идентификацию объектов, если передан массив</span> <span class="c1">#Выполнить идентификацию объектов, если передан массив</span>
<span class="n">lResultList</span><span class="o">=</span><span class="p">[];</span> <span class="n">lResultList</span><span class="o">=</span><span class="p">[]</span>
<span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">inUIOSelector</span><span class="p">)</span> <span class="o">&gt;</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">inUIOSelector</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="c1">#Получить объект</span>
<span class="n">lTempObject</span><span class="o">=</span><span class="n">UIOSelector_Get_UIO</span><span class="p">(</span><span class="n">inUIOSelector</span><span class="p">)</span> <span class="n">lTempObject</span><span class="o">=</span><span class="n">UIOSelector_Get_UIO</span><span class="p">(</span><span class="n">inUIOSelector</span><span class="p">)</span>
@ -997,7 +1086,8 @@
<span class="c1">#inHierarchyList: [{&quot;index&quot;:&lt;&gt;,&quot;element&quot;:&lt;&gt;}] - technical argument for internal purpose</span> <span class="c1">#inHierarchyList: [{&quot;index&quot;:&lt;&gt;,&quot;element&quot;:&lt;&gt;}] - technical argument for internal purpose</span>
<span class="c1">#result -List of dict [{&quot;index&quot;:&lt;&gt;,&quot;element&quot;:&lt;&gt;}] -- list of element hierarchy specifications</span> <span class="c1">#result -List of dict [{&quot;index&quot;:&lt;&gt;,&quot;element&quot;:&lt;&gt;}] -- list of element hierarchy specifications</span>
<span class="c1">#old name - GUISearchElementByRootXY</span> <span class="c1">#old name - GUISearchElementByRootXY</span>
<span class="k">def</span> <span class="nf">UIOXY_SearchChild_ListDict</span><span class="p">(</span><span class="n">inRootElement</span><span class="p">,</span><span class="n">inX</span><span class="p">,</span><span class="n">inY</span><span class="p">,</span><span class="n">inHierarchyList</span><span class="o">=</span><span class="p">[]):</span> <span class="k">def</span> <span class="nf">UIOXY_SearchChild_ListDict</span><span class="p">(</span><span class="n">inRootElement</span><span class="p">,</span><span class="n">inX</span><span class="p">,</span><span class="n">inY</span><span class="p">,</span><span class="n">inHierarchyList</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
<span class="k">if</span> <span class="n">inHierarchyList</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> <span class="n">inHierarchyList</span> <span class="o">=</span> <span class="p">[]</span>
<span class="c1">#Инициализация результирующего значения</span> <span class="c1">#Инициализация результирующего значения</span>
<span class="n">lResultElement</span> <span class="o">=</span> <span class="kc">None</span> <span class="n">lResultElement</span> <span class="o">=</span> <span class="kc">None</span>
<span class="n">lResultElementX1</span> <span class="o">=</span> <span class="kc">None</span> <span class="n">lResultElementX1</span> <span class="o">=</span> <span class="kc">None</span>
@ -1086,7 +1176,8 @@
<span class="c1">#!!!!!Safe call is included (you can set activity and UIDesktop will choose the bitness and return the result)!!!!!</span> <span class="c1">#!!!!!Safe call is included (you can set activity and UIDesktop will choose the bitness and return the result)!!!!!</span>
<span class="c1">#inControlSpecificationArray- UIOSelector</span> <span class="c1">#inControlSpecificationArray- UIOSelector</span>
<span class="c1">#old name - ElementGetChildElementList</span> <span class="c1">#old name - ElementGetChildElementList</span>
<span class="k">def</span> <span class="nf">UIOSelector_GetChildList_UIOList</span><span class="p">(</span><span class="n">inUIOSelector</span><span class="o">=</span><span class="p">[],</span> <span class="n">inBackend</span><span class="o">=</span><span class="n">mDefaultPywinautoBackend</span><span class="p">):</span> <span class="k">def</span> <span class="nf">UIOSelector_GetChildList_UIOList</span><span class="p">(</span><span class="n">inUIOSelector</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">inBackend</span><span class="o">=</span><span class="n">mDefaultPywinautoBackend</span><span class="p">):</span>
<span class="k">if</span> <span class="n">inUIOSelector</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> <span class="n">inUIOSelector</span> <span class="o">=</span> <span class="p">[]</span>
<span class="c1">#mRobotLogger.info(f&quot;File!!!!&quot;)</span> <span class="c1">#mRobotLogger.info(f&quot;File!!!!&quot;)</span>
<span class="c1">#mRobotLogger.info(f&quot;inSelector:{str(inUIOSelector)}, inBackend:{str(inBackend)}&quot;)</span> <span class="c1">#mRobotLogger.info(f&quot;inSelector:{str(inUIOSelector)}, inBackend:{str(inBackend)}&quot;)</span>
<span class="c1">#pdb.set_trace()</span> <span class="c1">#pdb.set_trace()</span>
@ -1367,7 +1458,7 @@
<span class="n">lResultList2</span><span class="o">=</span><span class="p">[]</span> <span class="n">lResultList2</span><span class="o">=</span><span class="p">[]</span>
<span class="k">for</span> <span class="n">lI</span> <span class="ow">in</span> <span class="n">lResultList</span><span class="p">:</span> <span class="k">for</span> <span class="n">lI</span> <span class="ow">in</span> <span class="n">lResultList</span><span class="p">:</span>
<span class="n">lTempObjectInfo</span><span class="o">=</span><span class="n">lI</span> <span class="n">lTempObjectInfo</span><span class="o">=</span><span class="n">lI</span>
<span class="n">lResultList2</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">UIOEI_Convert_UIOInfo</span><span class="p">(</span><span class="n">lI</span><span class="p">));</span> <span class="n">lResultList2</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">UIOEI_Convert_UIOInfo</span><span class="p">(</span><span class="n">lI</span><span class="p">))</span>
<span class="k">return</span> <span class="n">lResultList2</span> <span class="k">return</span> <span class="n">lResultList2</span>
<span class="c1">###################################################################################################</span> <span class="c1">###################################################################################################</span>

@ -198,6 +198,8 @@
<h2 id="G">G</h2> <h2 id="G">G</h2>
<table style="width: 100%" class="indextable genindextable"><tr> <table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul> <td style="width: 33%; vertical-align: top;"><ul>
<li><a href="Robot/01_Robot.html#pyOpenRPA.Robot.UIDesktop.Get_OSBitnessInt">Get_OSBitnessInt() (in module pyOpenRPA.Robot.UIDesktop)</a>, <a href="Robot/02_Defs.html#pyOpenRPA.Robot.UIDesktop.Get_OSBitnessInt">[1]</a>
</li>
<li><a href="Orchestrator/02_Defs.html#pyOpenRPA.Orchestrator.__Orchestrator__.GSettingsAutocleaner">GSettingsAutocleaner() (in module pyOpenRPA.Orchestrator.__Orchestrator__)</a> <li><a href="Orchestrator/02_Defs.html#pyOpenRPA.Orchestrator.__Orchestrator__.GSettingsAutocleaner">GSettingsAutocleaner() (in module pyOpenRPA.Orchestrator.__Orchestrator__)</a>
</li> </li>
<li><a href="Orchestrator/02_Defs.html#pyOpenRPA.Orchestrator.__Orchestrator__.GSettingsKeyListValueAppend">GSettingsKeyListValueAppend() (in module pyOpenRPA.Orchestrator.__Orchestrator__)</a> <li><a href="Orchestrator/02_Defs.html#pyOpenRPA.Orchestrator.__Orchestrator__.GSettingsKeyListValueAppend">GSettingsKeyListValueAppend() (in module pyOpenRPA.Orchestrator.__Orchestrator__)</a>
@ -259,11 +261,15 @@
</li> </li>
<li><a href="Orchestrator/02_Defs.html#pyOpenRPA.Orchestrator.__Orchestrator__.ProcessorAliasDefUpdate">ProcessorAliasDefUpdate() (in module pyOpenRPA.Orchestrator.__Orchestrator__)</a> <li><a href="Orchestrator/02_Defs.html#pyOpenRPA.Orchestrator.__Orchestrator__.ProcessorAliasDefUpdate">ProcessorAliasDefUpdate() (in module pyOpenRPA.Orchestrator.__Orchestrator__)</a>
</li> </li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="Orchestrator/02_Defs.html#pyOpenRPA.Orchestrator.__Orchestrator__.ProcessStart">ProcessStart() (in module pyOpenRPA.Orchestrator.__Orchestrator__)</a> <li><a href="Orchestrator/02_Defs.html#pyOpenRPA.Orchestrator.__Orchestrator__.ProcessStart">ProcessStart() (in module pyOpenRPA.Orchestrator.__Orchestrator__)</a>
</li> </li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="Orchestrator/02_Defs.html#pyOpenRPA.Orchestrator.__Orchestrator__.ProcessStop">ProcessStop() (in module pyOpenRPA.Orchestrator.__Orchestrator__)</a> <li><a href="Orchestrator/02_Defs.html#pyOpenRPA.Orchestrator.__Orchestrator__.ProcessStop">ProcessStop() (in module pyOpenRPA.Orchestrator.__Orchestrator__)</a>
</li>
<li><a href="Robot/01_Robot.html#pyOpenRPA.Robot.UIDesktop.PWASpecification_Get_PWAApplication">PWASpecification_Get_PWAApplication() (in module pyOpenRPA.Robot.UIDesktop)</a>, <a href="Robot/02_Defs.html#pyOpenRPA.Robot.UIDesktop.PWASpecification_Get_PWAApplication">[1]</a>
</li>
<li><a href="Robot/01_Robot.html#pyOpenRPA.Robot.UIDesktop.PWASpecification_Get_UIO">PWASpecification_Get_UIO() (in module pyOpenRPA.Robot.UIDesktop)</a>, <a href="Robot/02_Defs.html#pyOpenRPA.Robot.UIDesktop.PWASpecification_Get_UIO">[1]</a>
</li> </li>
<li> <li>
pyOpenRPA.Orchestrator.__Orchestrator__ pyOpenRPA.Orchestrator.__Orchestrator__
@ -333,11 +339,33 @@
</li> </li>
<li><a href="Orchestrator/02_Defs.html#pyOpenRPA.Orchestrator.__Orchestrator__.UACSuperTokenUpdate">UACSuperTokenUpdate() (in module pyOpenRPA.Orchestrator.__Orchestrator__)</a> <li><a href="Orchestrator/02_Defs.html#pyOpenRPA.Orchestrator.__Orchestrator__.UACSuperTokenUpdate">UACSuperTokenUpdate() (in module pyOpenRPA.Orchestrator.__Orchestrator__)</a>
</li> </li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="Orchestrator/02_Defs.html#pyOpenRPA.Orchestrator.__Orchestrator__.UACUpdate">UACUpdate() (in module pyOpenRPA.Orchestrator.__Orchestrator__)</a> <li><a href="Orchestrator/02_Defs.html#pyOpenRPA.Orchestrator.__Orchestrator__.UACUpdate">UACUpdate() (in module pyOpenRPA.Orchestrator.__Orchestrator__)</a>
</li> </li>
<li><a href="Robot/01_Robot.html#pyOpenRPA.Robot.UIDesktop.UIOSelector_Exist_Bool">UIOSelector_Exist_Bool() (in module pyOpenRPA.Robot.UIDesktop)</a>, <a href="Robot/02_Defs.html#pyOpenRPA.Robot.UIDesktop.UIOSelector_Exist_Bool">[1]</a>
</li>
<li><a href="Robot/01_Robot.html#pyOpenRPA.Robot.UIDesktop.UIOSelector_Get_BitnessInt">UIOSelector_Get_BitnessInt() (in module pyOpenRPA.Robot.UIDesktop)</a>, <a href="Robot/02_Defs.html#pyOpenRPA.Robot.UIDesktop.UIOSelector_Get_BitnessInt">[1]</a>
</li>
<li><a href="Robot/01_Robot.html#pyOpenRPA.Robot.UIDesktop.UIOSelector_Get_BitnessStr">UIOSelector_Get_BitnessStr() (in module pyOpenRPA.Robot.UIDesktop)</a>, <a href="Robot/02_Defs.html#pyOpenRPA.Robot.UIDesktop.UIOSelector_Get_BitnessStr">[1]</a>
</li>
<li><a href="Robot/01_Robot.html#pyOpenRPA.Robot.UIDesktop.UIOSelector_Get_UIO">UIOSelector_Get_UIO() (in module pyOpenRPA.Robot.UIDesktop)</a>, <a href="Robot/02_Defs.html#pyOpenRPA.Robot.UIDesktop.UIOSelector_Get_UIO">[1]</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="Robot/01_Robot.html#pyOpenRPA.Robot.UIDesktop.UIOSelector_Get_UIOList">UIOSelector_Get_UIOList() (in module pyOpenRPA.Robot.UIDesktop)</a>, <a href="Robot/02_Defs.html#pyOpenRPA.Robot.UIDesktop.UIOSelector_Get_UIOList">[1]</a> <li><a href="Robot/01_Robot.html#pyOpenRPA.Robot.UIDesktop.UIOSelector_Get_UIOList">UIOSelector_Get_UIOList() (in module pyOpenRPA.Robot.UIDesktop)</a>, <a href="Robot/02_Defs.html#pyOpenRPA.Robot.UIDesktop.UIOSelector_Get_UIOList">[1]</a>
</li>
<li><a href="Robot/01_Robot.html#pyOpenRPA.Robot.UIDesktop.UIOSelector_SafeOtherGet_Process">UIOSelector_SafeOtherGet_Process() (in module pyOpenRPA.Robot.UIDesktop)</a>, <a href="Robot/02_Defs.html#pyOpenRPA.Robot.UIDesktop.UIOSelector_SafeOtherGet_Process">[1]</a>
</li>
<li><a href="Robot/01_Robot.html#pyOpenRPA.Robot.UIDesktop.UIOSelector_SearchChildByMouse_UIO">UIOSelector_SearchChildByMouse_UIO() (in module pyOpenRPA.Robot.UIDesktop)</a>, <a href="Robot/02_Defs.html#pyOpenRPA.Robot.UIDesktop.UIOSelector_SearchChildByMouse_UIO">[1]</a>
</li>
<li><a href="Robot/01_Robot.html#pyOpenRPA.Robot.UIDesktop.UIOSelector_SearchChildByMouse_UIOTree">UIOSelector_SearchChildByMouse_UIOTree() (in module pyOpenRPA.Robot.UIDesktop)</a>, <a href="Robot/02_Defs.html#pyOpenRPA.Robot.UIDesktop.UIOSelector_SearchChildByMouse_UIOTree">[1]</a>
</li>
<li><a href="Robot/01_Robot.html#pyOpenRPA.Robot.UIDesktop.UIOSelectorSecs_WaitAppear_Bool">UIOSelectorSecs_WaitAppear_Bool() (in module pyOpenRPA.Robot.UIDesktop)</a>, <a href="Robot/02_Defs.html#pyOpenRPA.Robot.UIDesktop.UIOSelectorSecs_WaitAppear_Bool">[1]</a>
</li>
<li><a href="Robot/01_Robot.html#pyOpenRPA.Robot.UIDesktop.UIOSelectorSecs_WaitDisappear_Bool">UIOSelectorSecs_WaitDisappear_Bool() (in module pyOpenRPA.Robot.UIDesktop)</a>, <a href="Robot/02_Defs.html#pyOpenRPA.Robot.UIDesktop.UIOSelectorSecs_WaitDisappear_Bool">[1]</a>
</li>
<li><a href="Robot/01_Robot.html#pyOpenRPA.Robot.UIDesktop.UIOSelectorsSecs_WaitAppear_List">UIOSelectorsSecs_WaitAppear_List() (in module pyOpenRPA.Robot.UIDesktop)</a>, <a href="Robot/02_Defs.html#pyOpenRPA.Robot.UIDesktop.UIOSelectorsSecs_WaitAppear_List">[1]</a>
</li>
<li><a href="Robot/01_Robot.html#pyOpenRPA.Robot.UIDesktop.UIOSelectorsSecs_WaitDisappear_List">UIOSelectorsSecs_WaitDisappear_List() (in module pyOpenRPA.Robot.UIDesktop)</a>, <a href="Robot/02_Defs.html#pyOpenRPA.Robot.UIDesktop.UIOSelectorsSecs_WaitDisappear_List">[1]</a>
</li> </li>
</ul></td> </ul></td>
</tr></table> </tr></table>

Binary file not shown.

File diff suppressed because one or more lines are too long

@ -21,7 +21,7 @@ __Orchestrator__.OSCMD(inCMDStr = "git status", inRunAsyncBool=True)
| |
| `AgentOSCMD`(inGSettings, inHostNameStr, …) | `AgentOSCMD`(inGSettings, inHostNameStr, …)
| pyOpenRPA.Agent: Send CMD to OS. | Send CMD to OS throught the pyOpenRPA.Agent daemon.
| |
| `AgentOSFileBinaryDataBase64StrCreate`(…) | `AgentOSFileBinaryDataBase64StrCreate`(…)
@ -91,9 +91,9 @@ __Orchestrator__.OSCMD(inCMDStr = "git status", inRunAsyncBool=True)
| |
| `ProcessListGet`([inProcessNameWOExeList]) | `ProcessListGet`([inProcessNameWOExeList])
| Return process list on the orchestrator machine. | Return process list on the orchestrator machine sorted by Memory Usage.
| |
| `ProcessStart`(inPathStr, inArgList[, …]) | `ProcessStart`(inPathStr, inArgList[, …])
| Start process locally. | Start process locally.
@ -126,9 +126,9 @@ __Orchestrator__.OSCMD(inCMDStr = "git status", inRunAsyncBool=True)
| |
| `PythonStart`(inModulePathStr, inDefNameStr[, …]) | `PythonStart`(inModulePathStr, inDefNameStr[, …])
| Python import module and start def | Import module and run def in the Orchestrator process.
| |
| `RDPSessionCMDRun`(inGSettings, …[, inModeStr]) | `RDPSessionCMDRun`(inGSettings, …[, inModeStr])
| Send command in RDP session | Send command in RDP session
@ -146,9 +146,9 @@ __Orchestrator__.OSCMD(inCMDStr = "git status", inRunAsyncBool=True)
| |
| `RDPSessionDublicatesResolve`(inGSettings) | `RDPSessionDublicatesResolve`(inGSettings)
| Search dublicates in GSettings RDPlist !def is developing! | DEVELOPING Search dublicates in GSettings RDPlist !def is developing!
| |
| `RDPSessionFileStoredRecieve`(inGSettings, …) | `RDPSessionFileStoredRecieve`(inGSettings, …)
| Receive file from Session RDP to Host using shared drive in RDP | Receive file from Session RDP to Host using shared drive in RDP
@ -191,14 +191,14 @@ __Orchestrator__.OSCMD(inCMDStr = "git status", inRunAsyncBool=True)
| |
| `RDPTemplateCreate`(inLoginStr, inPasswordStr) | `RDPTemplateCreate`(inLoginStr, inPasswordStr)
| Create some RDP template dict to use it when connect/reconnect | Create RDP connect dict item/ Use it connect/reconnect (Orchestrator.RDPSessionConnect)
| |
| `SchedulerActivityTimeAddWeekly`(inGSettings) | `SchedulerActivityTimeAddWeekly`(inGSettings)
| Add activity in time weekly | Add activity item list in scheduler.
| |
| `UACKeyListCheck`(inRequest, inRoleKeyList) | `UACKeyListCheck`(inRequest, inRoleKeyList)
| Check is client is has access for the key list | Check is client is has access for the key list
@ -282,7 +282,7 @@ import this
### pyOpenRPA.Orchestrator.__Orchestrator__.AgentOSCMD(inGSettings, inHostNameStr, inUserStr, inCMDStr, inRunAsyncBool=True) ### pyOpenRPA.Orchestrator.__Orchestrator__.AgentOSCMD(inGSettings, inHostNameStr, inUserStr, inCMDStr, inRunAsyncBool=True)
pyOpenRPA.Agent: Send CMD to OS. Result return to log + Orchestrator by the A2O connection Send CMD to OS throught the pyOpenRPA.Agent daemon. Result return to log + Orchestrator by the A2O connection
def OSCMD(inCMDStr, inRunAsyncBool=True, inGSettings=None): def OSCMD(inCMDStr, inRunAsyncBool=True, inGSettings=None):
Send to agent activity item to OSCMD Send to agent activity item to OSCMD
@ -624,14 +624,15 @@ lProcessIsStartedBool = Orchestrator.ProcessIsStarted(inProcessNameWOExeStr = "n
### pyOpenRPA.Orchestrator.__Orchestrator__.ProcessListGet(inProcessNameWOExeList=None) ### pyOpenRPA.Orchestrator.__Orchestrator__.ProcessListGet(inProcessNameWOExeList=None)
Return process list on the orchestrator machine. You can determine the list of the processes you are interested - def will return the list about it. Return process list on the orchestrator machine sorted by Memory Usage. You can determine the list of the processes you are interested - def will return the list about it.
``` ```
# USAGE # USAGE
from pyOpenRPA import Orchestrator from pyOpenRPA import Orchestrator
lProcessList = Orchestrator.ProcessListGet() lProcessList = Orchestrator.ProcessListGet()
# Return the list of the process on the machine. !ATTENTION! RUn orchestrator as administrator to get all process list on the machine. # Return the list of the process on the machine.
# !ATTENTION! RUn orchestrator as administrator to get all process list on the machine.
``` ```
@ -944,30 +945,43 @@ Orchestrator.ProcessorAliasDefUpdate(
### pyOpenRPA.Orchestrator.__Orchestrator__.PythonStart(inModulePathStr, inDefNameStr, inArgList=None, inArgDict=None, inLogger=None) ### pyOpenRPA.Orchestrator.__Orchestrator__.PythonStart(inModulePathStr, inDefNameStr, inArgList=None, inArgDict=None, inLogger=None)
Python import module and start def Import module and run def in the Orchestrator process.
**NOTE**: Import module will be each time when PythonStart def will be called.
```
# USAGE
from pyOpenRPA import Orchestrator
Orchestrator.PythonStart(
inModulePathStr="ModuleToCall.py", # inModulePathStr: Working Directory\ModuleToCall.py
inDefNameStr="TestDef")
# Import module in Orchestrator process and call def "TestDef" from module "ModuleToCall.py"
```
* **Parameters** * **Parameters**
* **inModulePathStr** * **inModulePathStr** Absolute or relative (working directory of the orchestrator process) path to the importing module .py
* **inDefNameStr** * **inDefNameStr** Def name in module
* **inArgList** * **inArgList** List of the arguments for callable def
* **inArgDict** * **inArgDict** Dict of the named arguments for callable def
* **inLogger** * **inLogger** Logger instance to log some information when PythonStart def is running
* **Returns** * **Returns**
None
@ -1072,7 +1086,7 @@ Disconnect the RDP session
### pyOpenRPA.Orchestrator.__Orchestrator__.RDPSessionDublicatesResolve(inGSettings) ### pyOpenRPA.Orchestrator.__Orchestrator__.RDPSessionDublicatesResolve(inGSettings)
Search dublicates in GSettings RDPlist DEVELOPING Search dublicates in GSettings RDPlist
!def is developing! !def is developing!
@ -1275,47 +1289,118 @@ Check RDP Session responsibility TODO NEED DEV + TEST
### pyOpenRPA.Orchestrator.__Orchestrator__.RDPTemplateCreate(inLoginStr, inPasswordStr, inHostStr='127.0.0.1', inPortInt=3389, inWidthPXInt=1680, inHeightPXInt=1050, inUseBothMonitorBool=False, inDepthBitInt=32, inSharedDriveList=None) ### pyOpenRPA.Orchestrator.__Orchestrator__.RDPTemplateCreate(inLoginStr, inPasswordStr, inHostStr='127.0.0.1', inPortInt=3389, inWidthPXInt=1680, inHeightPXInt=1050, inUseBothMonitorBool=False, inDepthBitInt=32, inSharedDriveList=None)
Create some RDP template dict to use it when connect/reconnect Create RDP connect dict item/ Use it connect/reconnect (Orchestrator.RDPSessionConnect)
```
# USAGE
from pyOpenRPA import Orchestrator
lRDPItemDict = Orchestrator.RDPTemplateCreate(
inLoginStr = "USER_99",
inPasswordStr = "USER_PASS_HERE",
inHostStr="127.0.0.1",
inPortInt = 3389,
inWidthPXInt = 1680,
inHeightPXInt = 1050,
inUseBothMonitorBool = False,
inDepthBitInt = 32,
inSharedDriveList=None)
# lRDPTemplateDict= { # Init the configuration item
# "Host": "127.0.0.1", "Port": "3389", "Login": "USER_99", "Password": "USER_PASS_HERE",
# "Screen": { "Width": 1680, "Height": 1050, "FlagUseAllMonitors": False, "DepthBit": "32" },
# "SharedDriveList": ["c"],
# ###### Will updated in program ############
# "SessionHex": "77777sdfsdf77777dsfdfsf77777777", # Hex is created when robot runs, example ""
# "SessionIsWindowExistBool": False, "SessionIsWindowResponsibleBool": False, "SessionIsIgnoredBool": False
# }
```
* **Parameters** * **Parameters**
* **inLoginStr** * **inLoginStr** User/Robot Login, example “USER_99”
* **inPasswordStr** * **inPasswordStr** Password, example “USER_PASS_HERE”
* **inHostStr** * **inHostStr** Host address, example “77.77.22.22”
* **inPortInt** * **inPortInt** RDP Port, example “3389” (default)
* **inWidthPXInt** * **inWidthPXInt** Width of the remote desktop in pixels, example 1680
* **inHeightPXInt** * **inHeightPXInt** Height of the remote desktop in pixels, example 1050
* **inUseBothMonitorBool** * **inUseBothMonitorBool** True - connect to the RDP with both monitors. False - else case
* **inDepthBitInt** * **inDepthBitInt** Remote desktop bitness. Available: 32 or 24 or 16 or 15, example 32
* **inSharedDriveList** * **inSharedDriveList** Host local disc to connect to the RDP session. Example: [“c”, “d”]
* **Returns** * **Returns**
{
“Host”: inHostStr, # Host address, example “77.77.22.22”
“Port”: str(inPortInt), # RDP Port, example “3389”
“Login”: inLoginStr, # Login, example “test”
“Password”: inPasswordStr, # Password, example “test”
“Screen”: {
> ”Width”: inWidthPXInt, # Width of the remote desktop in pixels, example 1680
> “Height”: inHeightPXInt, # Height of the remote desktop in pixels, example 1050
> # “640x480” or “1680x1050” or “FullScreen”. If Resolution not exists set full screen, example
> “FlagUseAllMonitors”: inUseBothMonitorBool, # True or False, example False
> “DepthBit”: str(inDepthBitInt) # “32” or “24” or “16” or “15”, example “32”
},
“SharedDriveList”: inSharedDriveList, # List of the Root sesion hard drives, example [“c”]
###### Will updated in program ############
“SessionHex”: “77777sdfsdf77777dsfdfsf77777777”, # Hex is created when robot runs, example “”
“SessionIsWindowExistBool”: False,
# Flag if the RDP window is exist, old name “FlagSessionIsActive”. Check every n seconds , example False
“SessionIsWindowResponsibleBool”: False,
# Flag if RDP window is responsible (recieve commands). Check every nn seconds. If window is Responsible - window is Exist too , example False
“SessionIsIgnoredBool”: False # Flag to ignore RDP window False - dont ignore, True - ignore, example False
}
### pyOpenRPA.Orchestrator.__Orchestrator__.SchedulerActivityTimeAddWeekly(inGSettings, inTimeHHMMStr='23:55:', inWeekdayList=None, inActivityList=None) ### pyOpenRPA.Orchestrator.__Orchestrator__.SchedulerActivityTimeAddWeekly(inGSettings, inTimeHHMMStr='23:55:', inWeekdayList=None, inActivityList=None)
Add activity in time weekly Add activity item list in scheduler. You can set weekday list and set time when launch. Activity list will be executed at planned time/day.
```
# USAGE
from pyOpenRPA import Orchestrator
# EXAMPLE 1
def TestDef(inArg1Str):
pass
lActivityItem = Orchestrator.ProcessorActivityItemCreate(
inDef = TestDef,
inArgList=[],
inArgDict={"inArg1Str": "ArgValueStr"},
inArgGSettingsStr = None,
inArgLoggerStr = None)
Orchestrator.SchedulerActivityTimeAddWeekly(
inGSettings = gSettingsDict,
inTimeHHMMStr = "04:34",
inWeekdayList=[2,3,4],
inActivityList = [lActivityItem])
# Activity will be executed at 04:34 Wednesday (2), thursday (3), friday (4)
```
* **Parameters** * **Parameters**
@ -1324,18 +1409,19 @@ Add activity in time weekly
* **inGSettings** Global settings dict (singleton) * **inGSettings** Global settings dict (singleton)
* **inTimeHHMMStr** * **inTimeHHMMStr** Activation time from “00:00” to “23:59”. Example: “05:29”
* **inWeekdayList** * **inWeekdayList** Week day list to initiate activity list. Use int from 0 (monday) to 6 (sunday) as list items. Example: [0,1,2,3,4]. Default value is everyday ([0,1,2,3,4,5,6])
* **inActivityList** * **inActivityList** Activity list structure
* **Returns** * **Returns**
None

@ -5,6 +5,160 @@ pyOpenRPA Robot is the python package.
## pyOpenRPA Robot ## pyOpenRPA Robot
### pyOpenRPA.Robot.UIDesktop.Get_OSBitnessInt()
Detect OS bitness.
* **Returns**
int 32 or int 64
### pyOpenRPA.Robot.UIDesktop.PWASpecification_Get_PWAApplication(inControlSpecificationArray)
#Backend selection - attribute “backend” (“win32” || “uia”) in 1-st list element
* **Parameters**
**inControlSpecificationArray** List of dict, dict in pywinauto.find_windows notation
* **Returns**
process application object
### pyOpenRPA.Robot.UIDesktop.PWASpecification_Get_UIO(inControlSpecificationArray)
#Backend def selection - attribute “backend” (“win32” || “uia”) in 1-st list element
#old name - GetControl
* **Parameters**
**inControlSpecificationArray** List of dict, dict in pywinauto.find_windows notation
* **Returns**
list of UIO object
### pyOpenRPA.Robot.UIDesktop.UIOSelectorSecs_WaitAppear_Bool(inSpecificationList, inWaitSecs)
Wait for UI object will appear in GUI for inWaitSecs seconds.
* **Parameters**
* **inSpecificationList** UIOSelector. Example: [{“title”:”notepad”},{“title”:”OK”}]
* **inWaitSecs** Float value (seconds) for wait UI element appear in GUI
* **Returns**
True - UI object will appear. False - else case
### pyOpenRPA.Robot.UIDesktop.UIOSelectorSecs_WaitDisappear_Bool(inSpecificationList, inWaitSecs)
Wait for UI object will disappear in GUI for inWaitSecs seconds.
* **Parameters**
* **inSpecificationList** UIOSelector.
Example: [{“title”:”notepad”},{“title”:”OK”}]
* **inWaitSecs** Float value (seconds) for wait UI element disappear in GUI
* **Returns**
True - UI object will disappear. False - else case
### pyOpenRPA.Robot.UIDesktop.UIOSelector_Exist_Bool(inUIOSelector)
Check if object is exist by the UIO selector.
* **Parameters**
**inUIOSelector**
* **Returns**
True - Object is exist. False - else case
### pyOpenRPA.Robot.UIDesktop.UIOSelector_Get_BitnessInt(inSpecificationList)
Detect process bitness by the UI Object UIO Selector.
* **Parameters**
**inSpecificationList** UIOSelector. Example: [{“title”:”notepad”},{“title”:”OK”}]
* **Returns**
int 32 or int 64
### pyOpenRPA.Robot.UIDesktop.UIOSelector_Get_BitnessStr(inSpecificationList)
Detect process bitness by the UI Object UIO Selector.
* **Parameters**
**inSpecificationList** UIOSelector. Example: [{“title”:”notepad”},{“title”:”OK”}]
* **Returns**
str “32” or str “64”
### pyOpenRPA.Robot.UIDesktop.UIOSelector_Get_UIO(inSpecificationList, inElement=None, inFlagRaiseException=True)
Get the pywinauto object by the UIO selector.
* **Parameters**
* **inSpecificationList**
* **inElement**
* **inFlagRaiseException**
* **Returns**
### pyOpenRPA.Robot.UIDesktop.UIOSelector_Get_UIOList(inSpecificationList, inElement=None, inFlagRaiseException=True) ### pyOpenRPA.Robot.UIDesktop.UIOSelector_Get_UIOList(inSpecificationList, inElement=None, inFlagRaiseException=True)
Get the UIO list by the selector Get the UIO list by the selector
@ -23,3 +177,118 @@ Get the UIO list by the selector
* **Returns** * **Returns**
### pyOpenRPA.Robot.UIDesktop.UIOSelector_SafeOtherGet_Process(inUIOSelector)
Safe get other process or None if destination app is the other/same bitness
* **Parameters**
**inUIOSelector** UIO Selector of the UI object
* **Returns**
None or process (of the other bitness)
### pyOpenRPA.Robot.UIDesktop.UIOSelector_SearchChildByMouse_UIO(inElementSpecification)
UIOSelector (see description on the top of the document)
#old name - AutomationSearchMouseElement
* **Parameters**
**inElementSpecification** UIOSelector of the UI Object
* **Returns**
pywinauto element wrapper instance or None
### pyOpenRPA.Robot.UIDesktop.UIOSelector_SearchChildByMouse_UIOTree(inUIOSelector)
!!!!Safe call is included (you can set activity and UIDesktop will choose the bitness and return the result)!!!!!
* **Parameters**
**inUIOSelector** UIOSelector of the UI Object
* **Returns**
?
### pyOpenRPA.Robot.UIDesktop.UIOSelectorsSecs_WaitAppear_List(inSpecificationListList, inWaitSecs, inFlagWaitAllInMoment=False)
Wait for many UI object will appear in GUI for inWaitSecs seconds.
* **Parameters**
* **inSpecificationListList** UIOSelector list.
Example: [
> [{“title”:”notepad”},{“title”:”OK”}],
> [{“title”:”notepad”},{“title”:”Cancel”}]
]
* **inWaitSecs** Float value (seconds) for wait UI element appear in GUI
* **inFlagWaitAllInMoment** True - Wait all UI objects from the UIOSelector list to be appeared
* **Returns**
List of index, which UI object UIO will be appeared. Example: [1] # Appear only UI object with UIO selector: [{“title”:”notepad”},{“title”:”Cancel”}]
### pyOpenRPA.Robot.UIDesktop.UIOSelectorsSecs_WaitDisappear_List(inSpecificationListList, inWaitSecs, inFlagWaitAllInMoment=False)
Wait for many UI object will disappear in GUI for inWaitSecs seconds.
* **Parameters**
* **inSpecificationListList** UIOSelector list.
Example: [
> [{“title”:”notepad”},{“title”:”OK”}],
> [{“title”:”notepad”},{“title”:”Cancel”}]
]
* **inWaitSecs** Float value (seconds) for wait UI element disappear in GUI
* **inFlagWaitAllInMoment** True - Wait all UI objects from the UIOSelector list to be disappeared.
* **Returns**
List of index, which UI object UIO will be disappeared. Example: [1] # Disappear only UI object with UIO selector: [{“title”:”notepad”},{“title”:”Cancel”}]
* **Returns**

@ -15,11 +15,235 @@ UIDesktop.UIOSelector_Get_UIO(
**Functions:** **Functions:**
| `UIOSelector_Get_UIOList`(inSpecificationList) | `Get_OSBitnessInt`()
| Get the UIO list by the selector | Detect OS bitness.
| |
| `PWASpecification_Get_PWAApplication`(…)
| #Backend selection - attribute “backend” (“win32” || “uia”) in 1-st list element
|
| `PWASpecification_Get_UIO`(…)
| #Backend def selection - attribute “backend” (“win32” || “uia”) in 1-st list element #old name - GetControl
|
| `UIOSelectorSecs_WaitAppear_Bool`(…)
| Wait for UI object will appear in GUI for inWaitSecs seconds.
|
| `UIOSelectorSecs_WaitDisappear_Bool`(…)
| Wait for UI object will disappear in GUI for inWaitSecs seconds.
|
| `UIOSelector_Exist_Bool`(inUIOSelector)
| Check if object is exist by the UIO selector.
|
| `UIOSelector_Get_BitnessInt`(inSpecificationList)
| Detect process bitness by the UI Object UIO Selector.
|
| `UIOSelector_Get_BitnessStr`(inSpecificationList)
| Detect process bitness by the UI Object UIO Selector.
|
| `UIOSelector_Get_UIO`(inSpecificationList[, …])
| Get the pywinauto object by the UIO selector.
|
| `UIOSelector_Get_UIOList`(inSpecificationList)
| Get the UIO list by the selector
|
| `UIOSelector_SafeOtherGet_Process`(inUIOSelector)
| Safe get other process or None if destination app is the other/same bitness
|
| `UIOSelector_SearchChildByMouse_UIO`(…)
| UIOSelector (see description on the top of the document) #old name - AutomationSearchMouseElement
|
| `UIOSelector_SearchChildByMouse_UIOTree`(…)
| !!!!Safe call is included (you can set activity and UIDesktop will choose the bitness and return the result)!!!!!
|
| `UIOSelectorsSecs_WaitAppear_List`(…[, …])
| Wait for many UI object will appear in GUI for inWaitSecs seconds.
|
| `UIOSelectorsSecs_WaitDisappear_List`(…[, …])
| Wait for many UI object will disappear in GUI for inWaitSecs seconds.
|
### pyOpenRPA.Robot.UIDesktop.Get_OSBitnessInt()
Detect OS bitness.
* **Returns**
int 32 or int 64
### pyOpenRPA.Robot.UIDesktop.PWASpecification_Get_PWAApplication(inControlSpecificationArray)
#Backend selection - attribute “backend” (“win32” || “uia”) in 1-st list element
* **Parameters**
**inControlSpecificationArray** List of dict, dict in pywinauto.find_windows notation
* **Returns**
process application object
### pyOpenRPA.Robot.UIDesktop.PWASpecification_Get_UIO(inControlSpecificationArray)
#Backend def selection - attribute “backend” (“win32” || “uia”) in 1-st list element
#old name - GetControl
* **Parameters**
**inControlSpecificationArray** List of dict, dict in pywinauto.find_windows notation
* **Returns**
list of UIO object
### pyOpenRPA.Robot.UIDesktop.UIOSelectorSecs_WaitAppear_Bool(inSpecificationList, inWaitSecs)
Wait for UI object will appear in GUI for inWaitSecs seconds.
* **Parameters**
* **inSpecificationList** UIOSelector. Example: [{“title”:”notepad”},{“title”:”OK”}]
* **inWaitSecs** Float value (seconds) for wait UI element appear in GUI
* **Returns**
True - UI object will appear. False - else case
### pyOpenRPA.Robot.UIDesktop.UIOSelectorSecs_WaitDisappear_Bool(inSpecificationList, inWaitSecs)
Wait for UI object will disappear in GUI for inWaitSecs seconds.
* **Parameters**
* **inSpecificationList** UIOSelector.
Example: [{“title”:”notepad”},{“title”:”OK”}]
* **inWaitSecs** Float value (seconds) for wait UI element disappear in GUI
* **Returns**
True - UI object will disappear. False - else case
### pyOpenRPA.Robot.UIDesktop.UIOSelector_Exist_Bool(inUIOSelector)
Check if object is exist by the UIO selector.
* **Parameters**
**inUIOSelector**
* **Returns**
True - Object is exist. False - else case
### pyOpenRPA.Robot.UIDesktop.UIOSelector_Get_BitnessInt(inSpecificationList)
Detect process bitness by the UI Object UIO Selector.
* **Parameters**
**inSpecificationList** UIOSelector. Example: [{“title”:”notepad”},{“title”:”OK”}]
* **Returns**
int 32 or int 64
### pyOpenRPA.Robot.UIDesktop.UIOSelector_Get_BitnessStr(inSpecificationList)
Detect process bitness by the UI Object UIO Selector.
* **Parameters**
**inSpecificationList** UIOSelector. Example: [{“title”:”notepad”},{“title”:”OK”}]
* **Returns**
str “32” or str “64”
### pyOpenRPA.Robot.UIDesktop.UIOSelector_Get_UIO(inSpecificationList, inElement=None, inFlagRaiseException=True)
Get the pywinauto object by the UIO selector.
* **Parameters**
* **inSpecificationList**
* **inElement**
* **inFlagRaiseException**
* **Returns**
### pyOpenRPA.Robot.UIDesktop.UIOSelector_Get_UIOList(inSpecificationList, inElement=None, inFlagRaiseException=True) ### pyOpenRPA.Robot.UIDesktop.UIOSelector_Get_UIOList(inSpecificationList, inElement=None, inFlagRaiseException=True)
Get the UIO list by the selector Get the UIO list by the selector
@ -42,6 +266,121 @@ Get the UIO list by the selector
### pyOpenRPA.Robot.UIDesktop.UIOSelector_SafeOtherGet_Process(inUIOSelector)
Safe get other process or None if destination app is the other/same bitness
* **Parameters**
**inUIOSelector** UIO Selector of the UI object
* **Returns**
None or process (of the other bitness)
### pyOpenRPA.Robot.UIDesktop.UIOSelector_SearchChildByMouse_UIO(inElementSpecification)
UIOSelector (see description on the top of the document)
#old name - AutomationSearchMouseElement
* **Parameters**
**inElementSpecification** UIOSelector of the UI Object
* **Returns**
pywinauto element wrapper instance or None
### pyOpenRPA.Robot.UIDesktop.UIOSelector_SearchChildByMouse_UIOTree(inUIOSelector)
!!!!Safe call is included (you can set activity and UIDesktop will choose the bitness and return the result)!!!!!
* **Parameters**
**inUIOSelector** UIOSelector of the UI Object
* **Returns**
?
### pyOpenRPA.Robot.UIDesktop.UIOSelectorsSecs_WaitAppear_List(inSpecificationListList, inWaitSecs, inFlagWaitAllInMoment=False)
Wait for many UI object will appear in GUI for inWaitSecs seconds.
* **Parameters**
* **inSpecificationListList** UIOSelector list.
Example: [
> [{“title”:”notepad”},{“title”:”OK”}],
> [{“title”:”notepad”},{“title”:”Cancel”}]
]
* **inWaitSecs** Float value (seconds) for wait UI element appear in GUI
* **inFlagWaitAllInMoment** True - Wait all UI objects from the UIOSelector list to be appeared
* **Returns**
List of index, which UI object UIO will be appeared. Example: [1] # Appear only UI object with UIO selector: [{“title”:”notepad”},{“title”:”Cancel”}]
### pyOpenRPA.Robot.UIDesktop.UIOSelectorsSecs_WaitDisappear_List(inSpecificationListList, inWaitSecs, inFlagWaitAllInMoment=False)
Wait for many UI object will disappear in GUI for inWaitSecs seconds.
* **Parameters**
* **inSpecificationListList** UIOSelector list.
Example: [
> [{“title”:”notepad”},{“title”:”OK”}],
> [{“title”:”notepad”},{“title”:”Cancel”}]
]
* **inWaitSecs** Float value (seconds) for wait UI element disappear in GUI
* **inFlagWaitAllInMoment** True - Wait all UI objects from the UIOSelector list to be disappeared.
* **Returns**
List of index, which UI object UIO will be disappeared. Example: [1] # Disappear only UI object with UIO selector: [{“title”:”notepad”},{“title”:”Cancel”}]
* **Returns**
## References ## References
[reStructuredText](http://docutils.sourceforge.net/rst.html) [reStructuredText](http://docutils.sourceforge.net/rst.html)

Loading…
Cancel
Save