2009-09-01 12 views

Répondre

6

Si vous n'avez pas besoin présente version Office spécifique, vous pouvez vérifier en regardant le chemin App à l'une des applications de bureau (winword.exe par exemple):

private static bool IsOfficeInstalled() 
{ 
    RegistryKey key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\Winword.exe"); 
    if (key!= null) 
    { 
     key.Close(); 
    } 
    return key != null; 
} 
+0

Est-ce que le chemin de Registre ci-dessus est fiable? Voir [ici] (http://stackoverflow.com/questions/3266675/how-to-detect-installed-version-of-ms-office/3267832#3267832). –

+0

@MassoodKhaari Je ne sais pas à quel point c'est fiable, mais c'est toujours valide sur les deux systèmes auxquels j'ai accès (Win7/Office2010 et Win8.1/Office2013). –

+1

OK. Ca ** probablement ** fonctionne toujours. Mais il est plus agréable d'utiliser la clé de registre officiellement mentionnée dans ce lien. –

0

Vous pourriez racine autour dans le registre: -

HKEY_LOCAL_MACHINE \ Software \ Microsoft \ office \ nn.n \ Word \ InstallRoot

le nn.n sera la version installée 11.0 ou 12.00

0

essayez de créer l'objet avec la version qui s'y trouve et si elle renvoie une erreur, il est évident que le MSOffice que vous cherchez n'est pas installé.

Essayez quelque chose comme ci-dessous

try 
{ 
    //try creating the object here. 

} 
catch(Exception ex) 
{ 
    // You can decide that the 3rd party instance required is not installed 

} 

Parce que tous les clients ne seraient pas vous donner la permission de lire le registre

Questions connexes