a „oeõã@srddlZddlZddlZddlZddlZddlZddlZddlZdZdd„Z dd„Z e dkrne ej dd…ƒdS) éNz&{A5DCBF10-6530-11D2-901F-00C04FB951ED}cCsTt |¡}td|t|ƒƒ|tjkrP|jtjkrPtdƒt  |j ¡t   |j ¡dS)NzDevice change notification:z%Device being removed - closing handleT)Úwin32gui_structZUnpackDEV_BROADCASTÚprintÚstrÚwin32conZDBT_DEVICEQUERYREMOVEZ devicetypeZDBT_DEVTYP_HANDLEÚ win32fileZ CloseHandleÚhandleÚwin32guiZUnregisterDeviceNotificationZ hdevnotify)ÚhwndÚmsgZwpZlpÚinfo©r úBC:\Program Files\Certbot\pkgs\win32\Demos\win32gui_devicenotify.pyÚOnDeviceChanges ÿ þ  rc CsTt ¡}d|_tjtjBtjB|_tjd|_ tj t i|_ t  |¡}t |jdtjdddddddd¡ }g}t t¡}t ||tj¡}| |¡|D]X}t |tjtjtjBtjBdtjtjtjBd¡}t  |¡}t ||tj¡}| |¡q’t!dt"|ƒdƒt!d ƒ|�s"t!d ƒt!d ƒt!d ƒt #¡t$ %d ¡�q"t &|¡t '|jd¡dS)NZtest_devicenotifyézTesting some devicesédi„rZWatchingz'handles - press Ctrl+C to terminate, orz"add and remove some USB devices...z@(Note you can also pass paths to watch on the command-line - eg,z@pass the root of an inserted USB stick to see events specific toz that volume)g{®Gáz„?)(rZWNDCLASSZ lpszClassNamerZCS_GLOBALCLASSZ CS_VREDRAWZ CS_HREDRAWZstyleZ COLOR_WINDOWZ hbrBackgroundZWM_DEVICECHANGErZ lpfnWndProcZ RegisterClassZ CreateWindowZ WS_CAPTIONrZ!PackDEV_BROADCAST_DEVICEINTERFACEÚGUID_DEVINTERFACE_USB_DEVICEZRegisterDeviceNotificationZDEVICE_NOTIFY_WINDOW_HANDLEÚappendrZ CreateFileÚwinntZFILE_LIST_DIRECTORYZFILE_SHARE_READZFILE_SHARE_WRITEZFILE_SHARE_DELETEZ OPEN_EXISTINGZFILE_FLAG_BACKUP_SEMANTICSZFILE_FLAG_OVERLAPPEDZPackDEV_BROADCAST_HANDLErÚlenZPumpWaitingMessagesÚtimeÚsleepZ DestroyWindowZUnregisterClass) Z dir_namesZwcZ class_atomr ZhdevsÚfilterZhdevÚdZhdirr r r ÚTestDeviceNotifications&sl   ôÿÿ ÿø ÿ  rÚ__main__r) ÚsysrZwin32apirrrrrrrrÚ__name__Úargvr r r r Ús@