我的应用程序正在根据用户的请求(按钮)打开一个带有 os.startfile 的 pdf 文件。当用户再次按下按钮时,有什么方法可以关闭此 pdf?如果不这样做,我会收到错误消息:
WindowsError:[错误 32] 该进程无法访问该文件,因为它正在被另一个进程使用:'default_report.pdf'
编辑:在 Python 中我得到:
QPainter::begin(): Returned false
(WindowsError 来自可执行文件)。我能以某种方式抓住这个错误try
吗?至少要求用户手动关闭 pdf...另一个相关的问题。我的应用程序被编译为可执行文件,并从另一个 VB6 应用程序(也在按钮上)调用。有什么方法可以从 Python 中检测到可执行文件已经在运行(exe 文件始终具有相同的位置)并在这种情况下在再次启动之前将其杀死?问题类似,如果我第二次运行可执行文件,我会收到错误,因为它们开始发生冲突(它们使用公共数据库)。从VB6它不工作,我不知道细节......
编辑:解决
psutil
(见我对jheyse答案的评论)
ps 如果重要的话,我使用 Python 3.2、PyQt 4 和 cx_freeze 来制作 exe。