2012-07-20 440 views
1

我試圖用win32com在python中創建com對象。使用這些命令:win32com.client.Dispatch()32-64位程序

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

我試了2次,首先在我的64位python2.6安裝win32 64位安裝。 我能夠使導入win32com.client行工作。 但con_nxn命令仍然doensn't工作,並給我下面的錯誤:

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非enregistr \ xe9e',無,無)

上其他部分用python和win32com 32位安裝,一切正常,我的Com對象被創建。 我認爲問題是,我試圖實例化的軟件是在32位,並沒有提供一個64位COM對象

所以我的問題是:我如何使它在我的python 64位? 我可以通過一些奇怪的方式(複製dll)在我的python 64位上使用win32Com 32位? 或者,也許這個問題不是我認爲的那樣,在這種情況下,如果某個人能夠讓我喜歡,我會是格蘭富爾的,我是一個總生意夥伴對象:D

(我在Windows 7 64位)

謝謝!

回答

1

根據對象是如何實現的,您可以通過添加CLSCTX = pythoncom.CLSCTX_LOCAL_SERVER 傳遞給調度ARGS只是 變化的激活上下文。如果這不起作用,則嘗試使用 CLSCTX_ACTIVATE_32_BIT_SERVER(0x40000)作爲clsctx。 如果這兩項都不起作用,您仍然可以使用控制面板 - >管理工具 - >組件服務爲 應用程序創建一個進程外代理。

+0

謝謝,我會努力的! – Ennakard 2012-07-21 03:44:32

0

試試這個。我在這個解決方案不能確定
C:\ WINDOWS \ Syswow64資料> \ MSIEXEC.EXE/I '應用程序的路徑'

除了信息here