Testing a Remote Object Using DCOM-Specific Calls

You may have noticed that the DCOM configuration dialog states “Client applications may override your selection.” So when you configure DCOM, you really just provide default values for non-DCOM-aware programs. In fact, if you want to make your client code DCOM-aware, it isn’t necessary to configure DCOM on the local machine at all; your client code provides the information needed.

To demonstrate this, let’s restore the DCOM configuration on the local machine to the defaults. Restart the DCOM configuration tool and again select the Python.Interpreter object. Select the Location tab and restore the settings to how you first found them. The dialog should look similar to Figure 12.8.

Back to the default DCOM configuration for the object
Figure 12.8. Back to the default DCOM configuration for the object

Select the OK button to apply the changes.

First, let’s check that the object is indeed restored correctly. Execute the same lines of code used previously, but because the DCOM configuration has been restored, the object should be local:

>>> i=win32com.client.Dispatch("Python.Interpreter", clsctx=clsctx)
>>> i.Exec("import win32api")
>>> i.Eval("win32api.GetComputerName()")
'BOBCAT'
>>>

As expected, the local machine name is now being used, and you should be able to locate a pythonw.exe process running on the local computer.

The win32com.client.DispatchEx() function allows you to override the DCOM ...

Get Python Programming On Win32 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.