#Import parent folder to import current / other packages
from pyOpenRPA.Robot import UIDesktop #Lib to access RDP window
import os #os for process run
import time
#Connect to RDP session
"""
{
    "Host": "", #Host address
    "Port": "", #RDP Port
    "Login": "", # Login
    "Password": "", #Password
    "Screen": {
        "Resolution":"FullScreen", #"640x480" or "1680x1050" or "FullScreen". If Resolution not exists set full screen
        "FlagUseAllMonitors": False, # True or False
        "DepthBit":"" #"32" or "24" or "16" or "15"
    }
}
"""
def SessionConnect(inRDPSessionConfiguration):
    #Run mstsc
    from pywinauto.application import Application
    lRDPApplication = Application(backend="uia").start("mstsc.exe")
    lProcessId = lRDPApplication.process
    #Expand the parameter section
    UIDesktop.UIOSelector_Get_UIO(
        [
            {"process": lProcessId, "backend": "uia"},
            {"class_name": "ToolbarWindow32"},
            {"title": "Показать параметры ", "control_type": "Button"}]
    ).click()
    #Select flag ask login/pass
    UIDesktop.UIOSelector_Get_UIO(
        [
            {"process": lProcessId, "backend": "win32"},
            {"title":"Общие"},
            {"title":"Учетные данные"},
            {"title":"&Всегда запрашивать учетные данные", "class_name":"Button"}]
    ).check()
    #Set host:port
    lHostPort=inRDPSessionConfiguration['Host']
    if 'Port' in inRDPSessionConfiguration:
        lHostPort=f"{lHostPort}:{inRDPSessionConfiguration['Port']}"
    UIDesktop.UIOSelector_Get_UIO(
        [
            {"process": lProcessId, "backend": "uia"},
            {"title": "Компьютер:"},
            {"title": "Компьютер:", "control_type": "Edit"}]
    ).set_text(f"{lHostPort}")
    #Set user

