Python 或者 C# 怎么获取这个 命令id 呢?

图片说明

就是这个橘黄的部分,这个是命令id ,这里保存是 1 , 取消是 2 , 这个是我一个个试出来的,请问有什么函数能直接 获取这个保存的ID呢?

提供一下思路和关键词也行,我自己去搜一下。谢谢了

hwnd = win32gui.FindWindow(None,'另存为')

print( hwnd )

另存为_menu_hwnd = menu_hwnd = win32gui.GetMenu( hwnd )

print( 另存为_menu_hwnd )

win32api.SendMessage( hwnd , win32con.WM_COMMAND , 2 , 0 )  

FindWindow,根据按钮文字找到handle
再调用 GetDlgCtrlID 得到 ID

问题解决的话,请点下采纳

装个autoit

https://www.autoitscript.com/site/autoit/downloads/

然后使用autoit window info工具,将Finder Tool图标拖拽到控件上,就可以看到ID

图片说明

此外,autoit也可以通过脚本完成上面的自动化功能,可以了解下,比如创建一个au3文件,内容如下,右键文件,选择"Run Script"就可执行了

#include <MsgBoxConstants.au3>

$filePath="d:\\test.txt"   ;文件路径

Run("Notepad.exe " & $filePath) ;用记事本打开文件

$title=$filePath & " - 记事本" ;记事本窗体标题

if WinWait($title,"",2) then
 WinWaitActive($title)
endif

Send("!f") ;选中“文件”菜单
Send("a") ;选中“另存为”菜单

Sleep(500) ;停顿500毫秒

ControlSend("另存为", "", "ComboBox3", "UTF-8") ; 另存为编码

Sleep(200) ;停顿200毫秒

Send("!s") ;选中“保存”按钮
Send("!y") ;选中“确定”进行覆盖
Send("!f") ;选中“文件”菜单
Send("x")  ;选中“退出”菜单项