如何启动应用程序关闭后运行的批处理文件

时间:2015-11-01 04:59:35

标签: python windows wxpython py2exe

我使用wxPython编写了一个windows gui应用程序,使用py2exe编译成可执行文件。我试图让程序检查我们网站上的新版本,下载它,然后覆盖自己。到目前为止,整个功能都在起作用,但不出意外的是,它不能覆盖正在运行的应用程序(但它会成功覆盖所有支持文件)。我设计的解决方案是,我让它以临时文件名复制新的应用程序可执行文件,并且我已经编写了一个批处理文件,该文件将不断尝试覆盖现有文件,直到成功为止。我已对此进行了测试,如果我独立运行批处理文件(即手动),它也可以运行。现在我的问题和我的问题是:如何让我的应用程序启动批处理文件但不等待它在退出之前完成,以便批处理文件可以完成复制操作?

我已经尝试了以下操作,它们都会导致应用程序挂起:

os.spawnl(os.P_NOWAIT, 'mybatfile.bat')
os.spawnl(os.P_DETACH, 'mybatfile.bat')
os.execl('mybatfile.bat')

1 个答案:

答案 0 :(得分:1)

wxPython内置了Esky支持。为什么不使用那个呢?它是一个用于更新冻结应用程序的库: