2012-02-07 13 views
6

Potrzebuję użyć interfejsu IFilter z 32-bitowej aplikacji na systemach Windows x64. Jest to łatwe dla plików .doc, ponieważ offfilt.dll obsługuje oba typy kompilacji. Jednak muszę również uzyskać zwykły tekst z plików .docx i innych plików. Najpierw rozwiązaniem jest instalacja Microsoft Filter Packs. Jednak zainstaluje się tylko wersja x64 ... co oznacza, że ​​moja 32-bitowa aplikacja nie może ich użyć. Działają świetnie w 32-bitowych systemach Windows.Używanie IFilter z 32-bitowej aplikacji na systemie x64

Czy ktoś znalazł sposób na obejście tego?

Odpowiedz

1

Jak się dowiedziałeś, nie ma obsługiwanego sposobu instalacji 32-bitowych filtrów w systemie 64-bitowym, zobacz odpowiedź od MSFT pod koniec tego posta: How can I install the 32 bit Office Filter Pack on a 64 bit system?.

Zaproponowane rozwiązanie polega na utworzeniu programu pomocniczego do filtrowania i przekazania danych z powrotem do głównej aplikacji.

Istnieje wiele sposobów na wykonanie IPC w systemie Windows, więc wybierz ten, który działa. Stworzyłem usługę, która używa WCF do łatwego tworzenia zdalnego serwera proxy, który czyni operację bardzo przejrzystą dla głównej aplikacji.

7

Znalazłem sposób na zainstalowanie pakietów filtrów docx 32bits w 64-bitowym systemie operacyjnym. Do innych formatów plików jest podobny.

  1. Zainstaluj zestaw filtrów 32-bitowy w systemie 32-bitowym;
  2. Kopiowanie IFilters pliki katalogu „C: \ Program Files \ Common Files \ Microsoft Shared \ Filters” z 32-bitowych systemów operacyjnych do katalogu „C: \ Program Files (x86) \ Common Files \ Microsoft Shared \ Filtry "w 64-bitowym systemie operacyjnym.
  3. Skopiuj poniższe linie do pliku „ifilter.reg” i uruchom plik: zawartość

File:

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}" 
+0

Dziękuję bardzo. Mi to pasuje – nvtthang

3

rozszerzającej Rui odpowiedź z oknami skrypt rejestru na 3 formatach (Word, Excel, PowerPoint). Mam nadzieję, że czas na kogoś będzie bezpieczny, ponieważ zadziałało dobrze:

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}" 
Powiązane problemy