1

私の現在のコードは

mppApp = Dispatch("MSProject.Application")
try:
    mppApp.FileOpen(fileName)
    mppDoc = mppApp.ActiveProject
    core_props = mppDoc.BuiltinDocumentProperties

    for prop_name, core_prop_name in _CORE_PROPERTIES.iteritems():
        try:
            metadata[prop_name] = core_props(core_prop_name).Value
        except:
            metadata[prop_name] = ""

    for key in ['created', 'modified', 'printed']:
        if key in metadata and metadata[key]!="":
           metadata[key] = strftime("%m/%d/%Y %I:%M:%S %p", gmtime(int(metadata[key])))

    for prop_name, core_prop_name in _CORE_PROPERTIES.iteritems():
        print core_prop_name, "=", metadata[prop_name]

except:
    print fileName, "could not be opened"
mppApp.Quit(SaveChanges=0)
time.sleep(.1)

この自動化された python コードで .mpp ファイルを開くと、次のようなポップアップが表示されます

「既存のメモには複数行のテキストがあります。複数行のテキストは、[タスク情報] ダイアログ ボックスの [メモ] タブを使用してのみ入力できます。テーブル内のメモを変更すると、最初の行を除くすべてのテキスト行、およびすべての書式設定が削除されます。このままテーブルのメモを変更しますか? テーブルのメモを変更するには、[はい] をクリックしてください。行った変更を破棄し、[タスク情報] ダイアログ ボックスを開くには、[いいえ] をクリックしてください。

アプリケーションをディスパッチし、ファイルを開いてドキュメントをアクティブなプロジェクトに設定した後に終了すると、このポップアップは表示されません。BuiltinDocumentProperties を取得して終了しようとすると、ポップアップが表示されます。Pythonでこのポップアップを受け入れる方法があるかどうか疑問に思っていました。そこでポップアップを終了しようとすると、呼び出しが呼び出し先によって拒否されたことを示す pywintypes.com_error が表示されます。

ポップアップを手動で受け入れてから再度終了ラインを呼び出すと、Microsoft Project アプリケーションが終了します。

4

0 に答える 0