Обнаружение установленной версии Excel (и пакетов обновления) - PullRequest
5 голосов
/ 13 мая 2009

Мне нужно иметь возможность определять, какая версия Excel установлена ​​на моем компьютере, из некоторого кода .NET, который я разрабатываю. В настоящее время я использую Application.Version для этого, но он не дает мне информации о пакетах обновления.

Я бы предпочел держаться подальше от чего-то подобного: http://www.mvps.org/access/api/api0065.htm

Управляемый код приветствуется!

Ответы [ 4 ]

6 голосов
/ 13 мая 2009
Public Shared Function GetExcelVersion() As Integer
    Dim excel As Object = Nothing
    Dim ver As Integer = 0
    Dim build As Integer
    Try
        excel = CreateObject("Excel.Application")
        ver = excel.Version
        build = excel.Build
    Catch ex As Exception
        'Continue to finally sttmt
    Finally
        Try
            Marshal.ReleaseComObject(excel)
        Catch
        End Try
        GC.Collect()
    End Try
    Return ver
End Function

Возвращает 0, если Excel не найден.

2 голосов
/ 06 октября 2010

Вы можете проверить пути к приложениям в реестре для пути к exe, а затем получить его версию: Смотри http://www.codeproject.com/KB/office/getting_office_version.aspx

2 голосов
/ 13 мая 2009

К сожалению, такой подход является единственным надежным подходом. Даже Microsoft предлагает использовать похожую технику (это для проверки вручную, но концепция идентична).

Если вы хотите сделать это в управляемом коде, я бы предложил просто перенести код из вашей ссылки и создать класс, который легко расширяется при выпуске новых пакетов обновления.

0 голосов
/ 13 мая 2009

Хотя этот подход не является надежным, это единственный способ, о котором я знаю.

Имейте в виду, вам не нужно проверять точное совпадение. Вы можете использовать сравнения по отдельным значениям, чтобы увидеть, является ли у вас версия, например, SP1 или новее. вы знаете, что это новее, если номер версии больше или равен «11.0.6355.0» (вам нужно будет выполнить сравнение)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...