Как установить флажок TreeItem, когда рабочий стол заблокирован или сеанс RDP закрытPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как установить флажок TreeItem, когда рабочий стол заблокирован или сеанс RDP закрыт

Сообщение Anonymous »

Здравствуйте, у меня есть следующая информация о моем пользовательском интерфейсе и элементе 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

>>> 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']


Похоже, что все возможные методы управления разрешены только в том случае, если рабочий стол активен (компьютер не заблокирован или активен сеанс RDP)

Есть ли способ обойти эту проблему с помощью методов, которые можно использовать, когда рабочий стол заблокирован?

Дополнительно информация: Процесс запускается от имени администратора (тоже процесс Python), и я подключился к процессу с помощью метода подключения. Серверная часть приложения – uia

Версия Python: 3.7, pywinauto 0.6.5

Для большей ясности прилагаю скриншот пользовательского интерфейса:
введите здесь описание изображения

Вот мой код, который я использую, но он работает только в том случае, если рабочий стол активен. :

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))


Подробнее здесь: https://stackoverflow.com/questions/528 ... on-is-clos
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»