This works on XP and Vista. import win32com.client import win32com.server.policy import pythoncom
## from Sens.h SENSGUID_PUBLISHER = "{5fee1bd6-5b9b-11d1-8dd2-00aa004abd5e}" SENSGUID_SUBSCRIBER_LCE ="{d3938ab0-5b9d-11d1-8dd2-00aa004abd5e}" SENSGUID_SUBSCRIBER_WININET = "{d3938ab5-5b9d-11d1-8dd2-00aa004abd5e}" SENSGUID_EVENTCLASS_NETWORK = "{d5978620-5b9f-11d1-8dd2-00aa004abd5e}" SENSGUID_EVENTCLASS_LOGON = "{d5978630-5b9f-11d1-8dd2-00aa004abd5e}" SENSGUID_EVENTCLASS_ONNOW = "{d5978640-5b9f-11d1-8dd2-00aa004abd5e}" SENSGUID_EVENTCLASS_LOGON2 = "{d5978650-5b9f-11d1-8dd2-00aa004abd5e}" ## from EventSys.h CLSID_CEventSystem="{4E14FBA2-2E22-11D1-9964-00C04FBBB345}" CLSID_CEventSubscription="{7542e960-79c7-11d1-88f9-0080c7d771bf}" IID_IEventSubscription="{4A6B0E15-2E38-11D1-9965-00C04FBBB345}" PROGID_EventSystem = "EventSystem.EventSystem" PROGID_EventPublisher = "EventSystem.EventPublisher" PROGID_EventClass = "EventSystem.EventClass" PROGID_EventSubscription = "EventSystem.EventSubscription" PROGID_EventPublisherCollection = "EventSystem.EventPublisherCollection" PROGID_EventClassCollection = "EventSystem.EventClassCollection" PROGID_EventSubscriptionCollection = "EventSystem.EventSubscriptionCollection" PROGID_EventSubsystem = "EventSystem.EventSubsystem" EVENTSYSTEM_PUBLISHER_ID = "{d0564c30-9df4-11d1-a281-00c04fca0aa7}" EVENTSYSTEM_SUBSYSTEM_CLSID = "{503c1fd8-b605-11d2-a92d-006008c60e24}" IID_ISensLogon = "{d597bab3-5b9f-11d1-8dd2-00aa004abd5e}" class SensLogon(win32com.server.policy.DesignatedWrapPolicy): _com_interfaces_=[IID_ISensLogon] _public_methods_=[ 'Logon', 'Logoff', 'StartShell', 'DisplayLock', 'DisplayUnlock', 'StartScreenSaver', 'StopScreenSaver' ] def __init__(self): self._wrap_(self) def Logon(self, *args): print 'Logon' print args def Logoff(self, *args): print 'Logoff' print args def StartShell(self, *args): print 'StartShell' print args def DisplayLock(self, *args): print 'DisplayLock' print args def DisplayUnlock(self, *args): print 'DisplayUnlock' print args def StartScreenSaver(self, *args): print 'StartScreenSaver' print args def StopScreenSaver(self, *args): print 'StopScreenSaver' print args sl=SensLogon() subscription_interface=pythoncom.WrapObject(sl) event_system=win32com.client.Dispatch(PROGID_EventSystem) event_subscription=win32com.client.Dispatch(PROGID_EventSubscription) event_subscription.EventClassID=SENSGUID_EVENTCLASS_LOGON event_subscription.PublisherID=SENSGUID_PUBLISHER event_subscription.SubscriptionName='Python subscription' event_subscription.SubscriberInterface=subscription_interface event_system.Store(PROGID_EventSubscription, event_subscription) Roger _______________________________________________ python-win32 mailing list python-win32@python.org http://mail.python.org/mailman/listinfo/python-win32