Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在桌面锁定或RDP会话关闭时单击TreeItem复选框_Python_Python 3.x_Pywinauto - Fatal编程技术网

Python 如何在桌面锁定或RDP会话关闭时单击TreeItem复选框

Python 如何在桌面锁定或RDP会话关闭时单击TreeItem复选框,python,python-3.x,pywinauto,Python,Python 3.x,Pywinauto,您好,我有以下关于我在windows上的UI和TreeView项目的信息: >>> x.dump_tree() Control Identifiers: TreeView - '' (L662, T453, R1022, B651) ['', 'TreeView'] child_window(auto_id="1000", control_type="Tree") | | TreeItem - 'Program files (32 bit)' (L69

您好,我有以下关于我在windows上的UI和TreeView项目的信息:

>>> x.dump_tree()
Control Identifiers:

TreeView - ''    (L662, T453, R1022, B651)
['', 'TreeView']
child_window(auto_id="1000", control_type="Tree")
   |
   | TreeItem - 'Program files (32 bit)'    (L697, T455, R822, B473)
   | ['TreeItem', 'Program files (32 bit)', 'Program files (32 bit)TreeItem', 'TreeItem0', 'TreeItem1']
   | child_window(title="Program files (32 bit)", control_type="TreeItem")
   |
   | TreeItem - 'Program files (64 bit)'    (L697, T473, R822, B491)
   | ['Program files (64 bit)', 'TreeItem2', 'Program files (64 bit)TreeItem']
   | child_window(title="Program files (64 bit)", control_type="TreeItem")
   |
   | TreeItem - 'Sample code'    (L697, T491, R782, B509)
   | ['Sample codeTreeItem', 'TreeItem3', 'Sample code']
   | child_window(title="Sample code", control_type="TreeItem")
   |    |
   |    | TreeItem - 'JSP & Java'    (L716, T509, R790, B527)
   |    | ['JSP & JavaTreeItem', 'TreeItem4', 'JSP & Java']
   |    | child_window(title="JSP & Java", control_type="TreeItem")
   |    |
   |    | TreeItem - 'C#.NET'    (L716, T527, R768, B545)
   |    | ['C#.NET', 'TreeItem5', 'C#.NETTreeItem']
   |    | child_window(title="C#.NET", control_type="TreeItem")
   |    |
   |    | TreeItem - 'PHP'    (L716, T545, R748, B563)
   |    | ['PHP', 'TreeItem6', 'PHPTreeItem']
   |    | child_window(title="PHP", control_type="TreeItem")
   |
   | TreeItem - 'C Interface Files (32 bit)'    (L697, T563, R838, B581)
   | ['C Interface Files (32 bit)', 'TreeItem7', 'C Interface Files (32 bit)TreeItem']
   | child_window(title="C Interface Files (32 bit)", control_type="TreeItem")
   |
   | TreeItem - 'C Interface Files (64 bit)'    (L697, T581, R838, B599)
   | ['C Interface Files (64 bit)', 'TreeItem8', 'C Interface Files (64 bit)TreeItem']
   | child_window(title="C Interface Files (64 bit)", control_type="TreeItem")
   |
   | TreeItem - 'Partner Sourced Data Server'    (L697, T599, R873, B617)
   | ['Partner Sourced Data ServerTreeItem', 'Partner Sourced Data Server', 'TreeItem9']
   | child_window(title="Partner Sourced Data Server", control_type="TreeItem")
>>> y = x.get_item('\\Program files (32 bit)')
>>> y
<uia_controls.TreeItemWrapper - 'Program files (32 bit)', TreeItem, 1916753231443648783>
>>> dir(y)
['__abstractmethods__', '__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__' , '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_abc_cache', '_abc_negative_cache', '_abc_negative_cache_version', '_abc_registry', '_as_parameter_', '_cache', '_calc_click_coords', '_control_types', '_create_wrapper', '_element_info', ' _needs_image_prop', '_scroll_types', '_select', 'actions', 'appdata', 'automation_id', 'backend', 'can_be_label', 'can_select_multiple', 'capture_as_image', 'children', 'children_texts', 'class_name', 'click_input', 'client_to_screen', 'close', 'collapse', 'control_count', 'cont rol_id', 'descendants', 'double_click_input', 'drag_mouse_input', 'draw_outline', 'element_info', 'ensure_visible', 'expand', 'friendly_class_name', 'friendlyclassname', 'get_child', 'get_expand_state', 'get_properties', 'get_selection', 'get_show_state', 'handle', 'has_keyboard _focus', 'has_title', 'iface_expand_collapse', 'iface_grid', 'iface_grid_item', 'iface_invoke', 'iface_item_container', 'iface_range_value', 'iface_scroll', 'iface_scroll_item', 'iface_selection', 'iface_selection_item', 'iface_table', 'iface_table_item', 'iface_text', 'iface_to ggle', 'iface_transform', 'iface_transformV2', 'iface_value', 'iface_virtualized_item', 'iface_window', 'invoke', 'is_active', 'is_checked', 'is_child', 'is_collapsed', 'is_dialog', 'is_enabled', 'is_expanded', 'is_keyboard_focusable', 'is_maximized', 'is_minimized', 'is_normal' , 'is_selected', 'is_selection_required', 'is_visible', 'iter_children', 'iter_descendants', 'legacy_properties', 'maximize', 'menu_select', 'minimize', 'move_mouse_input', 'parent', 'press_mouse_input', 'process_id', 'rectangle', 'ref', 'release_mouse_input', 'restore', 'right_ click_input', 'root', 'scroll', 'select', 'selected_item_index', 'set_focus', 'sub_elements', 'texts', 'top_level_parent', 'type_keys', 'verify_actionable', 'verify_enabled', 'verify_visible', 'wait_for_idle', 'was_maximized', 'wheel_mouse_input', 'window_text', 'windowclasses',  'writable_props']
>>x.dump_tree()
控制标识符:
树视图-“”(L662、T453、R1022、B651)
[''‘树景’]
子窗口(auto_id=“1000”,control_type=“Tree”)
|
|TreeItem-“程序文件(32位)”(L697、T455、R822、B473)
|['TreeItem'、'ProgramFiles(32位)'、'ProgramFiles(32位)TreeItem'、'TreeItem0'、'TreeItem1']
|子窗口(title=“程序文件(32位)”,控件类型=“TreeItem”)
|
|TreeItem-“程序文件(64位)”(L697、T473、R822、B491)
|[‘程序文件(64位)’、‘TreeItem2’、‘程序文件(64位)TreeItem’]
|子窗口(title=“程序文件(64位)”,控件类型=“TreeItem”)
|
|TreeItem-“示例代码”(L697、T491、R782、B509)
|['Sample codeTreeItem','TreeItem3','Sample code']
|子窗口(title=“示例代码”,control\u type=“TreeItem”)
|    |
|| TreeItem-“JSP与Java”(L716、T509、R790、B527)
||['JSP&JavaTreeItem'、'TreeItem4'、'JSP&Java']
||子窗口(title=“JSP&Java”,control_type=“TreeItem”)
|    |
|| TreeItem-“C#NET”(L716、T527、R768、B545)
||['C#NET','TreeItem5','C#nettreeeitem']
||子窗口(title=“C#.NET”,control_type=“TreeItem”)
|    |
|| TreeItem—“PHP”(L716、T545、R748、B563)
||['PHP','TreeItem6','PHPTreeItem']
||子窗口(title=“PHP”,control_type=“TreeItem”)
|
|TreeItem-“C接口文件(32位)”(L697、T563、R838、B581)
|['C接口文件(32位)''TreeItem7','C接口文件(32位)TreeItem']
|子窗口(title=“C接口文件(32位)”,控件类型=“TreeItem”)
|
|TreeItem-“C接口文件(64位)”(L697、T581、R838、B599)
|['C接口文件(64位)''TreeItem8','C接口文件(64位)TreeItem']
|子窗口(title=“C接口文件(64位)”,控件类型=“TreeItem”)
|
|TreeItem—“合作伙伴来源的数据服务器”(L697、T599、R873、B617)
|['Partner Sourced Data Server TreeItem'、'Partner Sourced Data Server'、'TreeItem9']
|子窗口(title=“合作伙伴来源的数据服务器”,control\u type=“TreeItem”)
>>>y=x.get_项('\\程序文件(32位)'))
>>>y
>>>署长(y)
“UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU","新","减少","减少","减少","模块","新","减少","报告","设置属性","大小","str__“,”weakref“,”abc“,”负面缓存“,”负面缓存“,”版本“,”注册表“,”参数“,”缓存“,”点击坐标“,”控制“,”类型“,”创建包装“,”元素信息“,”需要图片“,”滚动类型“,”选择“,”动作“,”后台数据自动化“,”标签“,”可以选择多个“,”以图像、子对象、子对象文本、类名称、单击输入、客户端到屏幕、关闭、折叠、控制计数、控制id、子对象、双击输入、拖动鼠标输入、绘制大纲、元素信息、确保可见、展开、友好类名称、友好类名、获取子对象、获取展开状态、获取_属性“,”获取\选择“,”获取\显示\状态“,”句柄“,”具有\键盘焦点“,”具有\标题“,”iface \展开\折叠“,”iface \网格“,”iface \网格\项“,”iface \项调用“,”iface \项容器“,”iface \项范围\值“,”iface \项滚动“,”iface \项“,”iface \项选择“,”iface \项“,”iface\表\项“,”iface \项“,”iface \文本“,”iface\项_要切换、iface\u转换、iface\u转换v2、iface\u值、iface\u虚拟化项目、iface\u窗口、调用、处于活动状态、处于选中状态、处于子级、处于折叠状态、处于对话状态、处于启用状态、处于展开状态、键盘可聚焦状态、处于最大化状态、处于最小化状态、处于正常状态、处于选中状态、处于选中状态、处于选中状态、处于可见状态、处于iter状态ldren、iter子体、遗留属性、最大化、菜单选择、最小化、移动鼠标输入、父项、按下鼠标输入、进程id、矩形、ref、释放鼠标输入、恢复、右键单击输入、根、滚动、选择、选定项目索引、设置焦点、子元素、文本、顶层父项、键入键“验证可操作”、“验证已启用”、“验证可见”、“等待空闲”、“是否最大化”、“滚轮鼠标输入”、“窗口文本”、“窗口类”、“可写道具”]
似乎只有在桌面处于活动状态(计算机未锁定或RDP会话处于活动状态)时,才允许使用所有可能的控制方法

有没有办法在锁定桌面时使用方法来解决此问题?

额外信息:t进程以管理员身份启动(也是python进程),我已使用connect方法连接到该进程。应用程序的后端是uia

Python版本:3.7,pywinauto 0.6.5

我正在查看UI屏幕截图以了解更多说明:

以下是我使用的代码,但它仅在桌面处于活动状态时有效:

def click_tree_button(app, window, button, timeout=DEFAULT_TIMEOUT_MINI):
    "Add descr. here"
    starttime = time()
    while time() - starttime < timeout:
        try:
            app.top_window()
            app.window(title_re=window).child_window(control_type="Tree").get_item('\\' + button).select().type_keys('{SPACE}')
            return
        except (pywinauto.findwindows.ElementNotFoundError,
                pywinauto.findbestmatch.MatchError):
            sleep(0.5)
    raise Exception("Cannot click '{}' tree button on '{}' screen".format(button, window))
def单击树按钮(应用程序、窗口、按钮、超时=默认超时值):
“在此处添加说明”
开始时间=时间()
while time()-starttime<超时:
尝试:
应用程序顶部_窗口()
app.window(title\u re=window).子窗口(control\u type=“Tree”).获取项目('\\'+按钮).选择().键入键('{SPACE}'))
返回
除了(pywinauto.findwindows.ElementNotFoundError、,
pywinauto.findbestmatch.MatchError):
睡眠(0.5)
引发异常(“无法单击“{}”屏幕上的“{}”树按钮”。格式化(按钮,窗口))

可能会帮助您解锁远程计算机。等待也可能更简单:
app.window(title\re=window)。等待('ready',timeout=timeout)