You might find it helpful to use a dedicated COM browser. For instance, you can use the COM browser bundled with win32com to investigate available type libraries and their interfaces:

from win32com.client import combrowse
combrowse.main()

For information on how to go from the type library CLSID to the ProgID needed when dispatching, see this question.

Answer from fuglede on Stack Overflow
🌐
ProgramCreek
programcreek.com › python › example › 4315 › win32com.client.Dispatch
Python Examples of win32com.client.Dispatch
def __init__(self,xlsFile="", Visible=1): self.xlApp = Dispatch("Excel.Application") self.xlApp.Visible = Visible xlChart.numWkBooks = xlChart.numWkBooks + 1 # I don't think the sheet and column lists should be mapped # (unfortunately, they are right now) self.sheetList = [] self.chartList = [] self.chartNColumns = [] self.chartNRows = [] self.leaveOpen = 1 self.nRows = 0 self.nColumns = 0 self.formula = xlChFormula.xlChFormula() # a scratch variable if len(xlsFile)>0: # opening an existing XLS file xlsFile = os.path.abspath(xlsFile) # Excel likes absolute path names self.xlApp.Workbooks.Open(xlsFile) self.initFromXLSFile() self.xlBook = None else: # making a new XLS file self.xlBook = self.xlApp.Workbooks.Add() self.xlSheet = self.xlApp.Sheets(1) self.sheetList.append( self.xlSheet )
🌐
ProgramCreek
programcreek.com › python › example › 63229 › win32com.client
Python Examples of win32com.client
def TestAll(): TestWord() print "Starting Excel for Dynamic test..." xl = win32com.client.dynamic.Dispatch("Excel.Application") TextExcel(xl) try: print "Starting Excel 8 for generated excel8.py test..." mod = gencache.EnsureModule("{00020813-0000-0000-C000-000000000046}", 0, 1, 2, bForDemand=1) xl = win32com.client.Dispatch("Excel.Application") TextExcel(xl) except ImportError: print "Could not import the generated Excel 97 wrapper" try: import xl5en32 mod = gencache.EnsureModule("{00020813-0000-0000-C000-000000000046}", 9, 1, 0) xl = win32com.client.Dispatch("Excel.Application.5") print "Starting Excel 95 for makepy test..."
🌐
WMI
timgolden.me.uk › pywin32-docs › html › com › win32com › HTML › QuickStartClientCom.html
Quick Start to Client side COM and Python - Tim Golden
You do not need to do anything special to make these constants work, other than create the object itself (ie, in the example above, the constants relating to Word would automatically be available after the w=win32com.client.Dispatch("Word.Application") statement.
🌐
Stack Overflow
stackoverflow.com › questions › 73850586 › find-all-progids-to-dispatch-win32com-object
python - Find all progids to dispatch win32com object? - Stack Overflow
win32com.client.Dispatch('Word.Application') win32com.client.Dispatch('Excel.Application') win32com.client.Dispatch('Outlook.Application')
🌐
Google Groups
groups.google.com › d › topic › xsi_list › NSV-e-thdtY
Two ways to dispatch Application - whats the difference?
July 7, 2012 - Two ways to dispatch Application - whats the difference · It is common practice to dispatch the Application object before using it, but I noticed there are at least two different ways of doing it: 1.) from win32com.client import dynamic as d App = d.Dispatch ('XSI.Application') 2.) from ...
🌐
Practical Business Python
pbpython.com › windows-com.html
Automating Windows Applications Using COM - Practical Business Python
July 2, 2018 - Introduction to using python and Microsoft's COM technology to automate Windows applications
🌐
Bytes
bytes.com › home › forum › topic › python
how to use Dispatch to open an application in win32com.client - Post.Byes
February 17, 2007 - Hi' I am trying to launch an application. When I try like that When I try like that Excel is opening import win32com.client object = win32com.client.Dispatch("Excel.Application") object.Visible = 1 But when I try my application which is QeepIt.exe which is in the c:\ drive it is not running ...
Find elsewhere
🌐
Ntua
ftp.ntua.gr › mirror › python › windows › win32com › QuickStartClientCom.html
Quick Start to Client side COM and Python
o = win32com.client.Dispatch("Excel.Application") o.Visible = 1 o.Workbooks.Add() # for office 97 95 a bit different!
🌐
O'Reilly
oreilly.com › library › view › python-programming-on › 1565926218 › ch12s03.html
12.3. Using Automation Objects from Python - Python Programming On Win32 [Book]
January 24, 2000 - >>> import win32com.client >>> xl = win32com.client.Dispatch("Excel.Application") >>>
Authors   Andy RobinsonMark Hammond
Published   2000
Pages   672
🌐
DEV Community
dev.to › lukesavefrogs › basic-operations-4oom
Basic operations - DEV Community
November 2, 2022 - from win32com import client server_name = "192.168.1.17" excel = client.DispatchEx('Excel.Application', server_name)
🌐
Stack Overflow
stackoverflow.com › questions › tagged › win32com
Frequent 'win32com' Questions - Stack Overflow
I have always used win32com module in my development server to easily convert from xlsx to pdf: o = win32com.client.Dispatch("Excel.Application") o.Visible = False o.DisplayAlerts = False wb = o....
🌐
GitHub
gist.github.com › rdapaz › 63590adb94a46039ca4a10994dff9dbe
Fix for module win32com.gen_py has no attribute 'CLSIDToPackageMap' · GitHub
`import win32com.client as win32 from win32com.client import constants, Dispatch · excel = win32.gencache.EnsureDispatch ("Excel.Application") word = win32.gencache.EnsureDispatch("Word.Application") ` ... try: xl = client.gencache.EnsureDispatch('Excel.Application') except AttributeError: # Corner case dependencies. import os import re import sys import shutil # Remove cache and try again. MODULE_LIST = [m.__name__ for m in sys.modules.values()] for module in MODULE_LIST: if re.match(r'win32com\.gen_py\..+', module): del sys.modules[module] shutil.rmtree(os.path.abspath(os.path.join(win32com.__gen_path__, '..'))) from win32com import client xl = client.gencache.EnsureDispatch('Excel.Application')