我开发了一个自定义属性表处理程序,它在Windows 7和Windows 8上运行良好。在Windows 10上,它没有加载。Windows 10中 shell 扩展的注册似乎发生了变化,但我还没有跟踪细节。
我的属性表处理程序从jpeg文件(.jpe或.jpeg)读取自定义XMP数据。如果我注册一个新的文件类型(即.photo扩展名)并为此注册处理程序,它将按预期工作:
HKCR\.photo\shellex\PropertySheetHandlers\{my class id}
但是,如果我为现有的jpeg文件类型(jpegfile)注册它,它就不会被加载:
HKCR\jpegfile\shellex\PropertySheetHandlers\{my class id}
同样,这个问题只发生在Windows 10上。当在Windows 7和8上的HKCR\jpegfile键类型下注册时,处理程序工作正常。有人知道Windows 10可能发生了什么变化吗?
3条答案
按热度按时间wgeznvg71#
尝试注册如下:
bq8i3lrv2#
HKEY_CLASSES_ROOT
似乎是deprecated:HKEY_CLASSES_ROOT(HKCR)键包含文件扩展名关联和COM类注册信息,如ProgID、CLSID和IID。它主要用于与16位Windows中的注册表兼容。
请将您的密钥移动到
HKEY_LOCAL_MACHINE\Software\Classes
(或当前用户的HKEY_CURRENT_USER\Software\Classes
)。mtb9vblg3#
要解决此问题,您必须在注册表中为要处理的每个文件扩展名写入一个条目,例如:
HKCR\SystemFileAssociations\.jpeg\shellex\PropertySheetHandlers
。使用属性表处理程序创建一个子键,并将其CLISD作为默认值。