#Orchestrator_AddActivity_GUISessionCheckSetActive

dev-linux
Ivan Maslov 5 years ago
parent 6983d9029c
commit 6f3152ade9

@ -5,8 +5,12 @@ import pdb
import os import os
import sys import sys
import subprocess import subprocess
import win32ts
#Глобальная переменная - все глобальные значения программы #Глобальная переменная - все глобальные значения программы
global mGlobalDict global mGlobalDict
#Включить WTS (WIN32TS)
mWTSServer = lWTSServer = win32ts.WTSOpenServer("localhost")
#{ #{
# actionList: # actionList:
# [ # [
@ -25,6 +29,9 @@ global mGlobalDict
# }, # },
# { # {
# type: <ActivityRestartOrchestrator> # type: <ActivityRestartOrchestrator>
# },
# {
# type: <ActivitySessionCheckSetActive>
# } # }
# ] # ]
# #
@ -65,5 +72,24 @@ def ProcessingRun(inConfigurationDict):
if lItem["type"]=="ActivityRestartOrchestrator": if lItem["type"]=="ActivityRestartOrchestrator":
os.execl(sys.executable,os.path.abspath(__file__),*sys.argv) os.execl(sys.executable,os.path.abspath(__file__),*sys.argv)
sys.exit(0) sys.exit(0)
#Обработка команды ActivitySessionCheckSetActive
if lItem["type"]=="ActivitySessionCheckSetActive":
lResult["actionListResult"][-1] = {**lResult["actionListResult"][-1], **{"result":{"IsActivated":False}}}
lPID = os.getpid()
#pdb.set_trace()
lSessionId = win32ts.ProcessIdToSessionId(lPID)
lSessionList = win32ts.WTSEnumerateSessions(lWTSServer)
#При попытке закрыть сервер возникает ошибка
#win32ts.WTSCloseServer(lWTSServer)
#Наложить фильтр
lSessionFiltered = [d for d in lSessionList if d["SessionId"]==lSessionId]
#Выполнить переход в активное состояние , если State != 0
if lSessionFiltered[0]["State"] != 0:
lCMDCodeTSCON = "tscon " + str(lSeessionId) + " /dest:console"
lCMDCode="cmd /c "+lCMDCodeTSCON
subprocess.Popen(lCMDCode)
lResult["actionListResult"][-1] = {**lResult["actionListResult"][-1], **{"result":{"IsActivated":True}}}
#Выключить соединение
#Вернуть результат #Вернуть результат
return lResult return lResult

Loading…
Cancel
Save