就是这个橘黄的部分,这个是命令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") ;选中“退出”菜单项