import os
import time
import win32gui
import win32con
from datetime import datetime
mode_db_path="要保存文件的路径"
time1 = time.strftime('%m%d%H%M%S', time.localtime())
def saveAs(savename, title):
"""
另存为
:param savename: 文件名
:param title: 窗口title,可通过spy++查看
:return:
"""
startTime = datetime.now()
handle = ""
while (datetime.now() - startTime).seconds < 20: #要留有时间去查找对话框
time.sleep(2)
handle = win32gui.FindWindow(None, u"%s" % title)
if handle != 0:
break
a1 = win32gui.FindWindowEx(handle, None, "DUIViewWndClassName", None)
a2 = win32gui.FindWindowEx(a1, None, "DirectUIHWND", None)
a3 = win32gui.FindWindowEx(a2, None, "FloatNotifySink", None)
a4 = win32gui.FindWindowEx(a3, None, "ComboBox", None)
hwnd_filename = win32gui.FindWindowEx(a4, None, "Edit", None)
#如果路径不存在,则创建
if not os.path.isdir(os.path.dirname(mode_db_path)):
os.makedirs(os.path.dirname(mode_db_path))
win32gui.SendMessage(hwnd_filename, win32con.WM_SETTEXT, None, mode_db_path + time1 + savename)
# 点击保存按钮
time.sleep(2)
hwnd_save = win32gui.FindWindowEx(handle, None, "Button", None)
win32gui.PostMessage(hwnd_save, win32con.WM_KEYDOWN, win32con.VK_RETURN, 0)
win32gui.PostMessage(hwnd_save, win32con.WM_KEYUP, win32con.VK_RETURN, 0)
if __name__=="__main__":
save("test", "另存为")