1

我正在尝试使用 Windows 桌面搜索注册一个新过滤器。实现此目的的理想方法是使用现有的持久处理程序 CLSID 注册新过滤器。但这无法完成,因为 .html PersistentHandler CLSID{eec97550-47a9-11cf-b952-00aa0051fe20}受 WRP 保护(有关问题的更多信息)。

作为一种解决方法,我正在尝试创建一个不同的 CLSID,它与{eec97550-47a9-11cf-b952-00aa0051fe20}.

这是我正在关注的示例代码。我对 WiX 和编辑 Windows 注册表很陌生。

<File Id="HTMLfilter.DLL">
    <Class Id="$(var.CLSID_HtmlIFilter)" Context="InprocServer32" ThreadingModel="both" Description="Html Filter" />
</File>

有人可以帮我解决这些问题吗?

  • 如何创建不附属于任何文件的 CLSID?由于我的新 CLSID 正在完成上述 CLSID 的工作,我认为应该是这样。

  • 如何创建一个名为 PersistentAddinsRegistered 而不是 InprocSever32 的子目录

谢谢

4

2 回答 2

1

我建议将选定的分支导出到注册表文件(将全部或​​部分注册表导出到文本文件)。

然后使用Heat.exe收获注册表文件并将其输出包含在您的项目中。

这是一个例子

    <Fragment>
    <DirectoryRef Id="TARGETDIR">
        <Component Id="cmp6E2CE62C9ADECD355465514E3C8F354E" Guid="PUT-GUID-HERE" KeyPath="yes">
            <RegistryKey Key=".ascx\PersistentHandler" Root="HKCR">
                <RegistryValue Value="{eec97550-47a9-11cf-b952-00aa0051fe20}" Type="string" />
            </RegistryKey>
        </Component>
    </DirectoryRef>
</Fragment>
于 2012-03-09T04:13:11.443 回答
1

看看这个页面,这里展示了如何将 COM 对象添加到安装程序

于 2012-03-06T12:04:41.853 回答