我尝试了这个方法:http://www.codeproject.com/Articles/545781/NET-Shell-Extensions-Shell-Icon-Overlay-Handlers
Option Strict On
Option Explicit On
Imports System.Runtime.InteropServices
Imports SharpShell.Interop
<ComVisible(True)>
Public Class IconOverlayYeah : Inherits SharpShell.SharpIconOverlayHandler.SharpIconOverlayHandler
Protected Overrides Function CanShowOverlay(path As String, attributes As FILE_ATTRIBUTE) As Boolean
Return True
End Function
Protected Overrides Function GetOverlayIcon() As System.Drawing.Icon
Return New System.Drawing.Icon("C:\Users\user\Desktop\icon.ico")
End Function
Protected Overrides Function GetPriority() As Integer
Return 90
End Function
End Class
使用regasm.exe注册生成的dll(使用regedit.exe可见)但不幸的是我的图标不会显示在资源管理器或任何地方。我只注册了6个叠加层并尝试了很多通过谷歌找到的解决方法。但我无法让它发挥作用。你能帮我吗?
答案 0 :(得分:0)
regasm.exe只会注册程序集。但根据How to Register Icon Overlay Handlers,
除了正常的组件对象模型(COM)注册外,还有以下内容 必须完成步骤才能注册图标叠加处理程序。 步骤1:在此键下创建一个以处理程序命名的子键
HKEY_LOCAL_MACHINE
软件
微软
视窗
CURRENTVERSION
资源管理器
ShellIconOverlayIdentifiers
步骤2:将子项的默认值设置为对象的字符串形式&gt;类标识符(CLSID)GUID
您可以使用SharpShell中的srm.exe或ServerManager.exe(您可以从here下载这些内容。
此外,请在注册图标叠加处理程序后尝试重新启动资源管理器。
希望这有帮助。