11

次のpythonコードがあります

o = win32com.client.Dispatch("Outlook.Application")
ns = o.GetNamespace("MAPI")
profile = ns.Folders.Item("Profile Name")
tasks = profile.Folders.Item("Tasks")
print tasks.Items

実行すると、スクリプトが次のエラーでクラッシュします。

Traceback (most recent call last):
  File "start.py", line 47, in <module>
    o = win32com.client.Dispatch("Outlook.Application")
  File "C:\Python27\lib\site-packages\win32com\client\__init__.py", line 95, in Dispatch
    dispatch, userName = dynamic._GetGoodDispatchAndUserName(dispatch,userName,clsctx)
  File "C:\Python27\lib\site-packages\win32com\client\dynamic.py", line 108, in _GetGoodDispatchAndUserName
    return (_GetGoodDispatch(IDispatch, clsctx), userName)
  File "C:\Python27\lib\site-packages\win32com\client\dynamic.py", line 85, in _GetGoodDispatch
    IDispatch = pythoncom.CoCreateInstance(IDispatch, None, clsctx, pythoncom.IID_IDispatch)
pywintypes.com_error: (-2146959355, 'Server execution failed', None, None)

私も試しました:

win32com.client.gencache.EnsureDispatch("Outlook.Application")

何をすべきか、何が問題なのかわからない

更新: これは Outlook が実行されている場合にのみ発生しますが、getActiveObject を発行すると「操作が利用できません」でクラッシュします

4

4 に答える 4

11

エラーは です。これはCO_E_SERVER_EXEC_FAILURE、Outlook がプロセスのセキュリティ コンテキストとは異なるセキュリティ コンテキストで実行されている可能性が高いことを意味します。いずれかのアプリが昇格された権限 (管理者として実行) で実行されていますか?

コードはいつ、どのように実行されますか?

2016 年 6 月 17 日の更新: コメントに記載されている解決策をより見やすく投稿するだけです: Outlook と Python コードの両方を通常のユーザーとして、または昇格された特権で実行します。

于 2015-06-19T19:47:06.280 に答える
2

私は同じ問題を抱えていました.Python 2.7の64ビットインストールを使用していました. Python 2.7 の 32 ビット バージョンを再インストールしたところ、クライアント ディスパッチ コールを使用できるようになりました。

于 2015-06-19T18:27:03.307 に答える