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 deinstallierenNun 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":
-
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 ?