Как выполнить действие контекстного меню над файлом с помощью Python 3

Как я могу выполнить действие контекстного меню для определенного файла?
Мне удалось открыть проводник и получить список файлов через python с помощью pywinauto.

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

import pywinauto

path = "C:\\Users\\Vishnu\\Desktop\\DM-test\\"

pywinauto.Application().Start(r'explorer.exe')
explorer = pywinauto.Application().Connect(path='explorer.exe')
NewWindow = explorer.Window_(top_level_only=True, active_only=True,  class_name='CabinetWClass')
NewWindow.AddressBandRoot.ClickInput()
NewWindow.TypeKeys(path+'{ENTER}', with_spaces=True, set_foreground=False)

Приведенный выше код откроет проводник и перейдет в каталог. Это действие контекстного меню, необходимое для файла:
это действие контекстного меню, необходимое для файла

Мне удалось найти значение reg и изменить свой код, чтобы передать это действие в файл, он отлично работает !!

pywinauto.Application().start(r'"C:\Program Files (x86)\Qualcomm\QCAT 6.x\Bin\QCAT.exe" -txt "{}"'.format(fileName))


person Vishnu Indusekharan    schedule 02.06.2018    source источник
comment
Почему бы просто не прочитать желаемое действие из реестра и не выполнить его непосредственно в файле? Кажется, это долгий путь, чтобы сделать что-то очень простое ...   -  person zwer    schedule 02.06.2018
comment
Что не так с explorer.exe примером в основном файле Readme? прокрутить до середины страницы   -  person Vasily Ryabov    schedule 02.06.2018
comment
@zwer Спасибо за предложение, мне удалось найти значение reg и изменить свой код, чтобы передать это действие в файл, он отлично работает !! pywinauto.Application().start(r'"C:\Program Files (x86)\Qualcomm\QCAT 6.x\Bin\QCAT.exe" -txt "{}"'.format(i))   -  person Vishnu Indusekharan    schedule 08.06.2018


Ответы (1)


А-а! Никто не читает документы ... Пример представлен в основном файле Readme: MS UI Пример автоматизации. В вашем случае это должно выглядеть так:

# no need to type the path, explorer.exe has a cmd param for that
pywinauto.Application().start(r'explorer.exe "{}"'.format(path))

# backend is important!!!
app = Application(backend="uia").connect(path="explorer.exe")
NewWindow = explorer.Window_(top_level_only=True, active_only=True,  class_name='CabinetWClass')

file_item = NewWindow.ItemsView.get_item('dmlog20180517-121505slot0.dlf')
file_item.right_click_input()
app.ContextMenu["Convert to QCAT Text"].invoke()

# further actions depend on a process / dialog started...

Дополнительные сведения о серверных ВМ: Руководство по началу работы.

person Vasily Ryabov    schedule 02.06.2018
comment
Привет, Василий, в настоящее время я использую этот аналогичный метод, но столкнулся с проблемой нажатия части подменю в контекстном меню. Например, app.ContextMenu["Convert to QCAT Text->Sub Menu Item"].invoke(). Вы знаете, как я могу поступить? - person Han; 31.01.2020
comment
Я также разместил здесь свой вопрос - ›ссылка - person Han; 31.01.2020