python(pywin32)指定路径保存文件到另存为框

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", "另存为")

posted on   bbzhang  阅读(1130)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示