我在这个论坛上看到了一些例子和专题,涉及如何用Icon overlay手铐,与Adhur 2.7 &一起执行;这套双赢套方案,但并非对我有用,我不理解为什么。
我制造了DL,我在登记时没有错误。 我也直接用文字进行审判,但同样如此。 从来没有像这个阶层那样。
该守则是:
import win32traceutil
from win32com.shell import shell, shellcon
import pythoncom
import winerror
import os
REG_PATH =r SoftwareMicrosoftWindowsCurrentVersionExplorerShellIconOverlayIdentifiers
REG_KEY = "GdIconOverlayTest"
class GdClass:
_reg_clsid_= {512AE200-F075-41E6-97DD-48ECA4311F2E}
_reg_progid_= GD.TestServer
_reg_desc_= gd desc
_public_methods_ = [ GetOverlayInfo , GetPriority , IsMemberOf ]
_com_interfaces_=[shell.IID_IShellIconOverlayIdentifier, pythoncom.IID_IDispatch]
def __init__(self):
pass
def GetOverlayInfo(self):
return (os.path.abspath(r C:icons est.ico ), 0, shellcon.ISIOI_ICONFILE)
def GetPriority(self):
return 0
def IsMemberOf(self, fname, attributes):
print( ismemberOf , fname, os.path.basename(fname))
if os.path.basename(fname) == "hello.text":
return winerror.S_OK
return winerror.E_FAIL
def DllRegisterServer():
print "Registering %s" % REG_KEY
import _winreg
key = _winreg.CreateKey(_winreg.HKEY_LOCAL_MACHINE, REG_PATH)
subkey = _winreg.CreateKey(key, GdClass._reg_progid_)
_winreg.SetValueEx(subkey, None, 0, _winreg.REG_SZ, GdClass._reg_clsid_)
print "Registration complete: %s" % GdClass._reg_desc_
def DllUnregisterServer():
print "Unregistering %s" % REG_KEY
import _winreg
try:
key = _winreg.DeleteKey(_winreg.HKEY_LOCAL_MACHINE, r"%s\%s" % (REG_PATH, GdClass._reg_progid_))
except WindowsError, details:
import errno
if details.errno != errno.ENOENT:
raise
print "Unregistration complete: %s" % GdClass._reg_desc_
if __name__== __main__ :
from win32com.server import register
register.UseCommandLine(GdClass,
finalize_register = DllRegisterServer,
finalize_unregister = DllUnregisterServer)
Hi and thanks for your answer. I have tested with a log file and also win32traceutil. The registration/unregitration messages are logged. The registry entries are also created under:
1/HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionExplorerShellIconOverlayIdentifiersGD.TestServer 2/ HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionShell ExtensionsApproved 3/ directly under class root.
我还在“SerOverlayInfo”、“GetPriority”等方法中添加了一些标识,并且是“成员”,但我可以通过探索者看到一个痕迹。
My configuration is: Python 2.7 pywin32-214.win32-py2.7.exe Windows XP SP 2
http://kobiarts.free.fr/python/iconoverlay.zip“rel=“nofollow”>。