Hi, 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?
class ExcelEvents: ## def __init__(self): self.seen_events = {} self.event_methods_hash = self._dispid_to_func_ def init_events(self,key_): if key_ not in self.seen_events.keys(): self.seen_events[key_] = 0 else: self.seen_events[key_] += 1 def OnWorkbookOpen(self, *args): key_ = "OnWorkbookOpen" self.init_events(key_) def OnWorkbookAfterSave(self,*args): key_ = "OnWorkbookAfterSave" self.init_events(key_) event_names = ["OnWorkbookOpen"] wait_time = 1 import win32com.client as win32 excel # => <win32com.gen_py.Microsoft Excel 16.0 Object Library._Application instance at 0x1550605301240> excel.Visible = True excel_events = win32.WithEvents(excel, ExcelEvents) f_path_out = 'HHW_last_out.xlsx' try: book = excel.Workbooks.Open(f_path_out) book_autorecover_status = book.EnableAutoRecover book.EnableAutoRecover = False book.Save() book.EnableAutoRecover = book_autorecover_status except Exception as e: print("Something Wrong") print(e) else: print("Finished Properly") print(excel_events.seen_events) finally: excel_events.close() Thanks Khanh Ng
_______________________________________________ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32