Office-Version ermitteln



  • Hallo Leutz,

    für ein aktuelles Projekt möchte ich sicher gehen, dass keine
    zu alte Office-Version installiert ist(< Office 2000). Nun suche ich verzweifelt
    nach einer Möglichkeit die auf dem PC vorhandene Office Version zu
    bekommen.

    Wie könnte das gehen? Muss ich mich an die Registry halten und alle
    Standardpfade von Office durchsuchen? Gibts da nicht auch was von Ratiopharm? 😃



  • Naja, nicht optimal, aber ich hole mir die Dateiinfo aus nem vorgegebenen Pfad
    und Werte dann aus: 11 = 2003, 10 = 2002 ...8 = Office 97 usw.

    Nur muss ich da eigentlich schon wissen um den richtigen Pfad zu bekommen,
    welche Version es ist ^^.... Also darf ich nen Sack voll Standardpfade probieren...toll.

    Wenn noch jemand ne andere Idee hat..bitte her damit.

    Greetz Lerty



  • HKEY_CURRENT_USER\Software\Microsoft\Office sollte normal auch die Versionsnummer stehen 😉



  • Jup, es steht auch in der Registry wie ich sehe. Aber dort stehen bei mir mehrere Ordner.
    Klar kann ich jetzt prüfen ob Ordner 11.0, 10.0 oder 9.0 vorhanden sind und je nachdem
    welche Zahl größer ist sagen..aha Office 2003..

    Aber es wäre halt schöner gewesen man würde die Version aus einem Pfad lesen
    können, der von Version zu Version konstant bleibt.

    Und wenn ich Office entferne? Löschen sich dann auch die Ordner aus der Registry?
    Das wäre ja mal interessant zu wissen. Hab nur grad keine Nerven
    das zu deinstallieren 😃

    Nun bleibt mir auch bei der Regsitrymethode nix anderes als zu enumerieren 😞



  • Meistens werden die Ordner nich gelöscht. Und ich vermute auch das Windows die absichtlich behält, dann nachguckt welche Ordner alles vorhanden sind, und so sich noch mehr Kundeninformationen holt.

    Das war natürlich nicht ganz komplett vollständig total absolut ernst gemeint gewesen haben sein tun müssen wollen können 😉

    Mfg Ominion



  • Lerty schrieb:

    Und wenn ich Office entferne? Löschen sich dann auch die Ordner aus der Registry?

    Schätze mal nicht. Von daher ist das wohl nicht die beste Methode.



  • Gleich der erste Link bei der Suche nach "office version winapi":

    http://www.eknori.de/archives/63



  • Ist das nicht fast identisch mit:

    Pseudocode:

    if(RegOpenKeyEx( HKEY_LOCAL_MACHINE,"software\\microsoft\\office\\10.0",0,KEY_READ, &hKey) == ERROR_SUCCESS)
    {
    MessageBox("key ist existent");
    //.. jetzt noch den installpfad auslesen und mit fileversion prüfen
    //ob man nen wert zurück bekommt. z.B. 11 oder 10. Das ist dann die 
    //officeversion
    //kein wert = auch keine winword.exe in pfad gefunden...
    }
    

    😕 und nach der Methode die du gefunden hast hilfts leider wenig.
    Denn der InstallRoot ist immer vorhanden und in Path steht auch immer etwas
    drin! Um die Dateiversion kommt man definitiv nicht rum!



  • Hallo,

    InstallRoot ist IMHO nicht eindeutig.

    Wie wär's denn mit "HKCR\Excel.Application.CurVer" bzw. "HKCR\Winword.Application.CurVer"

    Oder zuerst den Pfad von excel.exe bzw. winword.exe bestimmen und dann die Version via GetFileVersionInfo auslesen.

    Den Pfad sollte man via ASSOC/FTYPE bzw. "HKCR\.xls" -> "HKCR\Excel.Sheet.8\Shell\Open\Command" bekommen oder auch via
    "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\xyz.exe"

    cu, Bernd



  • jetzt noch den installpfad auslesen und mit fileversion prüfen

    Er hat kaum was anderes vorgeschlagen... 😉



  • Hi,

    IMHO schon 😉

    Er braucht hierzu eine Schleife um alle möglichen Versionen abzuklappern.

    cu, Bernd



  • Gibts denn ne Beschreibung welche Nummer welches Office ist? 9 ist Office 97 usw ?


Log in to reply