前提
VBAで使用していたような外部プログラムのメニューバーを簡単に操作できるモジュールを作成したい。
実現したいこと
外部アプリケーションのメニューバー内の項目名を取得したい
発生している問題・エラーメッセージ
返り値が空白となりメニューの項目名が取得できない
該当のソースコード
Python import win32gui import win32con def appmenu(app_handle,*menu_name_tuple): menu_hWnd = win32gui.GetMenu(app_handle) # メニューバーのハンドルを取得 p_menu_hWnd = menu_hWnd for Mymenu in menu_name_tuple: p_menu_count = win32gui.GetMenuItemCount(p_menu_hWnd) # メニューバー内のサブメニューの個数を取得 for i in range(p_menu_count): s_menu_hWnd = win32gui.GetSubMenu(p_menu_hWnd, i) text = win32gui.GetWindowText(s_menu_hWnd) #⇐問題の箇所 print(text) #⇐ブランクになる if Mymenu == text: p_menu_hWnd = s_menu_hWnd break win32gui.SendMessage(app_handle, win32con.WM_COMMAND, p_menu_hWnd, menu_hWnd) if __name__ == '__main__': app_handle = win32gui.FindWindow("AcrobatSDIWindow",None) if app_handle != 0: print(win32gui.GetWindowText(app_handle)) #⇐アプリケーションのタイトルは取得できる appmenu(app_handle,"ファイル(F)","印刷(P)...") #⇐合っているかわかりません 参考VBAのURL:https://oshiete.goo.ne.jp/qa/5240712.html
試したこと
win32gui.GetWindowText
win32gui.GetMenuinfo
どちらも名前を取得をすることができず、Web上をかなり探し回ったのですが、見つけることができませんでした
補足情報(FW/ツールのバージョンなど)
Pythonを初めて5日目程度のPython初心者です。
Anaconda 3.9
PyScripter 4.1.1.0

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。