1

Pythonでwin32comでcomオブジェクトを作成しようとしています。これらのコマンドを使用して:

import win32com.client
com_nxn = win32com.client.Dispatch("NxNNamespace.NxNNamespaceHelper")

最初に、win32 64ビットインストールを使用した64ビットpython2.6インストールで、2回試しました。import win32com.client 行を機能させることができました。しかし、con_nxn コマンドはまだ機能せず、次のエラーが表示されます。

File "C:\Python26\lib\site-packages\win32com\client\dynamic.py", line 85, in _GetGoodDispatch
IDispatch = pythoncom.CoCreateInstance(IDispatch, None, clsctx, pythoncom.IID_IDispatch)

pywintypes.com_error: (-2147221164、「Classe non enregistr\xe9e」、なし、なし)

Pythonとwin32com 32ビットのインストールを使用した別の部分では、すべて正常に動作し、Comオブジェクトが作成されます。問題は、インスタンス化しようとしているソフトウェアが 32 ビットであり、64 ビットの Com オブジェクトを提供していないことだと思います

だから私の質問は:どうすれば私のpython 64Bitで動作させることができますか? 私のpython 64Bitで奇妙な方法(dllをコピーする)でwin32Com 32ビットを使用できますか?または、問題は私が考えているものではないかもしれません。その場合、誰かが私を啓発することができれば、私は感謝します。私はcomオブジェクトの完全な初心者です:D

(私はWindows 7 64ビットを使用しています)

ありがとう!

4

2 に答える 2

3

オブジェクトの実装方法によっては、Dispatchに渡される引数にclsctx = pythoncom.CLSCTX_LOCAL_SERVERを追加することで、アクティベーションコンテキストを変更できる場合があります。それでも問題が解決しない場合は、clsctxに対してCLSCTX_ACTIVATE_32_BIT_SERVER(0x40000)を試してください。これらのいずれも機能しない場合でも、[コントロールパネル]->[管理ツール]->[コンポーネントサービス]を使用して、アプリケーションのアウトプロセスプロキシを作成できる場合があります。

于 2012-07-20T22:28:11.973 に答える
0

これを試して。このソリューションではわかりません
C:\Windows\SysWOW64>.\msiexec.exe /i 'アプリケーションのパス'

追加情報はこちら

于 2016-05-19T07:46:23.350 に答える