Как определить, установлен ли MS Office 2007 SP2? - PullRequest
6 голосов
/ 25 марта 2010

Я использую MS Word через OLE для создания документов из моего приложения. Я хочу дать пользователям, которые установили MS Office 2007 SP2, возможность сохранять документы в формате PDF. Это доступно только в пакете обновления 2 (SP2), и этот параметр следует скрыть, если пакет обновления не установлен (и, конечно, также для пользователей предыдущих версий MS Office).

Доступна ли эта информация где-либо, например, в реестре или в любом файле конфигурации?

Ответы [ 6 ]

4 голосов
/ 25 марта 2010

Не могу найти ничего полезного для вас, но вот кое-что, что вы могли бы найти полезным.

Версия Office хранится в реестре

HKEY_LOCAL_MACHINE \Software\Microsoft\Office\12.0\Common\productVersion

значение 12.0 изменяется для Office 2003 и 2007. Этот ключ имеет номер. Я думаю проверить этот номер для другой версии (с / без SP1 / SP2) и посмотреть, есть ли разница в sia.

2 голосов
/ 24 мая 2011

Информацию о реальных версиях, применимых к отдельным пакетам обновлений, можно найти в этой хорошо спрятанной записи kb:

http://support.microsoft.com/kb/928116

1 голос
/ 15 октября 2013

Хорошо, это немного поздно, но вы можете определить пакет обновления непосредственно из VBA без необходимости связываться с реестром. Очевидно, вам нужно будет обновить его, так как Microsoft обновляет Office.

Используя страницы поддержки для различных версий Office, вы можете получить номер сборки и использовать функцию для определения пакета обновления и т. Д. Office 2007 показывает небольшие расхождения между различными приложениями в офисе, поэтому вам придется настраивать при необходимости .

Тогда для 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
1 голос
/ 22 февраля 2011

Обновление установлено в следующем разделе реестра.

HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Installer \ UserData \ S-1-5-18 \ Products \ 00002109030000000000000000F01FEC \ Patches \ 6D6C63B08D5FFAE4FB4934672A03DAB5

1 голос
/ 03 июня 2010

Существуют различные плагины от 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
0 голосов
/ 11 марта 2014

Программно проверить, является ли версия файла MSO.DLL больше или равна:

"12.0.6425.1000"

Это значение для файла, если установлен пакет обновления 2 и выше.

...