Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Winapi 如何枚举与扩展关联的属性Sheet shell扩展_Winapi_Shell Extensions - Fatal编程技术网

Winapi 如何枚举与扩展关联的属性Sheet shell扩展

Winapi 如何枚举与扩展关联的属性Sheet shell扩展,winapi,shell-extensions,Winapi,Shell Extensions,我想用与文件扩展名关联的PropertySheet外壳扩展名填写一个列表。我找到了该函数,它似乎允许我枚举与文件扩展名关联的所有HKEY,并且我可以读取所有shellex\PropertySheetHandlers值。但此功能仅在Windows 8上可用。XP、Vista和7呢?有什么官方途径吗 更新 我想得到如下HKEY列表: HKCR\MyProgID\shellex\PropertySheetHandlers HKCR\SystemFileAssociations\.MyExt\shel

我想用与文件扩展名关联的PropertySheet外壳扩展名填写一个列表。我找到了该函数,它似乎允许我枚举与文件扩展名关联的所有HKEY,并且我可以读取所有
shellex\PropertySheetHandlers
值。但此功能仅在Windows 8上可用。XP、Vista和7呢?有什么官方途径吗

更新

我想得到如下HKEY列表:

  • HKCR\MyProgID\shellex\PropertySheetHandlers
  • HKCR\SystemFileAssociations\.MyExt\shellex\propertySheedlers
  • HKCR\SystemFileAssociations\MyPercivedType\shellex\PropertySheetHandlers
  • HKCR\*\shellex\PropertySheetHandlers
  • HKCR\AllFilesystemObjects\shellex\PropertySheedlers

IQueryAssociations
自Win2000以来一直存在,只是在Win8中添加了
SHGetAssocKeys()
。更糟糕的情况是,您可以简单地使用
RegOpenKeyEx()
RegEnumKey()
regqueryvaluex()
直接枚举/读取属性表注册。相关注册表项的布局如文档所示:@Remy Lebeau:我知道IQueryAssociations。但我不知道如何使用IQueryAssociations枚举IPropertyStore处理程序。我可以使用RegXXX函数,但我正在寻找正式的方法。不管MSDN怎么说,
SHGetAssocKeys()
实际上是在Vista中引入的,它是从SHELL32.DLL第777条导出的。它按名称导出并记录在Win8中。请参阅本文,其中有一些关于
SHGetAssocKeys()
的内部工作原理的详细信息:。根据您希望使用属性页的目的,还可以查看
AssocGetPropListForExt()
:@Remy Lebeau:在发布问题之前,我已经阅读了geoffchappell.com上的所有相关文章,但没有找到解决方案。不确定Vista,但Windows 7中的shell32.dll不包含序号为777的导出函数。是的,shell32.dll在Win7中序号为777的位置有一个导出函数,并且它的函数签名与
SHGetAssocKeys()
一致。在我发表最后一条评论之前,我检查了一下。如果它不起作用的话,geoffchappell.com也不会这样记录它。