简体   繁体   中英

Issues trying to Dispatch a SASEGObjectModel COM Object with Python using win32com

I'm trying to use pywin32 to manipulate SAS Enterprise Guide using Python. But I'm running into some errors. I've tried both Dispatch and EnsureDispatch, but both return the same error:

Traceback (most recent call last):
  File "C:\ProgramData\Anaconda3\lib\site-packages\win32com\client\dynamic.py", line 89, in _GetGoodDispatch
    IDispatch = pythoncom.connect(IDispatch)
pywintypes.com_error: (-2147221021, 'Operation unavailable', None, None)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "c:\Users\xxxxxxx\Desktop\test.py", line 4, in <module>
    sas = EnsureDispatch('SASEGObjectModel.Application.7.1')
  File "C:\ProgramData\Anaconda3\lib\site-packages\win32com\client\gencache.py", line 527, in EnsureDispatch
    disp = win32com.client.Dispatch(prog_id)
  File "C:\ProgramData\Anaconda3\lib\site-packages\win32com\client\__init__.py", line 95, in Dispatch
    dispatch, userName = dynamic._GetGoodDispatchAndUserName(dispatch,userName,clsctx)
  File "C:\ProgramData\Anaconda3\lib\site-packages\win32com\client\dynamic.py", line 114, in _GetGoodDispatchAndUserName
    return (_GetGoodDispatch(IDispatch, clsctx), userName)
  File "C:\ProgramData\Anaconda3\lib\site-packages\win32com\client\dynamic.py", line 91, in _GetGoodDispatch
    IDispatch = pythoncom.CoCreateInstance(IDispatch, None, clsctx, pythoncom.IID_IDispatch)
pywintypes.com_error: (-2147024809, 'The parameter is incorrect.', None, None)

(This is using EnsureDispatch, the error using Dispatch is almost the same, only without the 2nd and 3rd lines after the second traceback).

Also, I've tried running makepy (from the same lib) to see what it would return, and I get the following message:

Could not locate a type library matching 'SASEGObjectModel.Application.7.1'

If I try doing it using vbs, using the following code:

Set app = CreateObject("SASEGObjectModel.Application.7.1")

WScript.echo app.Name

It shows a message box with 'Enterprise Guide' written, showing that the object is available to the system.

I've tried asking for help over SAS Support Community, and after many interesting suggestions , I still couldn't solve the issue. But one thing that I hadn't tried, and ended up working, was install a fresh python installation (Not Anaconda), installing PyWIN and it simply worked.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM