|
|
@ -62,11 +62,14 @@ logging.basicConfig(filename="Reports\ReportRobotRun_"+datetime.datetime.now().s
|
|
|
|
#Start childprocess - GUI Module 32 bit
|
|
|
|
#Start childprocess - GUI Module 32 bit
|
|
|
|
mProcessGUI_x32 = subprocess.Popen(['..\\Resources\\WPy32-3720\\python-3.7.2\\python.exe','..\\Robot\\GUI.py','release'],stdin=subprocess.PIPE,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
|
|
|
|
mProcessGUI_x32 = subprocess.Popen(['..\\Resources\\WPy32-3720\\python-3.7.2\\python.exe','..\\Robot\\GUI.py','release'],stdin=subprocess.PIPE,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
|
|
|
|
#Start childprocess - GUI Module 64 bit - uncomment after WPy64 installation
|
|
|
|
#Start childprocess - GUI Module 64 bit - uncomment after WPy64 installation
|
|
|
|
|
|
|
|
ProcessCommunicator.ProcessChildSendObject(mProcessGUI_x32,{"ModuleName":"GUI","ActivityName":"Get_OSBitnessInt","ArgumentList":[],"ArgumentDict":{}})
|
|
|
|
|
|
|
|
lOSBitness = ProcessCommunicator.ProcessChildReadWaitObject(mProcessGUI_x32)["Result"]
|
|
|
|
|
|
|
|
|
|
|
|
lProcessBitnessStr = str(struct.calcsize("P") * 8)
|
|
|
|
lProcessBitnessStr = str(struct.calcsize("P") * 8)
|
|
|
|
#start 64 if system support 64
|
|
|
|
#start 64 if system support 64
|
|
|
|
mProcessGUI_x64= None
|
|
|
|
mProcessGUI_x64= None
|
|
|
|
if (struct.calcsize("P") * 8) == 64:
|
|
|
|
if lOSBitness == 64:
|
|
|
|
mProcessGUI_x64 = subprocess.Popen(['..\\Resources\\WPy64-3720\\python-3.7.2.amd64\\python.exe','GUI.py'],stdin=subprocess.PIPE,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
|
|
|
|
mProcessGUI_x64 = subprocess.Popen(['..\\Resources\\WPy64-3720\\python-3.7.2.amd64\\python.exe','..\\Robot\\GUI.py','release'],stdin=subprocess.PIPE,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
|
|
|
|
|
|
|
|
|
|
|
|
####################
|
|
|
|
####################
|
|
|
|
#Section: Activity
|
|
|
|
#Section: Activity
|
|
|
@ -79,25 +82,39 @@ def ActivityRun(inActivitySpecificationDict):
|
|
|
|
inActivitySpecificationDict["ArgumentList"]=[]
|
|
|
|
inActivitySpecificationDict["ArgumentList"]=[]
|
|
|
|
if "ArgumentDict" not in inActivitySpecificationDict:
|
|
|
|
if "ArgumentDict" not in inActivitySpecificationDict:
|
|
|
|
inActivitySpecificationDict["ArgumentDict"]={}
|
|
|
|
inActivitySpecificationDict["ArgumentDict"]={}
|
|
|
|
#TODO: Доделать определение разрядности (32 и 64)
|
|
|
|
|
|
|
|
######################################################
|
|
|
|
#Если mProcessGUI_x64 не инициализирован
|
|
|
|
#Выполнить проверку разрядности через UIOSelector_Get_BitnessInt
|
|
|
|
lFlagRun64=True
|
|
|
|
#Отправить запрос в дочерний процесс, который отвечает за работу с Windows окнами
|
|
|
|
if mProcessGUI_x64 is None:
|
|
|
|
ProcessCommunicator.ProcessChildSendObject(mProcessGUI_x32,{"ModuleName":"GUI","ActivityName":"UIOSelector_Get_BitnessInt","ArgumentList":inActivitySpecificationDict["ArgumentList"],"ArgumentDict":inActivitySpecificationDict["ArgumentDict"]})
|
|
|
|
lFlagRun64=False
|
|
|
|
#Получить ответ от дочернего процесса
|
|
|
|
else:
|
|
|
|
lResponseObject=ProcessCommunicator.ProcessChildReadWaitObject(mProcessGUI_x32)
|
|
|
|
if inActivitySpecificationDict["ActivityName"].startswith("UIOSelector") or inActivitySpecificationDict["ActivityName"].startswith("PWASpecification"):
|
|
|
|
|
|
|
|
if len(inActivitySpecificationDict["ArgumentList"])>0:
|
|
|
|
|
|
|
|
if len(inActivitySpecificationDict["ArgumentList"][0])>0:
|
|
|
|
|
|
|
|
#Определение разрядности (32 и 64) для тех функций, где это необходимо
|
|
|
|
|
|
|
|
######################################################
|
|
|
|
|
|
|
|
#Выполнить проверку разрядности через UIOSelector_Get_BitnessInt
|
|
|
|
|
|
|
|
#Отправить запрос в дочерний процесс, который отвечает за работу с Windows окнами
|
|
|
|
|
|
|
|
ProcessCommunicator.ProcessChildSendObject(mProcessGUI_x32,{"ModuleName":"GUI","ActivityName":"UIOSelector_Get_BitnessInt","ArgumentList":[inActivitySpecificationDict["ArgumentList"][0]],"ArgumentDict":inActivitySpecificationDict["ArgumentDict"]})
|
|
|
|
|
|
|
|
#Получить ответ от дочернего процесса
|
|
|
|
|
|
|
|
lResponseObject=ProcessCommunicator.ProcessChildReadWaitObject(mProcessGUI_x32)
|
|
|
|
|
|
|
|
#pdb.set_trace()
|
|
|
|
|
|
|
|
if lResponseObject["Result"]==32:
|
|
|
|
|
|
|
|
lFlagRun64=False
|
|
|
|
|
|
|
|
#Запуск 64
|
|
|
|
#pdb.set_trace()
|
|
|
|
#pdb.set_trace()
|
|
|
|
if lResponseObject["Result"]==64:
|
|
|
|
if lFlagRun64:
|
|
|
|
#Отправить запрос в дочерний процесс, который отвечает за работу с Windows окнами
|
|
|
|
#Отправить запрос в дочерний процесс, который отвечает за работу с Windows окнами
|
|
|
|
ProcessCommunicator.ProcessChildSendObject(mProcessGUI_x64,inActivitySpecificationDict)
|
|
|
|
ProcessCommunicator.ProcessChildSendObject(mProcessGUI_x64,inActivitySpecificationDict)
|
|
|
|
#Получить ответ от дочернего процесса
|
|
|
|
#Получить ответ от дочернего процесса
|
|
|
|
lResponseObject=ProcessCommunicator.ProcessChildReadWaitObject(mProcessGUI_x64)
|
|
|
|
lResponseObject=ProcessCommunicator.ProcessChildReadWaitObject(mProcessGUI_x64)
|
|
|
|
elif lResponseObject["Result"]==32:
|
|
|
|
else:
|
|
|
|
|
|
|
|
#Запуск 32
|
|
|
|
#Отправить запрос в дочерний процесс, который отвечает за работу с Windows окнами
|
|
|
|
#Отправить запрос в дочерний процесс, который отвечает за работу с Windows окнами
|
|
|
|
ProcessCommunicator.ProcessChildSendObject(mProcessGUI_x32,inActivitySpecificationDict)
|
|
|
|
ProcessCommunicator.ProcessChildSendObject(mProcessGUI_x32,inActivitySpecificationDict)
|
|
|
|
#Получить ответ от дочернего процесса
|
|
|
|
#Получить ответ от дочернего процесса
|
|
|
|
lResponseObject=ProcessCommunicator.ProcessChildReadWaitObject(mProcessGUI_x32)
|
|
|
|
lResponseObject=ProcessCommunicator.ProcessChildReadWaitObject(mProcessGUI_x32)
|
|
|
|
#Вернуть результат
|
|
|
|
|
|
|
|
#Остальные модули подключать и выполнять здесь
|
|
|
|
#Остальные модули подключать и выполнять здесь
|
|
|
|
else:
|
|
|
|
else:
|
|
|
|
lArgumentList=[]
|
|
|
|
lArgumentList=[]
|
|
|
|