私のアプリケーションは、ユーザーの要求に応じてos.startfileを含むpdfファイルを開いています(プッシュボタン)。ユーザーがもう一度ボタンを押したときにこのPDFを閉じる方法はありますか?これを行わないと、次のエラーが発生します。
WindowsError:[エラー32]別のプロセスによって使用されているため、プロセスはファイルにアクセスできません:'default_report.pdf'
編集: Python内で次のようになります:(
QPainter::begin(): Returned false
WindowsErrorは実行可能ファイルから発生します)。どういうわけかこのエラーをキャッチできますtry
か?少なくとも、PDFを手動で閉じるようにユーザーに依頼するには...別の関連する質問。私のアプリケーションは実行可能ファイルとしてコンパイルされ、別のVB6アプリケーションから呼び出されます(これもプッシュボタンで)。Pythonから実行可能ファイルがすでに実行されている(exeファイルは常に同じ場所にある)ことを検出し、この場合は再起動する前に実行可能ファイルを強制終了する方法はありますか?問題は同様です。実行可能ファイルを2回実行すると、競合が発生し始めるため(共通のデータベースを使用しているため)、エラーが発生します。VB6からはどういうわけか動作しません、詳細はわかりません...
編集:で解決
psutil
(jheyseによる回答への私のコメントを参照)
ps必要に応じて、exeファイルの作成にPython 3.2、PyQt 4、cx_freezeを使用します。