Windows 10上的属性表处理程序

pbossiut  于 2023-03-13  发布在  Windows
关注(0)|答案(3)|浏览(139)

我开发了一个自定义属性表处理程序,它在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可能发生了什么变化吗?

wgeznvg7

wgeznvg71#

尝试注册如下:

HKCR\.jpeg\shellex\PropertySheetHandlers\{my class id}
HKCR\.jpg\shellex\PropertySheetHandlers\{my class id}
bq8i3lrv

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)。

mtb9vblg

mtb9vblg3#

要解决此问题,您必须在注册表中为要处理的每个文件扩展名写入一个条目,例如:HKCR\SystemFileAssociations\.jpeg\shellex\PropertySheetHandlers。使用属性表处理程序创建一个子键,并将其CLISD作为默认值。

相关问题