Знание версии MS-Office на вашем компьютере с использованием Java - PullRequest
1 голос
/ 28 февраля 2010

Есть ли способ узнать, какая версия MS-Office у меня есть на моем компьютере с использованием Java?

Ответы [ 3 ]

2 голосов
/ 28 февраля 2010

Я могу предложить вам немного сложную работу:

Вы можете легко получить список установленных шрифтов. Разные версии MS-Office имеют разные уникальные шрифты. Вам необходимо указать, какие шрифты соответствуют какой версии, и она может дать вам некоторую информацию (например, если вы видите «Constantia», то это офис 2007).

1 голос
/ 27 августа 2013

Одним из способов является вызов команд Windows ASSOC и FTYPE, захват выходных данных и их анализ для определения установленной версии Office.

C:\Users\me>assoc .xls
.xls=Excel.Sheet.8

C:\Users\me>ftype Excel.sheet.8
Excel.sheet.8="C:\Program Files (x86)\Microsoft Office\Office12\EXCEL.EXE" /e

Java-код:

import java.io.*;
public class ShowOfficeInstalled {
    public static void main(String argv[]) {
      try {
        Process p = Runtime.getRuntime().exec
          (new String [] { "cmd.exe", "/c", "assoc", ".xls"});
        BufferedReader input =
          new BufferedReader
            (new InputStreamReader(p.getInputStream()));
        String extensionType = input.readLine();
        input.close();
        // extract type
        if (extensionType == null) {
          System.out.println("no office installed ?");
          System.exit(1);
        }
        String fileType[] = extensionType.split("=");

        p = Runtime.getRuntime().exec
          (new String [] { "cmd.exe", "/c", "ftype", fileType[1]});
        input =
          new BufferedReader
            (new InputStreamReader(p.getInputStream()));
        String fileAssociation = input.readLine();
        // extract path
        String officePath = fileAssociation.split("=")[1];
        System.out.println(officePath);
        //
        // output if office is installed :
        //  "C:\Program Files (x86)\Microsoft Office\Office12\EXCEL.EXE" /e
        // the next step is to parse the pathname but this is left as an exercise :-)
        //
      }
      catch (Exception err) {
        err.printStackTrace();
      }
    }
  }

ref: Определение установленной версии Office

1 голос
/ 28 февраля 2010

Есть ли в установке ms office определенный файл, который отличает одну версию от другой? Если да, вы можете прочитать это и обнаружить.

В противном случае вам придется сделать неприятный интерфейс с возможно установленными (к / с) элементами управления MS Office ActiveX и запросить номер версии.

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