Hi, I've been looking for a solution to this question for some time now. Hopefully you could help me out. There's a program (Golden Software Surfer) that I have successfully automated using Python COM. I normally am able to control every portion I need. The part I have trouble accessing is under its "Property Manager". Even though I am using the description provided in the software's documents & help files I get an error saying: AttributeError: '<win32com.gen_py.Surfer 13 Type Library.IShape instance at 0x2327715907232>' object has no attribute 'ShowColorScale' "ShowColorScale" is just an example of one property/method in the Property Manager window. Here is the example code I have been working with: import win32com.client
srf = win32com.client.gencache.EnsureDispatch('Surfer.Application') Plot = srf.Documents.Add(1) srf.Visible = True MapFrame1 = Plot.Shapes.AddImageMap(GridFileName="C:/test.grd") ImageLayer1 = MapFrame1.Overlays(1) ImageLayer1.ShowColorScale = True # this is where i get the error The full error message:KeyError Traceback (most recent call last) C:\Program Files\Anaconda3\lib\site-packages\win32com\client\__init__.py in __setattr__(self, attr, value) 470 try: --> 471 args, defArgs=self._prop_map_put_[attr] 472 except KeyError: KeyError: 'ShowColorScale' During handling of the above exception, another exception occurred: AttributeError Traceback (most recent call last) <ipython-input-7-8ef841af10d0> in <module>() ----> 1 ImageLayer1.ShowColorScale = True # test C:\Program Files\Anaconda3\lib\site-packages\win32com\client\__init__.py in __setattr__(self, attr, value) 471 args, defArgs=self._prop_map_put_[attr] 472 except KeyError: --> 473 raise AttributeError("'%s' object has no attribute '%s'" % (repr(self), attr)) 474 self._oleobj_.Invoke(*(args + (value,) + defArgs)) 475 def _get_good_single_object_(self, obj, obUserName=None, resultCLSID=None): AttributeError: '<win32com.gen_py.Surfer 13 Type Library.IShape instance at 0x2327715907232>' object has no attribute 'ShowColorScale' After searching on the net I found this question, asked here 10 years ago:[python-win32] COM automation: problem accessing property of derived object obtained from collection « python-win32 « ActiveState List Archives | | | | | | | | | | | [python-win32] COM automation: problem accessing property of derived obj... | | | It's almost identical to my issue. The author mentions that he found a solution on his latest post too. But doesn't post the solution itself. Just something regarding CastTo and then gives two links for reference. (Tried to search and understand CastTo without any success, couldn't understand how to implement it to the code above.) I'm new to programming & Python.. especially to COM. I would really appreciate it if some one could help me solve this. [Python3.6, Surfer13]
_______________________________________________ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32