Python win32 GetMenuItemID работает только при первом открытии меню - PullRequest
0 голосов
/ 29 февраля 2020

Я работаю над сценарием, чтобы автоматизировать некоторые из моих работ. Я пытаюсь выбрать опцию в подменю третьего уровня. Панель главного меню SAP -> Функции -> Ограничить обработку -> Завершить технически. Изображение из SAP

Я использую следующий код:

main_mhnd = win32gui.GetMenu(sap_hwnd)
func_mhnd = (win32gui.GetSubMenu(main_mhnd, 1))
teco_mhnd = win32gui.GetSubMenu(func_mhnd, 8)
set_teco_button = win32gui.GetMenuItemID(teco_mhnd, 3)
remove_teco_button = win32gui.GetMenuItemID(teco_mhnd, 4)
print(str(set_teco_button) + " " + str(remove_teco_button))

Код работает, если я открываю меню вручную, но не тогда, когда оно не было открыто. Строка печати предназначена для отладки.

Кто-нибудь имел опыт работы с меню модели COM?

Я думаю, что мне нужно как-то открыть меню, но я не могу найти правильный способ вызова функции.

По некоторым причинам сценарии SAP Native не работают для элементов подменю. Вызов из скрипта GUI:

session.findById("wnd[0]/mbar/menu[1]/menu[8]/menu[3]").select
...