Как выполнить действие с контекстным меню над файлом с помощью Python 3 - PullRequest
0 голосов
/ 02 июня 2018

Как я могу выполнить действие контекстного меню для определенного файла?
Мне удалось открыть проводник и получить список файлов через 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)

Приведенный выше код откроет проводник и перейдет к каталогу.Это действие контекстного меню, которое требуется для файла:
this is the Context menu action required on the file

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

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

1 Ответ

0 голосов
/ 02 июня 2018

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

# 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...

Подробнее о бэкэндах: Руководство по началу работы .

...