<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div>Hi,</div><div>I tried the basic example for win32com.client to just record how many times events have been fired? I want to test which event types would be fired by addition to self.seen_events dictionary. self.event_methods_hash get all available events definition name ('OnWorkbookOpen',' OnWorkbookAfterSave', etc..). While all user_event_class definitions do a similar task I wonder how to add all available definitions programmatically?  <br></div><div><br></div><div>class ExcelEvents:  ## <br></div><div>    def __init__(self):<br>        self.seen_events = {}<br>        self.event_methods_hash = self._dispid_to_func_<br>    def init_events(self,key_):<br>        if key_ not in self.seen_events.keys():<br>            self.seen_events[key_] = 0<br>        else:<br>            self.seen_events[key_] += 1<br>    def OnWorkbookOpen(self, *args):<br>        key_ = "OnWorkbookOpen" <br>        self.init_events(key_)<br>    def OnWorkbookAfterSave(self,*args):<br>        key_ = "OnWorkbookAfterSave"<br>        self.init_events(key_)<br>       <br>event_names = ["OnWorkbookOpen"]<br>wait_time = 1<br></div><div>import win32com.client as win32<br></div><div>excel # => <span style="display:inline;float:none;background-color:transparent;color:rgb(0,0,0);font-family:monospace;font-size:13px;font-style:normal;font-variant:normal;font-weight:400;letter-spacing:normal;line-height:15.73px;text-align:left;text-decoration:none;text-indent:0px;text-transform:none;white-space:pre-wrap;word-break:break-all;word-spacing:0px"><win32com.gen_py.Microsoft Excel 16.0 Object Library._Application instance at 0x1550605301240></span></div><div>excel.Visible = True<br>excel_events = win32.WithEvents(excel, ExcelEvents)</div><div><span style="display:inline;float:none;background-color:transparent;color:rgb(0,0,0);font-family:monospace;font-size:13px;font-style:normal;font-variant:normal;font-weight:400;letter-spacing:normal;line-height:15.73px;text-align:left;text-decoration:none;text-indent:0px;text-transform:none;white-space:pre-wrap;word-break:break-all;word-spacing:0px">f_path_out = 'HHW_last_out.xlsx'</span></div><div>try:</div><div>    book = excel.Workbooks.Open(f_path_out)<br>    book_autorecover_status = book.EnableAutoRecover<br>    book.EnableAutoRecover = False<br>    book.Save()<br>    book.EnableAutoRecover = book_autorecover_status<br>except Exception as e:<br>    print("Something Wrong")<br>    print(e)<br>else:<br>    print("Finished Properly")<br>    print(excel_events.seen_events)<br>finally:<br>    excel_events.close()</div><div>Thanks</div><div>Khanh Ng<br></div></div></div></div></div>