diff --git a/Sources/pyOpenRPA/Orchestrator/__Orchestrator__.py b/Sources/pyOpenRPA/Orchestrator/__Orchestrator__.py index 620b8576..aecf6680 100644 --- a/Sources/pyOpenRPA/Orchestrator/__Orchestrator__.py +++ b/Sources/pyOpenRPA/Orchestrator/__Orchestrator__.py @@ -51,7 +51,7 @@ def AgentActivityItemAdd(inGSettings, inHostNameStr, inUserStr, inActivityItemDi 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): Send to agent activity item to OSCMD @@ -855,7 +855,7 @@ def ProcessStop(inProcessNameWOExeStr, inCloseForceBool, inUserNameStr = "%usern 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 @@ -863,7 +863,8 @@ def ProcessListGet(inProcessNameWOExeList=None): from pyOpenRPA import Orchestrator 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: :return: { @@ -881,7 +882,6 @@ def ProcessListGet(inProcessNameWOExeList=None): """ if inProcessNameWOExeList is None: inProcessNameWOExeList = [] - '''Get list of running process sorted by Memory Usage and filtered by inProcessNameWOExeList''' lMapUPPERInput = {} # Mapping for processes WO exe lResult = {"ProcessWOExeList":[], "ProcessWOExeUpperList":[],"ProcessDetailList":[]} # Create updated list for quick check @@ -913,14 +913,28 @@ def ProcessListGet(inProcessNameWOExeList=None): # Python def - start module function 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: - :param inDefNameStr: - :param inArgList: - :param inArgDict: - :param inLogger: - :return: + .. note:: + + Import module will be each time when PythonStart def will be called. + + .. code-block:: python + + # 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 inArgDict is None: inArgDict={} @@ -931,23 +945,42 @@ def PythonStart(inModulePathStr, inDefNameStr, inArgList=None, inArgDict=None, i except Exception as e: if inLogger: inLogger.exception("Loop activity error: module/function not founded") -# # # # # # # # # # # # # # # # # # # # # # # - # # # # # # # # # # # # # # # # # # # # # # # # Scheduler # # # # # # # # # # # # # # # # # # # # # # # 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 inTimeHHMMStr: - :param inWeekdayList: - :param inActivityList: - :return: + :param inTimeHHMMStr: Activation time from "00:00" to "23:59". Example: "05:29" + :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: Activity list structure + :return: None """ - if inWeekdayList is None: inWeekdayList=[] + if inWeekdayList is None: inWeekdayList=[0,1,2,3,4,5,6] if inActivityList is None: inActivityList=[] Processor.__ActivityListVerify__(inActivityList=inActivityList) # DO VERIFICATION FOR THE inActivityList 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, 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: - :param inPasswordStr: - :param inHostStr: - :param inPortInt: - :param inWidthPXInt: - :param inHeightPXInt: - :param inUseBothMonitorBool: - :param inDepthBitInt: - :param inSharedDriveList: + .. code-block:: python + + # 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 + # } + + :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: + { + "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"] lRDPTemplateDict= { # Init the configuration item @@ -1006,7 +1085,7 @@ def RDPTemplateCreate(inLoginStr, inPasswordStr, inHostStr="127.0.0.1", inPortIn # Return list if dublicates def RDPSessionDublicatesResolve(inGSettings): """ - Search dublicates in GSettings RDPlist + DEVELOPING Search dublicates in GSettings RDPlist !def is developing! :param inGSettings: Global settings dict (singleton) diff --git a/Sources/pyOpenRPA/Robot/UIDesktop.py b/Sources/pyOpenRPA/Robot/UIDesktop.py index 55c3042e..f82cc34b 100644 --- a/Sources/pyOpenRPA/Robot/UIDesktop.py +++ b/Sources/pyOpenRPA/Robot/UIDesktop.py @@ -240,6 +240,14 @@ def UIOSelector_Get_UIOList (inSpecificationList,inElement=None,inFlagRaiseExcep #inFlagRaiseException - Флаг True - выкинуть ошибку в случае обнаружении пустого списка #old name - PywinautoExtElementGet 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 #Получить родительский объект если на вход ничего не поступило lResultList=UIOSelector_Get_UIOList(inSpecificationList,inElement,False) @@ -255,6 +263,12 @@ def UIOSelector_Get_UIO (inSpecificationList,inElement=None,inFlagRaiseException #UIOSelector #old name - - 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 #Check the bitness lSafeOtherProcess = UIOSelector_SafeOtherGet_Process(inUIOSelector) @@ -288,6 +302,18 @@ def UIOSelector_Exist_Bool (inUIOSelector): #####Внимание##### ##Функция ожидания появления элементов (тк элементы могут быть недоступны, неизвестно в каком фреймворке каждый из них может появиться) 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 lSecsSleep = 1 #Настроечный параметр lSecsDone = 0 @@ -327,6 +353,19 @@ def UIOSelectorsSecs_WaitAppear_List (inSpecificationListList,inWaitSecs,inFlagW #####Внимание##### ##Функция ожидания пропажи элементов (тк элементы могут быть недоступны, неизвестно в каком фреймворке каждый из них может появиться) 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 lSecsSleep = 1 #Настроечный параметр lSecsDone = 0 @@ -363,6 +402,13 @@ def UIOSelectorsSecs_WaitDisappear_List (inSpecificationListList,inWaitSecs,inFl #return: Bool - True - UIO is appear #old name - - 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) lResult=False if len(lWaitAppearList)>0: @@ -375,6 +421,14 @@ def UIOSelectorSecs_WaitAppear_Bool (inSpecificationList,inWaitSecs): #return: Bool - True - UIO is Disappear #old name - - 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) lResult=False if len(lWaitDisappearList)>0: @@ -386,6 +440,12 @@ def UIOSelectorSecs_WaitDisappear_Bool (inSpecificationList,inWaitSecs): #old name - None #return None (if Process not found), int 32, or int 64 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 #Получить объект Application (Для проверки разрядности) lRootElement=PWASpecification_Get_PWAApplication(inSpecificationList) @@ -401,6 +461,12 @@ def UIOSelector_Get_BitnessInt (inSpecificationList): #old name - None #return None (if Process not found), int 32, or int 64 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 #Получить объект Application (Для проверки разрядности) lRootElement=PWASpecification_Get_PWAApplication(inSpecificationList) @@ -415,15 +481,23 @@ def UIOSelector_Get_BitnessStr (inSpecificationList): #old name - None #return int 32, or int 64 def Get_OSBitnessInt (): - lResult=32; + ''' + Detect OS bitness. + + :return: int 32 or int 64 + ''' + lResult=32 if pywinauto.sysinfo.is_x64_OS(): - lResult=64; - return lResult; + lResult=64 + 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): + ''' + 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 lResult = None #Go check bitness if selector exists @@ -434,11 +508,14 @@ def UIOSelector_SafeOtherGet_Process(inUIOSelector): lResult = Utils.ProcessBitness.OtherProcessGet() 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): + ''' + #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 lBackend=mDefaultPywinautoBackend if "backend" in inControlSpecificationArray[0]: @@ -448,7 +525,7 @@ def PWASpecification_Get_UIO(inControlSpecificationArray): inControlSpecificationOriginArray=copy.deepcopy(inControlSpecificationArray) inControlSpecificationArray=UIOSelector_SearchProcessNormalize_UIOSelector(inControlSpecificationArray) #Выполнить идентификацию объектов, если передан массив - lResultList=[]; + lResultList=[] lTempObject=None if len(inControlSpecificationArray) > 0: #Сформировать выборку элементов, которые подходят под первый уровень спецификации @@ -485,11 +562,13 @@ def PWASpecification_Get_UIO(inControlSpecificationArray): lResultList.append(lTempObject) 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): + ''' + #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) #Определение backend lBackend=mDefaultPywinautoBackend @@ -500,7 +579,7 @@ def PWASpecification_Get_PWAApplication(inControlSpecificationArray): inControlSpecificationOriginArray=inControlSpecificationArray inControlSpecificationArray=UIOSelector_SearchProcessNormalize_UIOSelector(inControlSpecificationArray) #Выполнить идентификацию объектов, если передан массив - lResultList=[]; + lResultList=[] lTempObject=None if len(inControlSpecificationArray) > 0: #Выполнить подключение к объекту @@ -521,10 +600,14 @@ def PWASpecification_Get_PWAApplication(inControlSpecificationArray): 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): + ''' + 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 #Настройка - частота обновления подсвечивания lTimeSleepSeconds=0.4 @@ -556,17 +639,21 @@ def UIOSelector_SearchChildByMouse_UIO(inElementSpecification): UIO_Highlight(lElementFounded) else: #Была нажата клавиша Ctrl - выйти из цикла - lFlagLoop=False; + lFlagLoop=False #Заснуть до следующего цикла time.sleep(lTimeSleepSeconds) #Вернуть результат поиска 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 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 = [] #Check the bitness lSafeOtherProcess = UIOSelector_SafeOtherGet_Process(inUIOSelector) @@ -750,7 +837,9 @@ def UIOSelector_Get_UIOActivityList (inUIOSelector): #inUIOSelector #inActionName - UIOActivity (name) from Pywinauto #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={} #Check the bitness lSafeOtherProcess = UIOSelector_SafeOtherGet_Process(inUIOSelector) @@ -804,7 +893,7 @@ def UIOSelector_Get_UIOInfo(inUIOSelector): #Подготовка входного массива inUIOSelector=UIOSelector_SearchUIONormalize_UIOSelector(inUIOSelector) #Выполнить идентификацию объектов, если передан массив - lResultList=[]; + lResultList=[] if len(inUIOSelector) > 0: #Получить объект lTempObject=UIOSelector_Get_UIO(inUIOSelector) @@ -832,7 +921,8 @@ def UIOSelector_Get_UIOInfo(inUIOSelector): #inHierarchyList: [{"index":<>,"element":<>}] - technical argument for internal purpose #result -List of dict [{"index":<>,"element":<>}] -- list of element hierarchy specifications #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 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)!!!!! #inControlSpecificationArray- UIOSelector #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"inSelector:{str(inUIOSelector)}, inBackend:{str(inBackend)}") #pdb.set_trace() @@ -1202,7 +1293,7 @@ def BackendStr_GetTopLevelList_UIOInfo(inBackend=mDefaultPywinautoBackend): lResultList2=[] for lI in lResultList: lTempObjectInfo=lI - lResultList2.append(UIOEI_Convert_UIOInfo(lI)); + lResultList2.append(UIOEI_Convert_UIOInfo(lI)) return lResultList2 ################################################################################################### diff --git a/Wiki/ENG_Guide/html/Orchestrator/02_Defs.html b/Wiki/ENG_Guide/html/Orchestrator/02_Defs.html index 1b270b56..c719e41a 100644 --- a/Wiki/ENG_Guide/html/Orchestrator/02_Defs.html +++ b/Wiki/ENG_Guide/html/Orchestrator/02_Defs.html @@ -194,7 +194,7 @@

Add activity in AgentDict.

AgentOSCMD(inGSettings, inHostNameStr, …)

-

pyOpenRPA.Agent: Send CMD to OS.

+

Send CMD to OS throught the pyOpenRPA.Agent daemon.

AgentOSFileBinaryDataBase64StrCreate(…)

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)

@@ -236,7 +236,7 @@

Check if there is any running process that contains the given name processName.

ProcessListGet([inProcessNameWOExeList])

-

Return process list on the orchestrator machine.

+

Return process list on the orchestrator machine sorted by Memory Usage.

ProcessStart(inPathStr, inArgList[, …])

Start process locally.

@@ -257,7 +257,7 @@

Update alias for def (can be used in ActivityItem in field Def).

PythonStart(inModulePathStr, inDefNameStr[, …])

-

Python import module and start def

+

Import module and run def in the Orchestrator process.

RDPSessionCMDRun(inGSettings, …[, inModeStr])

Send command in RDP session

@@ -269,7 +269,7 @@

Disconnect the RDP session

RDPSessionDublicatesResolve(inGSettings)

-

Search dublicates in GSettings RDPlist !def is developing!

+

DEVELOPING Search dublicates in GSettings RDPlist !def is developing!

RDPSessionFileStoredRecieve(inGSettings, …)

Receive file from Session RDP to Host using shared drive in RDP

@@ -296,10 +296,10 @@

Check RDP Session responsibility TODO NEED DEV + TEST

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)

-

Add activity in time weekly

+

Add activity item list in scheduler.

UACKeyListCheck(inRequest, inRoleKeyList)

Check is client is has access for the key list

@@ -359,7 +359,7 @@
pyOpenRPA.Orchestrator.__Orchestrator__.AgentOSCMD(inGSettings, inHostNameStr, inUserStr, inCMDStr, inRunAsyncBool=True)[source]
-

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): Send to agent activity item to OSCMD

@@ -640,12 +640,13 @@ Create Activity Item for the agent

pyOpenRPA.Orchestrator.__Orchestrator__.ProcessListGet(inProcessNameWOExeList=None)[source]
-

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
 from pyOpenRPA import Orchestrator
 
 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.
 
@@ -912,19 +913,32 @@ Create Activity Item for the agent

pyOpenRPA.Orchestrator.__Orchestrator__.PythonStart(inModulePathStr, inDefNameStr, inArgList=None, inArgDict=None, inLogger=None)[source]
-

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
    -
  • inModulePathStr

  • -
  • inDefNameStr

  • -
  • inArgList

  • -
  • inArgDict

  • -
  • inLogger

  • +
  • inModulePathStr – Absolute or relative (working directory of the orchestrator process) path to the importing module .py

  • +
  • inDefNameStr – Def name in module

  • +
  • inArgList – List of the arguments for callable def

  • +
  • inArgDict – Dict of the named arguments for callable def

  • +
  • inLogger – Logger instance to log some information when PythonStart def is running

Returns
-

+

None

@@ -1008,7 +1022,7 @@ Var 2 (Backward compatibility): inGSettings, inRDPSessionKeyStr, inHostStr, inP
pyOpenRPA.Orchestrator.__Orchestrator__.RDPSessionDublicatesResolve(inGSettings)[source]
-

Search dublicates in GSettings RDPlist +

DEVELOPING Search dublicates in GSettings RDPlist !def is developing!

Parameters
@@ -1170,23 +1184,71 @@ Var 2 (Backward compatibility): inGSettings, inRDPSessionKeyStr, inHostStr, inP
pyOpenRPA.Orchestrator.__Orchestrator__.RDPTemplateCreate(inLoginStr, inPasswordStr, inHostStr='127.0.0.1', inPortInt=3389, inWidthPXInt=1680, inHeightPXInt=1050, inUseBothMonitorBool=False, inDepthBitInt=32, inSharedDriveList=None)[source]
-

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
    -
  • inLoginStr

  • -
  • inPasswordStr

  • -
  • inHostStr

  • -
  • inPortInt

  • -
  • inWidthPXInt

  • -
  • inHeightPXInt

  • -
  • inUseBothMonitorBool

  • -
  • inDepthBitInt

  • -
  • inSharedDriveList

  • +
  • inLoginStr – User/Robot Login, example “USER_99”

  • +
  • inPasswordStr – Password, example “USER_PASS_HERE”

  • +
  • inHostStr – Host address, example “77.77.22.22”

  • +
  • inPortInt – RDP Port, example “3389” (default)

  • +
  • inWidthPXInt – Width of the remote desktop in pixels, example 1680

  • +
  • inHeightPXInt – Height of the remote desktop in pixels, example 1050

  • +
  • inUseBothMonitorBool – True - connect to the RDP with both monitors. False - else case

  • +
  • inDepthBitInt – Remote desktop bitness. Available: 32 or 24 or 16 or 15, example 32

  • +
  • inSharedDriveList – Host local disc to connect to the RDP session. Example: [“c”, “d”]

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

+
+
+

}

+

@@ -1194,18 +1256,38 @@ Var 2 (Backward compatibility): inGSettings, inRDPSessionKeyStr, inHostStr, inP
pyOpenRPA.Orchestrator.__Orchestrator__.SchedulerActivityTimeAddWeekly(inGSettings, inTimeHHMMStr='23:55:', inWeekdayList=None, inActivityList=None)[source]
-

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
  • inGSettings – Global settings dict (singleton)

  • -
  • inTimeHHMMStr

  • -
  • inWeekdayList

  • -
  • inActivityList

  • +
  • inTimeHHMMStr – Activation time from “00:00” to “23:59”. Example: “05:29”

  • +
  • 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 – Activity list structure

Returns
-

+

None

diff --git a/Wiki/ENG_Guide/html/Robot/01_Robot.html b/Wiki/ENG_Guide/html/Robot/01_Robot.html index 907b7f44..bd0c15de 100644 --- a/Wiki/ENG_Guide/html/Robot/01_Robot.html +++ b/Wiki/ENG_Guide/html/Robot/01_Robot.html @@ -174,6 +174,141 @@

pyOpenRPA Robot is the python package.

pyOpenRPA Robot

+
+
+pyOpenRPA.Robot.UIDesktop.Get_OSBitnessInt()[source]
+

Detect OS bitness.

+
+
Returns
+

int 32 or int 64

+
+
+
+ +
+
+pyOpenRPA.Robot.UIDesktop.PWASpecification_Get_PWAApplication(inControlSpecificationArray)[source]
+

#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)[source]
+

#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)[source]
+

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)[source]
+

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)[source]
+

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)[source]
+

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)[source]
+

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)[source]
+

Get the pywinauto object by the UIO selector.

+
+
Parameters
+
    +
  • inSpecificationList

  • +
  • inElement

  • +
  • inFlagRaiseException

  • +
+
+
Returns
+

+
+
+
+
pyOpenRPA.Robot.UIDesktop.UIOSelector_Get_UIOList(inSpecificationList, inElement=None, inFlagRaiseException=True)[source]
@@ -192,6 +327,103 @@
+
+
+pyOpenRPA.Robot.UIDesktop.UIOSelector_SafeOtherGet_Process(inUIOSelector)[source]
+

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)[source]
+

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)[source]
+

!!!!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)[source]
+

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)[source]
+

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
+

+
+
+
+ diff --git a/Wiki/ENG_Guide/html/Robot/02_Defs.html b/Wiki/ENG_Guide/html/Robot/02_Defs.html index 41f9c470..bacdf032 100644 --- a/Wiki/ENG_Guide/html/Robot/02_Defs.html +++ b/Wiki/ENG_Guide/html/Robot/02_Defs.html @@ -191,11 +191,188 @@ -

UIOSelector_Get_UIOList(inSpecificationList)

+

Get_OSBitnessInt()

+

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()[source]
+

Detect OS bitness.

+
+
Returns
+

int 32 or int 64

+
+
+
+ +
+
+pyOpenRPA.Robot.UIDesktop.PWASpecification_Get_PWAApplication(inControlSpecificationArray)[source]
+

#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)[source]
+

#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)[source]
+

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)[source]
+

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)[source]
+

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)[source]
+

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)[source]
+

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)[source]
+

Get the pywinauto object by the UIO selector.

+
+
Parameters
+
    +
  • inSpecificationList

  • +
  • inElement

  • +
  • inFlagRaiseException

  • +
+
+
Returns
+

+
+
+
+
pyOpenRPA.Robot.UIDesktop.UIOSelector_Get_UIOList(inSpecificationList, inElement=None, inFlagRaiseException=True)[source]
@@ -214,6 +391,103 @@
+
+
+pyOpenRPA.Robot.UIDesktop.UIOSelector_SafeOtherGet_Process(inUIOSelector)[source]
+

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)[source]
+

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)[source]
+

!!!!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)[source]
+

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)[source]
+

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

diff --git a/Wiki/ENG_Guide/html/_modules/pyOpenRPA/Orchestrator/__Orchestrator__.html b/Wiki/ENG_Guide/html/_modules/pyOpenRPA/Orchestrator/__Orchestrator__.html index fd0bc92d..92ccbe04 100644 --- a/Wiki/ENG_Guide/html/_modules/pyOpenRPA/Orchestrator/__Orchestrator__.html +++ b/Wiki/ENG_Guide/html/_modules/pyOpenRPA/Orchestrator/__Orchestrator__.html @@ -216,7 +216,7 @@
[docs]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): Send to agent activity item to OSCMD @@ -1020,7 +1020,7 @@
[docs]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 @@ -1028,7 +1028,8 @@ from pyOpenRPA import Orchestrator 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: :return: { @@ -1046,7 +1047,6 @@ """ if inProcessNameWOExeList is None: inProcessNameWOExeList = [] - '''Get list of running process sorted by Memory Usage and filtered by inProcessNameWOExeList''' lMapUPPERInput = {} # Mapping for processes WO exe lResult = {"ProcessWOExeList":[], "ProcessWOExeUpperList":[],"ProcessDetailList":[]} # Create updated list for quick check @@ -1078,14 +1078,28 @@ # Python def - start module function
[docs]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: - :param inDefNameStr: - :param inArgList: - :param inArgDict: - :param inLogger: - :return: + .. note:: + + Import module will be each time when PythonStart def will be called. + + .. code-block:: python + + # 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 inArgDict is None: inArgDict={} @@ -1096,23 +1110,42 @@ except Exception as e: if inLogger: inLogger.exception("Loop activity error: module/function not founded")
-# # # # # # # # # # # # # # # # # # # # # # # - # # # # # # # # # # # # # # # # # # # # # # # # Scheduler # # # # # # # # # # # # # # # # # # # # # # #
[docs]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 inTimeHHMMStr: - :param inWeekdayList: - :param inActivityList: - :return: + :param inTimeHHMMStr: Activation time from "00:00" to "23:59". Example: "05:29" + :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: Activity list structure + :return: None """ - if inWeekdayList is None: inWeekdayList=[] + if inWeekdayList is None: inWeekdayList=[0,1,2,3,4,5,6] if inActivityList is None: inActivityList=[] Processor.__ActivityListVerify__(inActivityList=inActivityList) # DO VERIFICATION FOR THE inActivityList lActivityTimeItemDict = { @@ -1130,18 +1163,64 @@
[docs]def 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) - :param inLoginStr: - :param inPasswordStr: - :param inHostStr: - :param inPortInt: - :param inWidthPXInt: - :param inHeightPXInt: - :param inUseBothMonitorBool: - :param inDepthBitInt: - :param inSharedDriveList: + .. code-block:: python + + # 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 + # } + + :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: + { + "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"] lRDPTemplateDict= { # Init the configuration item @@ -1171,7 +1250,7 @@ # Return list if dublicates
[docs]def RDPSessionDublicatesResolve(inGSettings): """ - Search dublicates in GSettings RDPlist + DEVELOPING Search dublicates in GSettings RDPlist !def is developing! :param inGSettings: Global settings dict (singleton) diff --git a/Wiki/ENG_Guide/html/_modules/pyOpenRPA/Robot/UIDesktop.html b/Wiki/ENG_Guide/html/_modules/pyOpenRPA/Robot/UIDesktop.html index de274589..c0f1ea67 100644 --- a/Wiki/ENG_Guide/html/_modules/pyOpenRPA/Robot/UIDesktop.html +++ b/Wiki/ENG_Guide/html/_modules/pyOpenRPA/Robot/UIDesktop.html @@ -404,7 +404,15 @@ #inElement - Входной элемент - показатель, что не требуется выполнять коннект к процессу #inFlagRaiseException - Флаг True - выкинуть ошибку в случае обнаружении пустого списка #old name - PywinautoExtElementGet -def UIOSelector_Get_UIO (inSpecificationList,inElement=None,inFlagRaiseException=True): +
[docs]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 #Получить родительский объект если на вход ничего не поступило lResultList=UIOSelector_Get_UIOList(inSpecificationList,inElement,False) @@ -413,13 +421,19 @@ #Условие, если результирующий список пустой и установлен флаг создания ошибки (и inElement is None - не следствие рекурсивного вызова) if lResult is None and inFlagRaiseException: raise pywinauto.findwindows.ElementNotFoundError("Robot can't find element by the UIOSelector") - return lResult + return lResult
################################################################################################# #Check if UIO exist (Identified by the UIOSelector) #!!!!!Safe call is included (you can set activity and UIDesktop will choose the bitness and return the result)!!!!! #UIOSelector #old name - - -def UIOSelector_Exist_Bool (inUIOSelector): +
[docs]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 #Check the bitness lSafeOtherProcess = UIOSelector_SafeOtherGet_Process(inUIOSelector) @@ -442,7 +456,7 @@ f"Exception was occured in child process (message): {lPIPEResponseDict['ErrorMessage']}, (traceback): {lPIPEResponseDict['ErrorTraceback']}") else: lResult = lPIPEResponseDict["Result"] - return lResult + return lResult
################################################################################################# #Wait for UIO is appear (at least one of them or all at the same time) #inSpecificationListList - List of the UIOSelector @@ -452,7 +466,19 @@ #old name - - #####Внимание##### ##Функция ожидания появления элементов (тк элементы могут быть недоступны, неизвестно в каком фреймворке каждый из них может появиться) -def UIOSelectorsSecs_WaitAppear_List (inSpecificationListList,inWaitSecs,inFlagWaitAllInMoment=False): +
[docs]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 lSecsSleep = 1 #Настроечный параметр lSecsDone = 0 @@ -481,7 +507,7 @@ if lResultFlag == False: lSecsDone=lSecsDone+lSecsSleep time.sleep(lSecsSleep) - return lResultList + return lResultList
################################################################################################# #Wait for UIO is Disappear (at least one of them or all at the same time) #inSpecificationListList - List of the UIOSelector @@ -491,7 +517,20 @@ #old name - - #####Внимание##### ##Функция ожидания пропажи элементов (тк элементы могут быть недоступны, неизвестно в каком фреймворке каждый из них может появиться) -def UIOSelectorsSecs_WaitDisappear_List (inSpecificationListList,inWaitSecs,inFlagWaitAllInMoment=False): +
[docs]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 lSecsSleep = 1 #Настроечный параметр lSecsDone = 0 @@ -520,37 +559,58 @@ if lResultFlag == False: lSecsDone=lSecsDone+lSecsSleep time.sleep(lSecsSleep) - return lResultList + return lResultList
################################################################################################# #Wait for UIO is appear (at least one of them or all at the same time) #inSpecificationList - UIOSelector #inWaitSecs - Время ожидания объекта в секундах #return: Bool - True - UIO is appear #old name - - -def UIOSelectorSecs_WaitAppear_Bool (inSpecificationList,inWaitSecs): +
[docs]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) lResult=False if len(lWaitAppearList)>0: lResult=True - return lResult + return lResult
################################################################################################# #Wait for UIO is disappear (at least one of them or all at the same time) #inSpecificationList - UIOSelector #inWaitSecs - Время ожидания пропажи объекта в секундах #return: Bool - True - UIO is Disappear #old name - - -def UIOSelectorSecs_WaitDisappear_Bool (inSpecificationList,inWaitSecs): +
[docs]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) lResult=False if len(lWaitDisappearList)>0: lResult=True - return lResult + return lResult
################################################################################################# #Get process bitness (32 or 64) #inSpecificationList - UIOSelector #old name - None #return None (if Process not found), int 32, or int 64 -def UIOSelector_Get_BitnessInt (inSpecificationList): +
[docs]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 #Получить объект Application (Для проверки разрядности) lRootElement=PWASpecification_Get_PWAApplication(inSpecificationList) @@ -559,13 +619,19 @@ lResult=64 else: lResult=32 - return lResult + return lResult
################################################################################################# #Get process bitness ("32" or "64") #inSpecificationList - UIOSelector #old name - None #return None (if Process not found), int 32, or int 64 -def UIOSelector_Get_BitnessStr (inSpecificationList): +
[docs]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 #Получить объект Application (Для проверки разрядности) lRootElement=PWASpecification_Get_PWAApplication(inSpecificationList) @@ -574,21 +640,29 @@ lResult="64" else: lResult="32" - return lResult + return lResult
################################################################################################# #Get OS bitness (32 or 64) #old name - None #return int 32, or int 64 -def Get_OSBitnessInt (): - lResult=32; +
[docs]def Get_OSBitnessInt (): + ''' + Detect OS bitness. + + :return: int 32 or int 64 + ''' + lResult=32 if pywinauto.sysinfo.is_x64_OS(): - lResult=64; - return lResult; + lResult=64 + 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): +
[docs]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 lResult = None #Go check bitness if selector exists @@ -597,13 +671,16 @@ lUIOSelectorAppBitness = UIOSelector_Get_BitnessStr(inUIOSelector) if lUIOSelectorAppBitness and Utils.ProcessBitness.mSettingsDict["BitnessProcessCurrent"] != lUIOSelectorAppBitness: 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): +
[docs]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 lBackend=mDefaultPywinautoBackend if "backend" in inControlSpecificationArray[0]: @@ -613,7 +690,7 @@ inControlSpecificationOriginArray=copy.deepcopy(inControlSpecificationArray) inControlSpecificationArray=UIOSelector_SearchProcessNormalize_UIOSelector(inControlSpecificationArray) #Выполнить идентификацию объектов, если передан массив - lResultList=[]; + lResultList=[] lTempObject=None if len(inControlSpecificationArray) > 0: #Сформировать выборку элементов, которые подходят под первый уровень спецификации @@ -648,13 +725,15 @@ lTempObject=lTempObject.window(**lWindowSpecification) #Добавить объект в результирующий массив 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): +
[docs]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) #Определение backend lBackend=mDefaultPywinautoBackend @@ -665,7 +744,7 @@ inControlSpecificationOriginArray=inControlSpecificationArray inControlSpecificationArray=UIOSelector_SearchProcessNormalize_UIOSelector(inControlSpecificationArray) #Выполнить идентификацию объектов, если передан массив - lResultList=[]; + lResultList=[] lTempObject=None if len(inControlSpecificationArray) > 0: #Выполнить подключение к объекту @@ -683,13 +762,17 @@ #lTempObject=lRPAApplication.window(**inControlSpecificationArray[0]) #Скорректировано из-за недопонимания структуры lTempObject=lRPAApplication - 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): +
[docs]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 #Настройка - частота обновления подсвечивания lTimeSleepSeconds=0.4 @@ -721,17 +804,21 @@ UIO_Highlight(lElementFounded) else: #Была нажата клавиша Ctrl - выйти из цикла - lFlagLoop=False; + lFlagLoop=False #Заснуть до следующего цикла 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 -def UIOSelector_SearchChildByMouse_UIOTree(inUIOSelector): +
[docs]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 = [] #Check the bitness lSafeOtherProcess = UIOSelector_SafeOtherGet_Process(inUIOSelector) @@ -790,7 +877,7 @@ else: lItemInfo = lPIPEResponseDict["Result"] #Вернуть результат - return lItemInfo + return lItemInfo
#################################################################################################### #inElement- UIO (UI Object) #old name - PywinautoExtElementCtrlIndexGet @@ -915,7 +1002,9 @@ #inUIOSelector #inActionName - UIOActivity (name) from Pywinauto #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={} #Check the bitness lSafeOtherProcess = UIOSelector_SafeOtherGet_Process(inUIOSelector) @@ -969,7 +1058,7 @@ #Подготовка входного массива inUIOSelector=UIOSelector_SearchUIONormalize_UIOSelector(inUIOSelector) #Выполнить идентификацию объектов, если передан массив - lResultList=[]; + lResultList=[] if len(inUIOSelector) > 0: #Получить объект lTempObject=UIOSelector_Get_UIO(inUIOSelector) @@ -997,7 +1086,8 @@ #inHierarchyList: [{"index":<>,"element":<>}] - technical argument for internal purpose #result -List of dict [{"index":<>,"element":<>}] -- list of element hierarchy specifications #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 lResultElementX1 = None @@ -1086,7 +1176,8 @@ #!!!!!Safe call is included (you can set activity and UIDesktop will choose the bitness and return the result)!!!!! #inControlSpecificationArray- UIOSelector #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"inSelector:{str(inUIOSelector)}, inBackend:{str(inBackend)}") #pdb.set_trace() @@ -1367,7 +1458,7 @@ lResultList2=[] for lI in lResultList: lTempObjectInfo=lI - lResultList2.append(UIOEI_Convert_UIOInfo(lI)); + lResultList2.append(UIOEI_Convert_UIOInfo(lI)) return lResultList2 ################################################################################################### diff --git a/Wiki/ENG_Guide/html/genindex.html b/Wiki/ENG_Guide/html/genindex.html index c1f6315a..925d1b02 100644 --- a/Wiki/ENG_Guide/html/genindex.html +++ b/Wiki/ENG_Guide/html/genindex.html @@ -198,6 +198,8 @@

G

- + - +
diff --git a/Wiki/ENG_Guide/html/objects.inv b/Wiki/ENG_Guide/html/objects.inv index 8cf84509..609203df 100644 Binary files a/Wiki/ENG_Guide/html/objects.inv and b/Wiki/ENG_Guide/html/objects.inv differ diff --git a/Wiki/ENG_Guide/html/searchindex.js b/Wiki/ENG_Guide/html/searchindex.js index 0088e3b4..c539b27d 100644 --- a/Wiki/ENG_Guide/html/searchindex.js +++ b/Wiki/ENG_Guide/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({docnames:["Orchestrator/01_Orchestrator","Orchestrator/02_Defs","Orchestrator/03_gSettingsTemplate","Orchestrator/04_HowToStart","Robot/01_Robot","Robot/02_Defs","Studio/Studio","index"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":2,"sphinx.domains.rst":2,"sphinx.domains.std":1,"sphinx.ext.todo":2,"sphinx.ext.viewcode":1,sphinx:56},filenames:["Orchestrator\\01_Orchestrator.rst","Orchestrator\\02_Defs.rst","Orchestrator\\03_gSettingsTemplate.rst","Orchestrator\\04_HowToStart.rst","Robot\\01_Robot.rst","Robot\\02_Defs.rst","Studio\\Studio.rst","index.rst"],objects:{"pyOpenRPA.Orchestrator":{__Orchestrator__:[1,0,0,"-"]},"pyOpenRPA.Orchestrator.__Orchestrator__":{AgentActivityItemAdd:[1,1,1,""],AgentOSCMD:[1,1,1,""],AgentOSFileBinaryDataBase64StrCreate:[1,1,1,""],AgentOSFileBinaryDataBytesCreate:[1,1,1,""],AgentOSFileTextDataStrCreate:[1,1,1,""],GSettingsAutocleaner:[1,1,1,""],GSettingsKeyListValueAppend:[1,1,1,""],GSettingsKeyListValueGet:[1,1,1,""],GSettingsKeyListValueOperatorPlus:[1,1,1,""],GSettingsKeyListValueSet:[1,1,1,""],OSCMD:[1,1,1,""],OSCredentialsVerify:[1,1,1,""],OrchestratorRestart:[1,1,1,""],OrchestratorSessionSave:[1,1,1,""],ProcessIsStarted:[1,1,1,""],ProcessListGet:[1,1,1,""],ProcessStart:[1,1,1,""],ProcessStop:[1,1,1,""],ProcessorActivityItemAppend:[1,1,1,""],ProcessorActivityItemCreate:[1,1,1,""],ProcessorAliasDefCreate:[1,1,1,""],ProcessorAliasDefUpdate:[1,1,1,""],PythonStart:[1,1,1,""],RDPSessionCMDRun:[1,1,1,""],RDPSessionConnect:[1,1,1,""],RDPSessionDisconnect:[1,1,1,""],RDPSessionDublicatesResolve:[1,1,1,""],RDPSessionFileStoredRecieve:[1,1,1,""],RDPSessionFileStoredSend:[1,1,1,""],RDPSessionLogoff:[1,1,1,""],RDPSessionMonitorStop:[1,1,1,""],RDPSessionProcessStartIfNotRunning:[1,1,1,""],RDPSessionProcessStop:[1,1,1,""],RDPSessionReconnect:[1,1,1,""],RDPSessionResponsibilityCheck:[1,1,1,""],RDPTemplateCreate:[1,1,1,""],SchedulerActivityTimeAddWeekly:[1,1,1,""],UACKeyListCheck:[1,1,1,""],UACSuperTokenUpdate:[1,1,1,""],UACUpdate:[1,1,1,""],WebCPUpdate:[1,1,1,""],WebURLConnectDef:[1,1,1,""],WebURLConnectFile:[1,1,1,""],WebURLConnectFolder:[1,1,1,""],WebUserInfoGet:[1,1,1,""],WebUserIsSuperToken:[1,1,1,""],WebUserUACHierarchyGet:[1,1,1,""]},"pyOpenRPA.Robot":{UIDesktop:[5,0,0,"-"]},"pyOpenRPA.Robot.UIDesktop":{UIOSelector_Get_UIOList:[5,1,1,""]}},objnames:{"0":["py","module","Python module"],"1":["py","function","Python function"]},objtypes:{"0":"py:module","1":"py:function"},terms:{"0643":3,"100":2,"1050":[1,2],"120":2,"127":1,"1680":[1,2],"1680x1050":2,"1992":3,"222":[0,2],"300":2,"3389":[1,2],"3600":2,"412":1,"600":2,"640x480":2,"77767775":1,"8081":2,"\u0432":[4,5],"\u0432\u0445\u043e\u0434\u043d\u043e\u0439":[4,5],"\u0432\u044b\u043a\u0438\u043d\u0443\u0442\u044c":[4,5],"\u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c":[4,5],"\u0434\u0435\u043c\u043e\u043d\u0430":2,"\u0434\u0435\u043c\u043e\u043d\u0443":2,"\u043a":[2,4,5],"\u043a\u043e\u043d\u043d\u0435\u043a\u0442":[4,5],"\u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443":2,"\u043b\u043e\u0433\u0433\u0435\u0440\u0430":2,"\u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f":2,"\u043c\u043e\u0436\u043d\u043e":2,"\u043d\u0435":[4,5],"\u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u0438":[4,5],"\u043e\u0448\u0438\u0431\u043a\u0443":[4,5],"\u043f\u043e":2,"\u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430":2,"\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f":2,"\u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c":[4,5],"\u043f\u043e\u0440\u0442":2,"\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0443":[4,5],"\u043f\u0443\u0441\u0442\u043e\u0433\u043e":[4,5],"\u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435":2,"\u0441\u0435\u0440\u0432\u0435\u0440\u0430":2,"\u0441\u0435\u0442\u0435\u0432\u043e\u0435":2,"\u0441\u043b\u0443\u0447\u0430\u0435":[4,5],"\u0441\u043e\u0437\u0434\u0430\u0442\u044c":2,"\u0441\u043f\u0438\u0441\u043a\u0430":[4,5],"\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f":[4,5],"\u0444\u0430\u0439\u043b":2,"\u0444\u043b\u0430\u0433":[4,5],"\u0447\u0442\u043e":[4,5],"\u044d\u043b\u0435\u043c\u0435\u043d\u0442":[4,5],"byte":1,"case":[0,2],"default":[1,2],"float":[0,2],"function":[1,2,5],"import":[0,1,2,3,5],"int":0,"new":[0,1,2,3],"return":[1,2,4,5],"true":[1,2,3,4,5],"try":[1,3],"var":1,Abs:2,For:3,Has:2,The:0,USe:2,Use:[1,3],Will:[1,2],__agentdictitemcreate__:2,__create__:2,__main__:3,__name__:3,__orchestrator__:7,__uacclientadmincreate__:[2,3],_sessionlast_rdplist:1,a2o:1,about:[0,1,2],absolut:[1,2,3],abspath:3,access:[1,2,3],accessus:2,activ:[0,1,2],activitydict:2,activityitem:1,activityitemdict:1,activitylist:2,activitylistappendprocessorqueuebool:2,activitylistexecut:1,activitylistexecutebool:2,activitytimelist:2,actual:1,add:[1,2,3],addhandl:2,address:2,admindict:[2,3],administr:1,after:[0,2,3],agent:1,agentactivityitemadd:1,agentdict:[1,2],agentkeydict:[2,3],agentkeystr:2,agentoscmd:1,agentosfilebinarydatabase64strcr:1,agentosfilebinarydatabytescr:1,agentosfiletextdatastrcr:1,algorithm:0,algorythm:[0,2],alia:[0,1,2],aliasdefdict:[0,1,2],all:[0,1,2,3],allow:[1,2,3],alreadi:1,ani:[0,1],anoth:1,append:[0,1,2],appli:[0,2],applic:[0,1,2],architectur:7,archiv:2,arg:[0,1,2],argdict:[0,1,2],arggset:[0,1,2],arglist:[0,1,2],arglogg:[0,1,2],argument:[1,2],argvaluestr:1,asctim:2,associ:1,async:0,asynchonu:0,attent:[0,1,3],attribut:[0,2],authent:2,authentif:1,authtoken:2,authtokensdict:2,auto:1,autoclean:[0,2],automat:[0,2],avail:2,b4ff:3,backward:1,base64:1,base:[0,1],basic:[0,2,3],becaus:[0,1],been:[1,2],befor:2,beginwith:[1,2],below:[0,3],between:[0,1,2,3],binari:1,block:2,bool:[0,1,2],browser:2,build:3,busi:0,button:2,cach:2,call:[0,1,3],can:[0,1,2],cant:0,central:0,chang:2,check:[1,2,3],checkintervalsecfloat:2,checktasknam:2,cleaner:1,clear:2,client:[1,2],clientrequesthandl:2,clipboard:1,close:[1,2],cmd:[1,2],cmdinputbool:[2,3],code:0,collect:2,comma:0,command:[1,2],commun:1,compat:1,compex:0,complet:2,complex:0,compon:7,concept:7,config:3,configur:[2,3,7],connect:[1,2],connectioncountint:2,connectionfirstqueueitemcountint:2,consist:0,consol:2,consolid:0,contain:[1,2],content:[1,2],control:[0,1,2,3],controlpanel:[2,3],controlpaneldict:2,controlpanelkeyallowedlist:2,controlpanelrefreshintervalsecfloat:2,cooki:2,core:0,cp_test:3,cp_versioncheck:3,cpdict:2,cpkei:2,cpkeydict:[2,3],cpkeystr:2,creat:[0,1,2,3],credenti:1,crosscheck:1,current:[0,1,2,3],custom:0,data:2,datasetlast:2,datetim:[2,3],decentr:0,def:[0,2,3,7],defaliastest:[0,2],defnamestr:2,defsettingsupdatepathlist:2,del:3,deprec:2,depthbit:2,descript:[2,7],desktop:[0,2,3],desktopus:1,detail:0,detect:2,determin:1,dev:1,develop:1,dict:[1,2,7],dictionari:[0,2],differ:0,disconnect:[1,2],docutil:[1,5],doen:1,domain:2,domainadstr:2,domainupperstr:1,don:1,dont:[1,2],drive:[1,2],dsd:[0,2],dublic:1,dump:2,dumploglist:2,dumploglistcountint:2,dumploglisthashstr:2,dumploglistrefreshintervalsecfloat:2,durat:2,els:[2,3],empti:2,encod:1,end:0,env:2,environ:1,equal:[1,2],equalcas:[1,2],everi:[1,2],exampl:[0,1,2,3,5],except:[1,3],exe:[1,2,5],execut:[0,1,2,6],executebool:2,exist:[1,2],expir:1,extra:1,fals:[1,2],featur:[0,1,2],field:[1,2],file:[1,2],filehandl:2,filemanag:2,filemod:2,fileurl:2,fileurlfilepathdict:2,fileurlfilepathdict_help:2,fill:[1,2],find:0,flag:[1,2],flagaccess:2,flagaccessdefrequestglobalauthent:2,flagcredentialsask:2,flagdonotexpir:2,flagforc:2,flagsessionisact:2,flaguseallmonitor:2,flexibl:0,folder:[1,3],forc:[1,2],forget:2,formatt:2,from:[0,1,2,3,5],full:2,fullscreen:2,fullscreenbool:2,fullscreenrdpsessionkeystr:2,functional:3,gener:[1,2],get:[1,2,4,5],getlogg:2,git:[1,2],give:[1,2],given:1,global:[1,7],goe:0,good:0,gset:[0,1,3,7],gsettingsautoclean:1,gsettingsdict:1,gsettingskeylistvalueappend:1,gsettingskeylistvalueget:1,gsettingskeylistvalueoperatorplu:1,gsettingskeylistvalueset:1,gui:[0,1],guid:2,gurbag:2,handl:2,handler:2,hard:2,has:[0,1],have:1,height:2,help:1,hex:2,hierarchi:1,host:[1,2],hostnameupperstr:2,how:7,html:[1,5],htmlrenderdef:2,http:[0,1,2,5],human:1,ignor:[1,2],ignorebool:2,imaslov:3,inactivityitemdict:1,inactivitylist:1,inadisdefaultbool:[1,3],inadloginstr:[1,3],inadstr:[1,3],inaliasstr:1,inarg1str:1,inargdict:1,inarggset:1,inarggsettingsstr:1,inarglist:1,inargloggerstr:1,inbreaktriggerprocesswoexelist:1,incloseforcebool:1,incmdstr:1,incontenttypestr:1,incpkeystr:1,indef:1,indefnamestr:1,indepthbitint:1,index:[0,1,2],indict:2,indomainstr:1,inel:[4,5],inencodingstr:1,infiledatabase64str:1,infiledatabyt:1,infiledatastr:1,infilepathstr:1,inflagforceclosebool:1,inflaggetabspathbool:1,inflagraiseexcept:[4,5],info:[1,2,3],infolderpathstr:1,inform:0,ingset:[0,1,3],ingsettingsclientdict:2,inhashkeystr:2,inheightpxint:1,inhostfilepathstr:1,inhostnamestr:1,inhoststr:[1,2],inhtmlrenderdef:1,init:[0,1,2,3],initdatetim:2,injsinitgeneratordef:1,injsongeneratordef:1,inkeylist:1,inkeystr:2,inlogg:[1,2],inloginstr:[1,2],inmatchtypestr:1,inmethodstr:1,inmodestr:[0,1,2,3],inmodulepathstr:1,inpasswordstr:[1,2],inpathstr:1,inportint:1,inportstr:[1,2],inprocessnamewexestr:1,inprocessnamewoexelist:1,inprocessnamewoexestr:1,input:2,inrdpfilepathstr:1,inrdpsessionkeystr:[1,2],inrdptemplatedict:1,inrequest:1,inrolehierarchyalloweddict:[1,3],inrolekeylist:1,inrowcountint:2,inrunasyncbool:1,insert:3,inshareddrivelist:1,inspecificationlist:[4,5],instanc:0,instopprocessnamewoexestr:1,insupertokenstr:[1,3],interact:0,interest:1,interfac:0,interpret:0,interv:[1,2],intervalsecfloat:2,intimehhmmstr:1,inurllist:[1,3],inurlstr:1,inusebothmonitorbool:1,inusernamestr:1,inuserstr:1,invalu:1,inweekdaylist:1,inwidthpxint:1,islistenbool:2,isresponsiblebool:1,item:[0,1],iter:2,join:3,jsinitgeneratordef:2,json:[0,1,2],jsongeneratordef:2,keep:0,kei:1,keystr:2,kill:1,know:0,kwarg:0,lactivityitem:1,laliasstr:1,last:2,left:0,len:2,levelnam:2,lifetim:2,lifetimerequestsecfloat:2,lifetimesecfloat:2,light:0,like:0,link:[0,1,2],list:[0,1,2,4,5],listen:1,listenport:2,listenport_:2,listenurllist:2,listread:2,load:2,local:[1,2],localhost:2,log:[1,2,3],logger:[2,3],loggerdumploghandleradd:2,loggerhandlerdumploglist:2,login:[1,2,3],logoff:[1,2],logviewerbool:[2,3],look:[0,1,2],lookmachinescreenshot:2,lowercas:2,lprocessisstartedbool:1,lprocesslist:1,lpyopenrpasourcefolderpathstr:3,lresult:2,lresultdict:2,luacclientdict:3,machin:[1,2,3],machina:2,main:[0,2,3],makedir:2,mani:0,matchtyp:2,max:2,mechan:0,mega:0,merg:1,messag:2,method:2,methodmatchurl:2,methodmatchurlbeforelist:2,mhandlerdumploglist:2,mmstr:2,modul:[0,1,2,3],more:0,mrobotlogg:2,mrobotloggerfh:2,mrobotloggerformatt:2,must:2,name:[0,1,2,3],namewoexestr:1,namewoexeupperstr:1,need:[0,1,2],nest:1,net:[1,5],never:1,newkeydict:1,newkeylist:1,newvalu:1,none:[0,1,2,4,5],notepad:[1,2,5],noth:1,nothingbool:2,now:[1,2],object:[0,1,2],occupi:1,octet:1,off:2,old:[1,2,3],one:[2,3],onli:[1,2],openrpa52zzz:3,openrpa:2,openrparobotdaemon:2,oper:[1,3],option:2,orc:2,orchestr:[2,3,7],orchestratorrestart:1,orchestratorsessionsav:1,orchestratorstart:2,order:0,oscmd:1,oscredentialsverifi:1,osfilebinarydatabase64strcr:1,osfiletextdatastrcr:1,out:1,output:2,outstr:1,overwrit:2,own:0,packag:[3,4],page:[1,2],pai:[0,3],panel:[1,2,3],paramet:[0,1,2,4,5],pass:[1,2],password:2,path:[1,2,3],pdb:2,per:3,period:2,phone:0,pid:1,pipupgrad:2,pixel:2,plu:1,port:2,post:[1,2],postfix:1,previou:1,print:3,process:[0,1,2,6],processdetaillist:1,processisstart:1,processlistget:1,processnam:1,processor:[1,2,7],processoractivityitemappend:1,processoractivityitemcr:1,processoraliasdefcr:1,processoraliasdefupd:1,processordict:2,processstart:[1,2],processstartifturnedoff:2,processstop:[1,2],processwoexelist:1,processwoexeupperlist:1,program:2,project:0,protocol:0,psutil:3,pull:2,pyopenrpa:[0,2,3,6],pyopenrpadict:[2,3],pyrobot_cp:3,python:[0,1,2,4],pythonstart:1,queue:[0,1,2],queuelist:2,r01:2,r01_integrationorderout:2,r01_orchestratortorobot:2,rais:1,rdp:[0,1,2],rdpactiv:2,rdpconfigurationdict:2,rdpkeydict:[2,3],rdpkeystr:2,rdplist:[1,2],rdpsession:1,rdpsessioncmdrun:1,rdpsessionconnect:[1,2],rdpsessiondisconnect:[1,2],rdpsessiondublicatesresolv:1,rdpsessionfilereciev:2,rdpsessionfilesend:2,rdpsessionfilestoredreciev:1,rdpsessionfilestoredsend:1,rdpsessionkei:2,rdpsessionkeystr:2,rdpsessionlogoff:[1,2],rdpsessionmonitorstop:1,rdpsessionprocessstart:2,rdpsessionprocessstartifnotrun:1,rdpsessionprocessstop:1,rdpsessionreconnect:[1,2],rdpsessionresponsibilitycheck:1,rdptemplatecr:1,read:2,receiv:1,reciev:2,reconnect:1,reconnectbool:2,reestr_otgruzok:2,refer:7,refresh:2,refreshsecond:2,regener:1,rel:[1,2,3],rememb:2,remot:2,renderfunct:2,renderrobotr01:2,report:2,reqir:0,request:[1,2],requesttimeoutsecfloat:2,requir:1,resolut:2,respons:[1,2],responsecontenttyp:2,responsedefrequestglob:2,responsefilepath:2,responsefolderpath:2,responsibilitycheckintervalsec:2,restart:[1,2],restartorchestr:2,restartorchestratorbool:[2,3],restartorchestratorgitpullbool:[2,3],restartpcbool:[2,3],restructuredtext:[1,5],result:[1,2],returnbool:2,robot:[0,1,2,3,7],robot_r01:2,robot_r01_help:2,robotlist:2,robotrdpact:[1,2],rolehierarchyalloweddict:2,root:2,row:2,rpa:2,rst:[1,5],ruledomainuserdict:2,rulemethodmatchurlbeforelist:2,run:[1,2,3],sad:1,safe:1,save:1,schedul:0,scheduleractivitytimeaddweekli:1,schedulerdict:2,scopesrcul:2,screen:2,screenshot:2,screenshotviewerbool:[2,3],script:0,search:1,sec:2,second:2,see:[1,2,3],selector:[4,5],send:[1,2],sent:1,sequenc:0,server:[0,2],serverdict:2,serverset:2,sesion:2,session:[1,2],sessionguidstr:2,sessionhex:2,sessionisignoredbool:2,sessioniswindowexistbool:2,sessioniswindowresponsiblebool:2,set:[1,2,3,7],set_trac:2,setformatt:2,setlevel:2,settingstempl:[0,3],settingsupd:3,setup:2,sever:0,share:1,shareddrivelist:2,shell:1,should:2,show:2,side:[1,2],signal:1,singl:0,singleton:1,socket:0,some:[0,1,2],sourc:[0,1,3,4,5],sourceforg:[1,5],space:0,special:2,sphinx:0,standart:2,start:[1,2,7],statu:1,stdout:[2,3],stop:1,storag:2,store:2,str:[0,1,2],stream:1,streamhandl:2,strftime:2,string:1,struct:2,structur:[0,2],studio:[0,6,7],success:1,successfulli:1,successufulli:1,supertoken:[1,3],superus:3,supetoken:1,support:[0,3],symbol:0,sync:0,sys:[2,3],tablet:0,technic:[0,2],technicalsessionguidcach:2,templat:[1,3,7],test2:2,test:[1,2,3],testcontrolpanelkei:2,testdef:1,testdefalia:1,testrdp:2,text:1,than:0,thi:[1,2],thread:[0,2],threadidint:2,time:[1,2],timehh:2,titl:5,todo:1,token:1,tokendatetim:2,too:2,tool:0,track:1,transmiss:1,transmit:[0,1],trigger:[1,2],ttt:[0,2],turn:2,turpl:0,txt:1,type:[1,2,3],uac:1,uackeylistcheck:1,uacsupertokenupd:[1,3],uacupd:[1,3],uidesktop:[4,7],uio:[4,5],uioselector_get_uio:5,uioselector_get_uiolist:[4,5],univers:0,updat:[1,2],upper:2,url:[1,2],url_:2,urllist:2,usag:1,use:[0,1,2],used:1,user:[0,1,2,3],user_99:1,useradstr:2,usernam:[1,2],usernameupperstr:1,userupperstr:2,using:1,utf:1,util:2,valu:1,variant:1,verifi:1,version:3,versioncheck:3,versionstr:2,viewer:2,virtual:2,vms:1,wai:[1,3],want:[0,2],warn:3,web:[0,1,2],webcpupd:1,weburlconnectdef:1,weburlconnectfil:1,weburlconnectfold:1,webuserinfoget:1,webuserissupertoken:1,webuseruachierarchyget:1,weekdai:2,weekdaylist:2,weekli:1,when:[0,1,2,3],where:1,which:[0,1,2],who:2,why:0,width:2,win:1,window:[1,2],without:[1,2],work:[1,2],workingdirectorypathstr:2,write:0,xlsx:2,you:[0,1,2]},titles:["1. Description","2. Defs","3. gSettings Template","4. How to start","1. Description","2. Defs","Description","Welcome to pyOpenRPA\u2019s documentation!"],titleterms:{__orchestrator__:1,architectur:0,compon:0,concept:0,configur:0,def:[1,5],descript:[0,4,6],dict:0,document:7,global:0,gset:2,how:[0,3],orchestr:[0,1],processor:0,pyopenrpa:[1,4,5,7],refer:[0,1,5],robot:[4,5],set:0,start:3,templat:2,uidesktop:5,welcom:7}}) \ No newline at end of file +Search.setIndex({docnames:["Orchestrator/01_Orchestrator","Orchestrator/02_Defs","Orchestrator/03_gSettingsTemplate","Orchestrator/04_HowToStart","Robot/01_Robot","Robot/02_Defs","Studio/Studio","index"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":2,"sphinx.domains.rst":2,"sphinx.domains.std":1,"sphinx.ext.todo":2,"sphinx.ext.viewcode":1,sphinx:56},filenames:["Orchestrator\\01_Orchestrator.rst","Orchestrator\\02_Defs.rst","Orchestrator\\03_gSettingsTemplate.rst","Orchestrator\\04_HowToStart.rst","Robot\\01_Robot.rst","Robot\\02_Defs.rst","Studio\\Studio.rst","index.rst"],objects:{"pyOpenRPA.Orchestrator":{__Orchestrator__:[1,0,0,"-"]},"pyOpenRPA.Orchestrator.__Orchestrator__":{AgentActivityItemAdd:[1,1,1,""],AgentOSCMD:[1,1,1,""],AgentOSFileBinaryDataBase64StrCreate:[1,1,1,""],AgentOSFileBinaryDataBytesCreate:[1,1,1,""],AgentOSFileTextDataStrCreate:[1,1,1,""],GSettingsAutocleaner:[1,1,1,""],GSettingsKeyListValueAppend:[1,1,1,""],GSettingsKeyListValueGet:[1,1,1,""],GSettingsKeyListValueOperatorPlus:[1,1,1,""],GSettingsKeyListValueSet:[1,1,1,""],OSCMD:[1,1,1,""],OSCredentialsVerify:[1,1,1,""],OrchestratorRestart:[1,1,1,""],OrchestratorSessionSave:[1,1,1,""],ProcessIsStarted:[1,1,1,""],ProcessListGet:[1,1,1,""],ProcessStart:[1,1,1,""],ProcessStop:[1,1,1,""],ProcessorActivityItemAppend:[1,1,1,""],ProcessorActivityItemCreate:[1,1,1,""],ProcessorAliasDefCreate:[1,1,1,""],ProcessorAliasDefUpdate:[1,1,1,""],PythonStart:[1,1,1,""],RDPSessionCMDRun:[1,1,1,""],RDPSessionConnect:[1,1,1,""],RDPSessionDisconnect:[1,1,1,""],RDPSessionDublicatesResolve:[1,1,1,""],RDPSessionFileStoredRecieve:[1,1,1,""],RDPSessionFileStoredSend:[1,1,1,""],RDPSessionLogoff:[1,1,1,""],RDPSessionMonitorStop:[1,1,1,""],RDPSessionProcessStartIfNotRunning:[1,1,1,""],RDPSessionProcessStop:[1,1,1,""],RDPSessionReconnect:[1,1,1,""],RDPSessionResponsibilityCheck:[1,1,1,""],RDPTemplateCreate:[1,1,1,""],SchedulerActivityTimeAddWeekly:[1,1,1,""],UACKeyListCheck:[1,1,1,""],UACSuperTokenUpdate:[1,1,1,""],UACUpdate:[1,1,1,""],WebCPUpdate:[1,1,1,""],WebURLConnectDef:[1,1,1,""],WebURLConnectFile:[1,1,1,""],WebURLConnectFolder:[1,1,1,""],WebUserInfoGet:[1,1,1,""],WebUserIsSuperToken:[1,1,1,""],WebUserUACHierarchyGet:[1,1,1,""]},"pyOpenRPA.Robot":{UIDesktop:[5,0,0,"-"]},"pyOpenRPA.Robot.UIDesktop":{Get_OSBitnessInt:[5,1,1,""],PWASpecification_Get_PWAApplication:[5,1,1,""],PWASpecification_Get_UIO:[5,1,1,""],UIOSelectorSecs_WaitAppear_Bool:[5,1,1,""],UIOSelectorSecs_WaitDisappear_Bool:[5,1,1,""],UIOSelector_Exist_Bool:[5,1,1,""],UIOSelector_Get_BitnessInt:[5,1,1,""],UIOSelector_Get_BitnessStr:[5,1,1,""],UIOSelector_Get_UIO:[5,1,1,""],UIOSelector_Get_UIOList:[5,1,1,""],UIOSelector_SafeOtherGet_Process:[5,1,1,""],UIOSelector_SearchChildByMouse_UIO:[5,1,1,""],UIOSelector_SearchChildByMouse_UIOTree:[5,1,1,""],UIOSelectorsSecs_WaitAppear_List:[5,1,1,""],UIOSelectorsSecs_WaitDisappear_List:[5,1,1,""]}},objnames:{"0":["py","module","Python module"],"1":["py","function","Python function"]},objtypes:{"0":"py:module","1":"py:function"},terms:{"0643":3,"100":2,"1050":[1,2],"120":2,"127":1,"1680":[1,2],"1680x1050":[1,2],"1992":3,"222":[0,2],"300":2,"3389":[1,2],"3600":2,"412":1,"600":2,"640x480":[1,2],"77767775":1,"77777sdfsdf77777dsfdfsf77777777":1,"8081":2,"\u0432":[4,5],"\u0432\u0445\u043e\u0434\u043d\u043e\u0439":[4,5],"\u0432\u044b\u043a\u0438\u043d\u0443\u0442\u044c":[4,5],"\u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c":[4,5],"\u0434\u0435\u043c\u043e\u043d\u0430":2,"\u0434\u0435\u043c\u043e\u043d\u0443":2,"\u043a":[2,4,5],"\u043a\u043e\u043d\u043d\u0435\u043a\u0442":[4,5],"\u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443":2,"\u043b\u043e\u0433\u0433\u0435\u0440\u0430":2,"\u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f":2,"\u043c\u043e\u0436\u043d\u043e":2,"\u043d\u0435":[4,5],"\u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u0438":[4,5],"\u043e\u0448\u0438\u0431\u043a\u0443":[4,5],"\u043f\u043e":2,"\u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430":2,"\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f":2,"\u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c":[4,5],"\u043f\u043e\u0440\u0442":2,"\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0443":[4,5],"\u043f\u0443\u0441\u0442\u043e\u0433\u043e":[4,5],"\u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435":2,"\u0441\u0435\u0440\u0432\u0435\u0440\u0430":2,"\u0441\u0435\u0442\u0435\u0432\u043e\u0435":2,"\u0441\u043b\u0443\u0447\u0430\u0435":[4,5],"\u0441\u043e\u0437\u0434\u0430\u0442\u044c":2,"\u0441\u043f\u0438\u0441\u043a\u0430":[4,5],"\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f":[4,5],"\u0444\u0430\u0439\u043b":2,"\u0444\u043b\u0430\u0433":[4,5],"\u0447\u0442\u043e":[4,5],"\u044d\u043b\u0435\u043c\u0435\u043d\u0442":[4,5],"byte":1,"case":[0,1,2,4,5],"default":[1,2],"float":[0,2,4,5],"function":[1,2,5],"import":[0,1,2,3,5],"int":[0,1,4,5],"new":[0,1,2,3],"return":[1,2,4,5],"true":[1,2,3,4,5],"try":[1,3],"var":1,Abs:2,For:3,Has:2,The:0,USe:2,Use:[1,3],Will:[1,2],__agentdictitemcreate__:2,__create__:2,__main__:3,__name__:3,__orchestrator__:7,__uacclientadmincreate__:[2,3],_sessionlast_rdplist:1,a2o:1,about:[0,1,2],absolut:[1,2,3],abspath:3,access:[1,2,3],accessus:2,activ:[0,1,2,4,5],activitydict:2,activityitem:1,activityitemdict:1,activitylist:2,activitylistappendprocessorqueuebool:2,activitylistexecut:1,activitylistexecutebool:2,activitytimelist:2,actual:1,add:[1,2,3],addhandl:2,address:[1,2],admindict:[2,3],administr:1,after:[0,2,3],agent:1,agentactivityitemadd:1,agentdict:[1,2],agentkeydict:[2,3],agentkeystr:2,agentoscmd:1,agentosfilebinarydatabase64strcr:1,agentosfilebinarydatabytescr:1,agentosfiletextdatastrcr:1,algorithm:0,algorythm:[0,2],alia:[0,1,2],aliasdefdict:[0,1,2],all:[0,1,2,3,4,5],allow:[1,2,3],alreadi:1,ani:[0,1],anoth:1,app:[4,5],appear:[4,5],append:[0,1,2],appli:[0,2],applic:[0,1,2,4,5],architectur:7,archiv:2,arg:[0,1,2],argdict:[0,1,2],arggset:[0,1,2],arglist:[0,1,2],arglogg:[0,1,2],argument:[1,2],argvaluestr:1,asctim:2,associ:1,async:0,asynchonu:0,attent:[0,1,3],attribut:[0,2,4,5],authent:2,authentif:1,authtoken:2,authtokensdict:2,auto:1,autoclean:[0,2],automat:[0,2],automationsearchmouseel:[4,5],avail:[1,2],b4ff:3,backend:[4,5],backward:1,base64:1,base:[0,1],basic:[0,2,3],becaus:[0,1],been:[1,2],befor:2,beginwith:[1,2],below:[0,3],between:[0,1,2,3],binari:1,bit:[1,4,5],block:2,bool:[0,1,2],both:1,browser:2,build:3,busi:0,button:2,cach:2,call:[0,1,3,4,5],callabl:1,can:[0,1,2,4,5],cancel:[4,5],cant:0,central:0,chang:2,check:[1,2,3,4,5],checkintervalsecfloat:2,checktasknam:2,choos:[4,5],cleaner:1,clear:2,client:[1,2],clientrequesthandl:2,clipboard:1,close:[1,2],cmd:[1,2],cmdinputbool:[2,3],code:0,collect:2,comma:0,command:[1,2],commun:1,compat:1,compex:0,complet:2,complex:0,compon:7,concept:7,config:3,configur:[1,2,3,7],connect:[1,2],connectioncountint:2,connectionfirstqueueitemcountint:2,consist:0,consol:2,consolid:0,contain:[1,2],content:[1,2],control:[0,1,2,3],controlpanel:[2,3],controlpaneldict:2,controlpanelkeyallowedlist:2,controlpanelrefreshintervalsecfloat:2,cooki:2,core:0,cp_test:3,cp_versioncheck:3,cpdict:2,cpkei:2,cpkeydict:[2,3],cpkeystr:2,creat:[0,1,2,3],credenti:1,crosscheck:1,current:[0,1,2,3],custom:0,daemon:1,dai:1,data:2,datasetlast:2,datetim:[2,3],decentr:0,def:[0,2,3,4,7],defaliastest:[0,2],defnamestr:2,defsettingsupdatepathlist:2,del:3,deprec:2,depthbit:[1,2],descript:[2,5,7],desktop:[0,1,2,3],desktopus:1,destin:[4,5],detail:0,detect:[2,4,5],determin:1,dev:1,develop:1,dict:[1,2,4,5,7],dictionari:[0,2],differ:0,directori:1,disappear:[4,5],disc:1,disconnect:[1,2],document:[4,5],docutil:[1,5],doen:1,domain:2,domainadstr:2,domainupperstr:1,don:1,dont:[1,2],drive:[1,2],dsd:[0,2],dublic:1,dump:2,dumploglist:2,dumploglistcountint:2,dumploglisthashstr:2,dumploglistrefreshintervalsecfloat:2,durat:2,each:1,element:[4,5],els:[1,2,3,4,5],empti:2,encod:1,end:0,env:2,environ:1,equal:[1,2],equalcas:[1,2],everi:[1,2],everydai:1,exampl:[0,1,2,3,4,5],except:[1,3],exe:[1,2,5],execut:[0,1,2,6],executebool:2,exist:[1,2,4,5],expir:1,extra:1,fals:[1,2,4,5],featur:[0,1,2],field:[1,2],file:[1,2],filehandl:2,filemanag:2,filemod:2,fileurl:2,fileurlfilepathdict:2,fileurlfilepathdict_help:2,fill:[1,2],find:0,find_window:[4,5],flag:[1,2],flagaccess:2,flagaccessdefrequestglobalauthent:2,flagcredentialsask:2,flagdonotexpir:2,flagforc:2,flagsessionisact:[1,2],flaguseallmonitor:[1,2],flexibl:0,folder:[1,3],forc:[1,2],forget:2,formatt:2,fridai:1,from:[0,1,2,3,4,5],full:[1,2],fullscreen:[1,2],fullscreenbool:2,fullscreenrdpsessionkeystr:2,functional:3,gener:[1,2],get:[1,2,4,5],get_osbitnessint:[4,5],getcontrol:[4,5],getlogg:2,git:[1,2],give:[1,2],given:1,global:[1,7],goe:0,good:0,gset:[0,1,3,7],gsettingsautoclean:1,gsettingsdict:1,gsettingskeylistvalueappend:1,gsettingskeylistvalueget:1,gsettingskeylistvalueoperatorplu:1,gsettingskeylistvalueset:1,gui:[0,1,4,5],guid:2,gurbag:2,handl:2,handler:2,hard:[1,2],has:[0,1],have:1,height:[1,2],help:1,hex:[1,2],hierarchi:1,host:[1,2],hostnameupperstr:2,how:7,html:[1,5],htmlrenderdef:2,http:[0,1,2,5],human:1,ignor:[1,2],ignorebool:2,imaslov:3,inactivityitemdict:1,inactivitylist:1,inadisdefaultbool:[1,3],inadloginstr:[1,3],inadstr:[1,3],inaliasstr:1,inarg1str:1,inargdict:1,inarggset:1,inarggsettingsstr:1,inarglist:1,inargloggerstr:1,inbreaktriggerprocesswoexelist:1,incloseforcebool:1,includ:[4,5],incmdstr:1,incontenttypestr:1,incontrolspecificationarrai:[4,5],incpkeystr:1,indef:1,indefnamestr:1,indepthbitint:1,index:[0,1,2,4,5],indict:2,indomainstr:1,inel:[4,5],inelementspecif:[4,5],inencodingstr:1,infiledatabase64str:1,infiledatabyt:1,infiledatastr:1,infilepathstr:1,inflagforceclosebool:1,inflaggetabspathbool:1,inflagraiseexcept:[4,5],inflagwaitallinmo:[4,5],info:[1,2,3],infolderpathstr:1,inform:[0,1],ingset:[0,1,3],ingsettingsclientdict:2,inhashkeystr:2,inheightpxint:1,inhostfilepathstr:1,inhostnamestr:1,inhoststr:[1,2],inhtmlrenderdef:1,init:[0,1,2,3],initdatetim:2,initi:1,injsinitgeneratordef:1,injsongeneratordef:1,inkeylist:1,inkeystr:2,inlogg:[1,2],inloginstr:[1,2],inmatchtypestr:1,inmethodstr:1,inmodestr:[0,1,2,3],inmodulepathstr:1,inpasswordstr:[1,2],inpathstr:1,inportint:1,inportstr:[1,2],inprocessnamewexestr:1,inprocessnamewoexelist:1,inprocessnamewoexestr:1,input:2,inrdpfilepathstr:1,inrdpsessionkeystr:[1,2],inrdptemplatedict:1,inrequest:1,inrolehierarchyalloweddict:[1,3],inrolekeylist:1,inrowcountint:2,inrunasyncbool:1,insert:3,inshareddrivelist:1,inspecificationlist:[4,5],inspecificationlistlist:[4,5],instanc:[0,1,4,5],instopprocessnamewoexestr:1,insupertokenstr:[1,3],interact:0,interest:1,interfac:0,interpret:0,interv:[1,2],intervalsecfloat:2,intimehhmmstr:1,inuioselector:[4,5],inurllist:[1,3],inurlstr:1,inusebothmonitorbool:1,inusernamestr:1,inuserstr:1,invalu:1,inwaitsec:[4,5],inweekdaylist:1,inwidthpxint:1,islistenbool:2,isresponsiblebool:1,item:[0,1],iter:2,join:3,jsinitgeneratordef:2,json:[0,1,2],jsongeneratordef:2,keep:0,kei:1,keystr:2,kill:1,know:0,kwarg:0,lactivityitem:1,laliasstr:1,last:2,launch:1,left:0,len:2,levelnam:2,lifetim:2,lifetimerequestsecfloat:2,lifetimesecfloat:2,light:0,like:0,link:[0,1,2],list:[0,1,2,4,5],listen:1,listenport:2,listenport_:2,listenurllist:2,listread:2,load:2,local:[1,2],localhost:2,log:[1,2,3],logger:[1,2,3],loggerdumploghandleradd:2,loggerhandlerdumploglist:2,login:[1,2,3],logoff:[1,2],logviewerbool:[2,3],look:[0,1,2],lookmachinescreenshot:2,lowercas:2,lprocessisstartedbool:1,lprocesslist:1,lpyopenrpasourcefolderpathstr:3,lrdpitemdict:1,lrdptemplatedict:1,lresult:2,lresultdict:2,luacclientdict:3,machin:[1,2,3],machina:2,main:[0,2,3],makedir:2,mani:[0,4,5],matchtyp:2,max:2,mechan:0,mega:0,memori:1,merg:1,messag:2,method:2,methodmatchurl:2,methodmatchurlbeforelist:2,mhandlerdumploglist:2,mmstr:2,modul:[0,1,2,3],moduletocal:1,mondai:1,monitor:1,more:0,mrobotlogg:2,mrobotloggerfh:2,mrobotloggerformatt:2,must:2,name:[0,1,2,3,4,5],namewoexestr:1,namewoexeupperstr:1,need:[0,1,2],nest:1,net:[1,5],never:1,newkeydict:1,newkeylist:1,newvalu:1,none:[0,1,2,4,5],notat:[4,5],notepad:[1,2,4,5],noth:1,nothingbool:2,now:[1,2],object:[0,1,2,4,5],occupi:1,octet:1,off:2,old:[1,2,3,4,5],one:[2,3],onli:[1,2,4,5],openrpa52zzz:3,openrpa:2,openrparobotdaemon:2,oper:[1,3],option:2,orc:2,orchestr:[2,3,7],orchestratorrestart:1,orchestratorsessionsav:1,orchestratorstart:2,order:0,oscmd:1,oscredentialsverifi:1,osfilebinarydatabase64strcr:1,osfiletextdatastrcr:1,other:[4,5],out:1,output:2,outstr:1,overwrit:2,own:0,packag:[3,4],page:[1,2],pai:[0,3],panel:[1,2,3],paramet:[0,1,2,4,5],pass:[1,2],password:[1,2],path:[1,2,3],pdb:2,per:3,period:2,phone:0,pid:1,pipupgrad:2,pixel:[1,2],plan:1,plu:1,port:[1,2],post:[1,2],postfix:1,previou:1,print:3,process:[0,1,2,4,5,6],processdetaillist:1,processisstart:1,processlistget:1,processnam:1,processor:[1,2,7],processoractivityitemappend:1,processoractivityitemcr:1,processoraliasdefcr:1,processoraliasdefupd:1,processordict:2,processstart:[1,2],processstartifturnedoff:2,processstop:[1,2],processwoexelist:1,processwoexeupperlist:1,program:[1,2],project:0,protocol:0,psutil:3,pull:2,pwaspecification_get_pwaappl:[4,5],pwaspecification_get_uio:[4,5],pyopenrpa:[0,2,3,6],pyopenrpadict:[2,3],pyrobot_cp:3,python:[0,1,2,4],pythonstart:1,pywinauto:[4,5],queue:[0,1,2],queuelist:2,r01:2,r01_integrationorderout:2,r01_orchestratortorobot:2,rais:1,rdp:[0,1,2],rdpactiv:2,rdpconfigurationdict:2,rdpkeydict:[2,3],rdpkeystr:2,rdplist:[1,2],rdpsession:1,rdpsessioncmdrun:1,rdpsessionconnect:[1,2],rdpsessiondisconnect:[1,2],rdpsessiondublicatesresolv:1,rdpsessionfilereciev:2,rdpsessionfilesend:2,rdpsessionfilestoredreciev:1,rdpsessionfilestoredsend:1,rdpsessionkei:2,rdpsessionkeystr:2,rdpsessionlogoff:[1,2],rdpsessionmonitorstop:1,rdpsessionprocessstart:2,rdpsessionprocessstartifnotrun:1,rdpsessionprocessstop:1,rdpsessionreconnect:[1,2],rdpsessionresponsibilitycheck:1,rdptemplatecr:1,read:2,receiv:1,reciev:[1,2],reconnect:1,reconnectbool:2,reestr_otgruzok:2,refer:7,refresh:2,refreshsecond:2,regener:1,rel:[1,2,3],rememb:2,remot:[1,2],renderfunct:2,renderrobotr01:2,report:2,reqir:0,request:[1,2],requesttimeoutsecfloat:2,requir:1,resolut:[1,2],respons:[1,2],responsecontenttyp:2,responsedefrequestglob:2,responsefilepath:2,responsefolderpath:2,responsibilitycheckintervalsec:2,restart:[1,2],restartorchestr:2,restartorchestratorbool:[2,3],restartorchestratorgitpullbool:[2,3],restartpcbool:[2,3],restructuredtext:[1,5],result:[1,2,4,5],returnbool:2,robot:[0,1,2,3,7],robot_r01:2,robot_r01_help:2,robotlist:2,robotrdpact:[1,2],rolehierarchyalloweddict:2,root:[1,2],row:2,rpa:2,rst:[1,5],ruledomainuserdict:2,rulemethodmatchurlbeforelist:2,run:[1,2,3],sad:1,safe:[1,4,5],same:[4,5],save:1,schedul:[0,1],scheduleractivitytimeaddweekli:1,schedulerdict:2,scopesrcul:2,screen:[1,2],screenshot:2,screenshotviewerbool:[2,3],script:0,search:1,sec:2,second:[1,2,4,5],see:[1,2,3,4,5],select:[4,5],selector:[4,5],send:[1,2],sent:1,sequenc:0,server:[0,2],serverdict:2,serverset:2,sesion:[1,2],session:[1,2],sessionguidstr:2,sessionhex:[1,2],sessionisignoredbool:[1,2],sessioniswindowexistbool:[1,2],sessioniswindowresponsiblebool:[1,2],set:[1,2,3,4,5,7],set_trac:2,setformatt:2,setlevel:2,settingstempl:[0,3],settingsupd:3,setup:2,sever:0,share:1,shareddrivelist:[1,2],shell:1,should:2,show:2,side:[1,2],signal:1,singl:0,singleton:1,socket:0,some:[0,1,2],sort:1,sourc:[0,1,3,4,5],sourceforg:[1,5],space:0,special:2,sphinx:0,standart:2,start:[1,2,7],statu:1,stdout:[2,3],stop:1,storag:2,store:2,str:[0,1,2,4,5],stream:1,streamhandl:2,strftime:2,string:1,struct:2,structur:[0,1,2],studio:[0,6,7],success:1,successfulli:1,successufulli:1,sundai:1,supertoken:[1,3],superus:3,supetoken:1,support:[0,3],symbol:0,sync:0,sys:[2,3],tablet:0,technic:[0,2],technicalsessionguidcach:2,templat:[3,7],test2:2,test:[1,2,3],testcontrolpanelkei:2,testdef:1,testdefalia:1,testrdp:2,text:1,than:0,thi:[1,2],thread:[0,2],threadidint:2,throught:1,thursdai:1,time:[1,2],timehh:2,titl:[4,5],todo:1,token:1,tokendatetim:2,too:[1,2],tool:0,top:[4,5],track:1,transmiss:1,transmit:[0,1],trigger:[1,2],ttt:[0,2],turn:2,turpl:0,txt:1,type:[1,2,3],uac:1,uackeylistcheck:1,uacsupertokenupd:[1,3],uacupd:[1,3],uia:[4,5],uidesktop:[4,7],uio:[4,5],uioselector:[4,5],uioselector_exist_bool:[4,5],uioselector_get_bitnessint:[4,5],uioselector_get_bitnessstr:[4,5],uioselector_get_uio:[4,5],uioselector_get_uiolist:[4,5],uioselector_safeotherget_process:[4,5],uioselector_searchchildbymouse_uio:[4,5],uioselector_searchchildbymouse_uiotre:[4,5],uioselectorsecs_waitappear_bool:[4,5],uioselectorsecs_waitdisappear_bool:[4,5],uioselectorssecs_waitappear_list:[4,5],uioselectorssecs_waitdisappear_list:[4,5],univers:0,updat:[1,2],upper:2,url:[1,2],url_:2,urllist:2,usag:1,use:[0,1,2],used:1,user:[0,1,2,3],user_99:1,user_pass_her:1,useradstr:2,usernam:[1,2],usernameupperstr:1,userupperstr:2,using:1,utf:1,util:2,valu:[1,4,5],variant:1,verifi:1,version:3,versioncheck:3,versionstr:2,viewer:2,virtual:2,vms:1,wai:[1,3],wait:[4,5],want:[0,2],warn:3,web:[0,1,2],webcpupd:1,weburlconnectdef:1,weburlconnectfil:1,weburlconnectfold:1,webuserinfoget:1,webuserissupertoken:1,webuseruachierarchyget:1,wednesdai:1,week:1,weekdai:[1,2],weekdaylist:2,when:[0,1,2,3],where:1,which:[0,1,2,4,5],who:2,why:0,width:[1,2],win32:[4,5],win:1,window:[1,2],without:[1,2],work:[1,2],workingdirectorypathstr:2,wrapper:[4,5],write:0,xlsx:2,you:[0,1,2,4,5]},titles:["1. Description","2. Defs","3. gSettings Template","4. How to start","1. Description","2. Defs","Description","Welcome to pyOpenRPA\u2019s documentation!"],titleterms:{__orchestrator__:1,architectur:0,compon:0,concept:0,configur:0,def:[1,5],descript:[0,4,6],dict:0,document:7,global:0,gset:2,how:[0,3],orchestr:[0,1],processor:0,pyopenrpa:[1,4,5,7],refer:[0,1,5],robot:[4,5],set:0,start:3,templat:2,uidesktop:5,welcom:7}}) \ No newline at end of file diff --git a/Wiki/ENG_Guide/markdown/Orchestrator/02_Defs.md b/Wiki/ENG_Guide/markdown/Orchestrator/02_Defs.md index 4e1488e7..db556096 100644 --- a/Wiki/ENG_Guide/markdown/Orchestrator/02_Defs.md +++ b/Wiki/ENG_Guide/markdown/Orchestrator/02_Defs.md @@ -21,7 +21,7 @@ __Orchestrator__.OSCMD(inCMDStr = "git status", inRunAsyncBool=True) | | `AgentOSCMD`(inGSettings, inHostNameStr, …) - | pyOpenRPA.Agent: Send CMD to OS. + | Send CMD to OS throught the pyOpenRPA.Agent daemon. | | `AgentOSFileBinaryDataBase64StrCreate`(…) @@ -91,9 +91,9 @@ __Orchestrator__.OSCMD(inCMDStr = "git status", inRunAsyncBool=True) | | `ProcessListGet`([inProcessNameWOExeList]) - | Return process list on the orchestrator machine. + | Return process list on the orchestrator machine sorted by Memory Usage. - | + | | `ProcessStart`(inPathStr, inArgList[, …]) | Start process locally. @@ -126,9 +126,9 @@ __Orchestrator__.OSCMD(inCMDStr = "git status", inRunAsyncBool=True) | | `PythonStart`(inModulePathStr, inDefNameStr[, …]) - | Python import module and start def + | Import module and run def in the Orchestrator process. - | + | | `RDPSessionCMDRun`(inGSettings, …[, inModeStr]) | Send command in RDP session @@ -146,9 +146,9 @@ __Orchestrator__.OSCMD(inCMDStr = "git status", inRunAsyncBool=True) | | `RDPSessionDublicatesResolve`(inGSettings) - | Search dublicates in GSettings RDPlist !def is developing! + | DEVELOPING Search dublicates in GSettings RDPlist !def is developing! - | + | | `RDPSessionFileStoredRecieve`(inGSettings, …) | 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) - | Create some RDP template dict to use it when connect/reconnect + | Create RDP connect dict item/ Use it connect/reconnect (Orchestrator.RDPSessionConnect) - | + | | `SchedulerActivityTimeAddWeekly`(inGSettings) - | Add activity in time weekly + | Add activity item list in scheduler. - | + | | `UACKeyListCheck`(inRequest, inRoleKeyList) | 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.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): Send to agent activity item to OSCMD @@ -624,14 +624,15 @@ lProcessIsStartedBool = Orchestrator.ProcessIsStarted(inProcessNameWOExeStr = "n ### 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 from pyOpenRPA import Orchestrator 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,31 +945,44 @@ Orchestrator.ProcessorAliasDefUpdate( ### 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** - * **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** - + None + ### pyOpenRPA.Orchestrator.__Orchestrator__.RDPSessionCMDRun(inGSettings, inRDPSessionKeyStr, inCMDStr, inModeStr='CROSSCHECK') @@ -1072,7 +1086,7 @@ Disconnect the RDP session ### pyOpenRPA.Orchestrator.__Orchestrator__.RDPSessionDublicatesResolve(inGSettings) -Search dublicates in GSettings RDPlist +DEVELOPING Search dublicates in GSettings RDPlist !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) -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** - * **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** - + { + + “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) -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** @@ -1324,19 +1409,20 @@ Add activity in time weekly * **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** - + None + ### pyOpenRPA.Orchestrator.__Orchestrator__.UACKeyListCheck(inRequest, inRoleKeyList) diff --git a/Wiki/ENG_Guide/markdown/Robot/01_Robot.md b/Wiki/ENG_Guide/markdown/Robot/01_Robot.md index ea9afd6c..94fdb182 100644 --- a/Wiki/ENG_Guide/markdown/Robot/01_Robot.md +++ b/Wiki/ENG_Guide/markdown/Robot/01_Robot.md @@ -5,6 +5,160 @@ pyOpenRPA Robot is the python package. ## 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) Get the UIO list by the selector @@ -23,3 +177,118 @@ Get the UIO list by the selector * **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** diff --git a/Wiki/ENG_Guide/markdown/Robot/02_Defs.md b/Wiki/ENG_Guide/markdown/Robot/02_Defs.md index d88ef090..1fc659dc 100644 --- a/Wiki/ENG_Guide/markdown/Robot/02_Defs.md +++ b/Wiki/ENG_Guide/markdown/Robot/02_Defs.md @@ -15,11 +15,235 @@ UIDesktop.UIOSelector_Get_UIO( **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) 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 [reStructuredText](http://docutils.sourceforge.net/rst.html)