Как определить, установлен ли MS Office 2007 SP2?
в am с помощью MS Word через OLE для создания документов из моего приложения. Я хочу предоставить пользователям, у которых установлен MS Office 2007 SP2, возможность сохранять документы в формате PDF. Это доступно только в SP2, и опция должна быть скрыта, если пакет обновления не установлен (и, конечно, также для пользователей предыдущих версий MS Office).
доступна ли эта информация в любом месте, например, в реестре или любом файле конфигурации?
6 ответов
не смог найти ничего полезного для вас, но вот что-то, что вы можете найти полезным.
версия Office хранится в реестре
HKEY_LOCAL_MACHINE \Software\Microsoft\Office.0\Common\productVersion
значение 12.0 изменяется для office 2003 и 2007. У этого ключа есть номер. Я думаю, что проверка этого номера для другой версии (с/без SP1/SP2) и посмотреть, есть ли разница sia.
для фактической версии infos, которые применяются к отдельным пакетам обновления, посмотрите на эту хорошо скрытую запись kb:
существуют различные плагины от Microsoft для предоставления функции печати в PDF:
- 2007 надстройка Microsoft Office: Microsoft Сохранить как PDF или XPS
- 2007 надстройка Microsoft Office: Microsoft Сохранить как PDF
- 2007 надстройка Microsoft Office: Microsoft Сохранить как XPS (не поставляется с поддержкой PDF)
и SP2 также устанавливает эти дополнения.
Я искал способ проверить, установлена ли функция PDF или нет. Этот следующий файл присутствует только в том случае, если функция PDF установлена (надстройкой или SP) на компьютере:
C:\Program Files\Common Files\Microsoft Shares\Office12\EXP_PDF.DLL
обновление устанавливается в следующем разделе реестра.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\00002109030000000000000000F01FEC\Patches\6D6C63B08D5FFAE4FB4934672A03DAB5
Ok, это немного поздно, но вы можете определить пакет обновления непосредственно из VBA без необходимости возиться с реестром. Очевидно, вам нужно будет обновить его как Microsoft updates Office.
используя страницы поддержки для разных версий off Office, вы можете получить номер сборки и использовать функцию для определения пакета обновления и т. д. Office 2007 показывает небольшие расхождения между различными приложениями в office, поэтому вам придется настроить как требуемый.
- Office 2007:http://support.microsoft.com/kb/928116
- Office 2010:http://support.microsoft.com/kb/2687455 (в середине страницы описаны номера сборки)
затем функция следующим образом выполнит работу для Excel Office 2007+:
Function DetermineExcelServicePack() As String
Dim sReturn As String
If Application.Version = "12.0" Then
If Application.Build < 6214 Then
sReturn = "Excel 2007, RTM"
ElseIf Application.Build < 6425 Then
sReturn = "Excel 2007, SP1"
ElseIf Application.Build < 6611 Then
sReturn = "Excel 2007, SP2"
Else
sReturn = "Excel 2007, SP3"
End If
ElseIf Application.Version = "14.0" Then
If Application.Build < 6029 Then
sReturn = "Excel 2010, RTM"
ElseIf Application.Build < 7015 Then
sReturn = "Excel 2010, SP1"
Else
sReturn = "Excel 2010, SP2"
End If
ElseIf Application.Version = "15.0" Then
sReturn = "Excel 2013, RTM"
Else
sReturn = "This version (" & Application.Version & "-" & Application.Build & ") is not supported by this function"
End If
DetermineExcelServicePack = sReturn
End Function
программно проверьте, является ли версия MSO.DLL-файл больше или равен :
"12.0.6425.1000"
Это значение для файла, если установлен SP2 и выше.