Question

J'ai une application VB.NET qui génère KML pour afficher au sein de Google Earth. Je fais simplement un Process.Start sur le fichier .KML créé. Le problème est évidemment « si Google Earth n'est pas installé » et c'est ce que je veux éviter.

Est-il possible, dans Windows, (non Web) pour déterminer si Google Earth est installé? Sinon, je les invite qui est nécessaire, le cas échéant, je vais poursuivre le processus.

Merci.

Était-ce utile?

La solution

Vérifiez le Registre pour HKEY_CURRENT_USER \ Software \ Google \ Google Earth Plus \ ... jamais fait moi-même, mais il semble logique.

Autres conseils

Voyez si Google Earth est le gestionnaire des fichiers .kml:

C #

RegistryKey key = RegistryKey.LocalMachine.OpenSubKey(@"SOFTWARE\Classes\.kml");
if(key != null)
{
    string kmlHandler = key.GetValue("", "None");
    if(kmlHandler == "None")
    {
        MessageBox.Show("Google Earth not installed.");
    }
}
else
    MessageBox.Show("Google Earth not installed.");

Vérifiez si les fichiers de programme%% / Google dossier Google Earth existe.

Voyez si vous pouvez trouver des entrées de registre que Google Earth crée lors de l'installation (et supprime quand désinstallée). Si elles existent, le programme le plus fait probablement trop. Et les utilisateurs sont beaucoup moins susceptibles de falsifier le registre que des fichiers ou des dossiers ...

Sur l'installation de votre programme, demander à l'utilisateur de naviguer dans le dossier où le fichier .exe Google Earth est situé.

S'ils installent Google Earth après votre application et essayez de lancer un fichier KML, puis invite l'utilisateur à accéder à leur dossier Google Earth avant de lancer le KML. Ne pas les obliger à avoir installé Google Earth, cependant, car ils peuvent avoir une autre application associée à des fichiers KML qu'ils veulent utiliser.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top