在x64系统上使用来自32位应用程序的IFilter

时间:2012-02-07 23:53:42

标签: c++ full-text-search ifilter

我需要在 Windows x64 系统上使用32位应用程序的IFilter界面。这对.doc文件很容易,因为offfilt.dll支持两种构建类型。但是,我还需要从.docx和其他文件类型中获取纯文本。解决方案首先是安装Microsoft Filter Packs。但是,只安装x64版本...这意味着我的32位应用程序无法使用它们。它们在32位Windows下运行良好。

有没有人找到解决方法呢?

3 个答案:

答案 0 :(得分:7)

我找到了一种在64位操作系统中安装docx Filter Pack 32bits的方法。其他文件格式类似。

  1. 在32位操作系统中安装32位过滤包;
  2. 复制ifilters文件 目录“C:\ Program Files \ Common Files \ Microsoft Shared \ Filters” 从32位操作系统到目录“C:\ Program Files(x86)\ Common 64位操作系统中的Files \ Microsoft Shared \ Filters。
  3. 将以下行复制到文件“ifilter.reg”并执行文件:
  4. 档案内容:

    Windows Registry Editor Version 5.00
    
    [HKEY_CLASSES_ROOT\.docx\PersistentHandler]
    @="{D3B41FA1-01E3-49AF-AA25-1D0D824275AE}"
    
    [HKEY_CLASSES_ROOT\.docm\PersistentHandler]
    @="{D3B41FA1-01E3-49AF-AA25-1D0D824275AE}"
    
    [HKEY_CLASSES_ROOT\.dotx\PersistentHandler]
    @="{D3B41FA1-01E3-49AF-AA25-1D0D824275AE}"
    
    [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.docm\PersistentHandler]
    @="{D3B41FA1-01E3-49AF-AA25-1D0D824275AE}"
    
    [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.docx\PersistentHandler]
    @="{D3B41FA1-01E3-49AF-AA25-1D0D824275AE}"
    
    [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.dotx\PersistentHandler]
    @="{D3B41FA1-01E3-49AF-AA25-1D0D824275AE}"
    
    [HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{D3B41FA1-01E3-49AF-AA25-1D0D824275AE}]
    @="Office Open XML Format Word Persistent Handler"
    
    [HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{D3B41FA1-01E3-49AF-AA25-1D0D824275AE}\PersistentAddinsRegistered]
    
    [HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{D3B41FA1-01E3-49AF-AA25-1D0D824275AE}\PersistentAddinsRegistered\{89BCB740-6119-101A-BCB7-00DD010655AF}]
    @="{5A98B233-3C59-4B31-944C-0E560D85E6C3}"
    
    [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Classes\CLSID\{D3B41FA1-01E3-49AF-AA25-1D0D824275AE}]
    @="Office Open XML Format Word Persistent Handler"
    
    [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Classes\CLSID\{D3B41FA1-01E3-49AF-AA25-1D0D824275AE}\PersistentAddinsRegistered]
    
    [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Classes\CLSID\{D3B41FA1-01E3-49AF-AA25-1D0D824275AE}\PersistentAddinsRegistered\{89BCB740-6119-101A-BCB7-00DD010655AF}]
    @="{5A98B233-3C59-4B31-944C-0E560D85E6C3}"
    
    [HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{5A98B233-3C59-4B31-944C-0E560D85E6C3}\InprocServer32]
    @="C:\\Program Files (x86)\\Common Files\\microsoft shared\\Filters\\offfiltx.dll"
    "ThreadingModel"="Both"
    
    [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Classes\CLSID\{5A98B233-3C59-4B31-944C-0E560D85E6C3}\InprocServer32]
    @="C:\\Program Files (x86)\\Common Files\\microsoft shared\\Filters\\offfiltx.dll"
    "ThreadingModel"="Both"
    
    
    [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Classes\CLSID\{D3B41FA1-01E3-49AF-AA25-1D0D824275AE}\PersistentAddinsRegistered\{89BCB740-6119-101A-BCB7-00DD010655AF}]
    @="{5A98B233-3C59-4B31-944C-0E560D85E6C3}"
    

答案 1 :(得分:3)

使用Windows注册表脚本扩展Rui应答3种文件格式(Word,Excel,PowerPoint)。希望,对于某人来说,安全时间会很好:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\.docx\PersistentHandler]
@="{D3B41FA1-01E3-49AF-AA25-1D0D824275AE}"
[HKEY_CLASSES_ROOT\.pptx\PersistentHandler]
@="{4F46F75F-199F-4C63-8B7D-86D48FE7970C}"
[HKEY_CLASSES_ROOT\.xlsx\PersistentHandler]
@="{4887767F-7ADC-4983-B576-88FB643D6F79}"


[HKEY_CLASSES_ROOT\.docm\PersistentHandler]
@="{D3B41FA1-01E3-49AF-AA25-1D0D824275AE}"
[HKEY_CLASSES_ROOT\.pptm\PersistentHandler]
@="{4F46F75F-199F-4C63-8B7D-86D48FE7970C}"
[HKEY_CLASSES_ROOT\.xlsm\PersistentHandler]
@="{4887767F-7ADC-4983-B576-88FB643D6F79}"

[HKEY_CLASSES_ROOT\.dotx\PersistentHandler]
@="{D3B41FA1-01E3-49AF-AA25-1D0D824275AE}"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.docm\PersistentHandler]
@="{D3B41FA1-01E3-49AF-AA25-1D0D824275AE}"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.docx\PersistentHandler]
@="{D3B41FA1-01E3-49AF-AA25-1D0D824275AE}"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.pptm\PersistentHandler]
@="{4F46F75F-199F-4C63-8B7D-86D48FE7970C}"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.pptx\PersistentHandler]
@="{4F46F75F-199F-4C63-8B7D-86D48FE7970C}"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.xlsm\PersistentHandler]
@="{4887767F-7ADC-4983-B576-88FB643D6F79}"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.xlsx\PersistentHandler]
@="{4887767F-7ADC-4983-B576-88FB643D6F79}"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.dotx\PersistentHandler]
@="{D3B41FA1-01E3-49AF-AA25-1D0D824275AE}"

[HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{D3B41FA1-01E3-49AF-AA25-1D0D824275AE}]
@="Office Open XML Format Word Persistent Handler"
[HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{4F46F75F-199F-4C63-8B7D-86D48FE7970C}]
@="Office Open XML Format PowerPoint Persistent Handler"
[HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{4887767F-7ADC-4983-B576-88FB643D6F79}]
@="Office Open XML Format Excel Persistent Handler"

[HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{D3B41FA1-01E3-49AF-AA25-1D0D824275AE}\PersistentAddinsRegistered]
[HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{4F46F75F-199F-4C63-8B7D-86D48FE7970C}\PersistentAddinsRegistered]
[HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{4887767F-7ADC-4983-B576-88FB643D6F79}\PersistentAddinsRegistered]

[HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{D3B41FA1-01E3-49AF-AA25-1D0D824275AE}\PersistentAddinsRegistered\{89BCB740-6119-101A-BCB7-00DD010655AF}]
@="{5A98B233-3C59-4B31-944C-0E560D85E6C3}"
[HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{4F46F75F-199F-4C63-8B7D-86D48FE7970C}\PersistentAddinsRegistered\{89BCB740-6119-101A-BCB7-00DD010655AF}]
@="{DDFE337F-4987-4EC8-BDE3-133FA63D5D85}"
[HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{4887767F-7ADC-4983-B576-88FB643D6F79}\PersistentAddinsRegistered\{89BCB740-6119-101A-BCB7-00DD010655AF}]
@="{F90DFE0C-CBDF-41FF-8598-EDD8F222A2C8}"


[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Classes\CLSID\{D3B41FA1-01E3-49AF-AA25-1D0D824275AE}]
@="Office Open XML Format Word Persistent Handler"
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Classes\CLSID\{4F46F75F-199F-4C63-8B7D-86D48FE7970C}]
@="Office Open XML Format PowerPoint Persistent Handler"
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Classes\CLSID\{4887767F-7ADC-4983-B576-88FB643D6F79}]
@="Office Open XML Format Excel Persistent Handler"

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Classes\CLSID\{D3B41FA1-01E3-49AF-AA25-1D0D824275AE}\PersistentAddinsRegistered]
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Classes\CLSID\{4F46F75F-199F-4C63-8B7D-86D48FE7970C}\PersistentAddinsRegistered]
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Classes\CLSID\{4887767F-7ADC-4983-B576-88FB643D6F79}\PersistentAddinsRegistered]

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Classes\CLSID\{D3B41FA1-01E3-49AF-AA25-1D0D824275AE}\PersistentAddinsRegistered\{89BCB740-6119-101A-BCB7-00DD010655AF}]
@="{5A98B233-3C59-4B31-944C-0E560D85E6C3}"
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Classes\CLSID\{4F46F75F-199F-4C63-8B7D-86D48FE7970C}\PersistentAddinsRegistered\{89BCB740-6119-101A-BCB7-00DD010655AF}]
@="{DDFE337F-4987-4EC8-BDE3-133FA63D5D85}"
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Classes\CLSID\{4887767F-7ADC-4983-B576-88FB643D6F79}\PersistentAddinsRegistered\{89BCB740-6119-101A-BCB7-00DD010655AF}]
@="{F90DFE0C-CBDF-41FF-8598-EDD8F222A2C8}"

[HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{5A98B233-3C59-4B31-944C-0E560D85E6C3}\InprocServer32]
@="C:\\Program Files (x86)\\Common Files\\microsoft shared\\Filters\\offfiltx.dll"
"ThreadingModel"="Both"
[HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{DDFE337F-4987-4EC8-BDE3-133FA63D5D85}\InprocServer32]
@="C:\\Program Files (x86)\\Common Files\\microsoft shared\\Filters\\offfiltx.dll"
"ThreadingModel"="Both"
[HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{4887767F-7ADC-4983-B576-88FB643D6F79}\InprocServer32]
@="C:\\Program Files (x86)\\Common Files\\microsoft shared\\Filters\\offfiltx.dll"
"ThreadingModel"="Both"

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Classes\CLSID\{5A98B233-3C59-4B31-944C-0E560D85E6C3}\InprocServer32]
@="C:\\Program Files (x86)\\Common Files\\microsoft shared\\Filters\\offfiltx.dll"
"ThreadingModel"="Both"
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Classes\CLSID\{DDFE337F-4987-4EC8-BDE3-133FA63D5D85}\InprocServer32]
@="C:\\Program Files (x86)\\Common Files\\microsoft shared\\Filters\\offfiltx.dll"
"ThreadingModel"="Both"
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Classes\CLSID\{F90DFE0C-CBDF-41FF-8598-EDD8F222A2C8}\InprocServer32]
@="C:\\Program Files (x86)\\Common Files\\microsoft shared\\Filters\\offfiltx.dll"
"ThreadingModel"="Both"


[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Classes\CLSID\{D3B41FA1-01E3-49AF-AA25-1D0D824275AE}\PersistentAddinsRegistered\{89BCB740-6119-101A-BCB7-00DD010655AF}]
@="{5A98B233-3C59-4B31-944C-0E560D85E6C3}"
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Classes\CLSID\{4F46F75F-199F-4C63-8B7D-86D48FE7970C}\PersistentAddinsRegistered\{89BCB740-6119-101A-BCB7-00DD010655AF}]
@="{DDFE337F-4987-4EC8-BDE3-133FA63D5D85}"
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Classes\CLSID\{4F46F75F-199F-4C63-8B7D-86D48FE7970C}\PersistentAddinsRegistered\{89BCB740-6119-101A-BCB7-00DD010655AF}]
@="{F90DFE0C-CBDF-41FF-8598-EDD8F222A2C8}"

答案 2 :(得分:1)

正如您所发现的,没有一种支持的方法可以在64位系统上安装32位过滤器,请参阅本文末尾附近的MSFT回复:How can I install the 32 bit Office Filter Pack on a 64 bit system?

在那里建议的解决方案是创建一个辅助程序来进行过滤并将数据传递回主应用程序。

在Windows中有多种方法可以使用IPC,因此请选择适合您的方法。我创建了一个使用WCF轻松创建远程代理的服务,该操作使操作对主应用程序非常透明。