What exactly does win32com.client.Dispatch("WScript.Shell")?

petosorus picture petosorus · May 6, 2014 · Viewed 38k times · Source

I was searching for a Python piece of code which would simulate keystrokes. I stumble upon something using win32com.client.Dispatch("WScript.Shell"). I am not fan (at all) of Windows but it is to help a friend with automation of a game.

I got a problem, this works fine on notepad or firefox for example, it does write but not on his game. In order to find wether it comes from his game or my automation I would like to have some details about win32com.client and what really represents WScript.Shell

Thank you all

Answer

NorthCat picture NorthCat · May 6, 2014

Some citations:

As we discussed previously, automation objects are COM objects that expose methods and properties using the IDispatch interface. So how do we use these objects from Python? The win32com.client package contains a number of modules to provide access to automation objects. This package supports both late and early bindings, as we will discuss.

To use an IDispatch-based COM object, use the method win32com.client.Dispatch(). This method takes as its first parameter the ProgID or CLSID of the object you wish to create. If you read the documentation for Microsoft Excel, you'll find the ProgID for Excel is Excel.Application, so to create an object that interfaces to Excel, use the following code:

import win32com.client
xl = win32com.client.Dispatch("Excel.Application")

(from this)

The WSript.Shell object provides functions to read system information and environment variables, work with the registry and manage shortcuts. (from: 1 2)