So, thanks to the Tim Golden guide <http://timgolden.me.uk/python/win32_how_do_i/add-my-own-icon-overlays.html> (http://timgolden.me.uk/python/win32_how_do_i/add-my-own-icon-overlays.html) and other questions <http://stackoverflow.com/questions/4775020/icon-overlay-issue-with-python#> on Stack Overflow I have a script that will show overlays on files and folders based on their "state" similar to Tortoise SVN or Dropbox. Works great.
My problem is that once I restart the explorer.exe process or the OS itself and open explorer there are no longer any overlays. My first thought: - Have the service that actually manages file state detect that no requests have come in and just re-register the overlay handler The problem here is that registration requires elevated permissions which is acceptable on initial install of the application by the end user but not every time they restart their machine. Can anyone suggest what I might be missing here? I have the class BaseOverlay and its children in a single .py file and register from my main app by calling this script using subprocess. subprocess.check_call("C:\scripts\register_overlays.py", shell=True) Is Explorer not able to re-load the script as it is Python? Do I need to compile into a DLL or EXE? Would that change the registration process? Here's the registration call: win32com.server.register.UseCommandLine(BaseOverlay) Here's the class(simplified): class BaseOverlay: _reg_clsid_ = '{8D4B1C5D-F8AC-4FDA-961F-A0143CD97C41}' _reg_progid_ = 'someoverlays' _reg_desc_ = 'Icon Overlay Handler' _public_methods_ = ['GetOverlayInfo', 'GetPriority', 'IsMemberOf'] _com_interfaces_ = [shell.IID_IShellIconOverlayIdentifier] def GetOverlayInfo(self): return icon_path, 0, shellcon.ISIOI_ICONFILE def GetPriority(self): return 50 def IsMemberOf(self, fname, attributes): return winerror.S_OK Thanks for any help you can provide, Alex Jewell
_______________________________________________ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32