我有一个 VB.NET 应用程序,它生成 KML 以在 Google 地球中显示。我只是对创建的 .KML 文件执行 Process.Start。问题显然是“如果没有安装 Google 地球会怎样”,而这正是我想要避免的。
有没有办法在 Windows(不是网络)中确定是否安装了 Google 地球?如果没有,我会提示他们这是必需的,如果是,我将继续该过程。
谢谢你。
我有一个 VB.NET 应用程序,它生成 KML 以在 Google 地球中显示。我只是对创建的 .KML 文件执行 Process.Start。问题显然是“如果没有安装 Google 地球会怎样”,而这正是我想要避免的。
有没有办法在 Windows(不是网络)中确定是否安装了 Google 地球?如果没有,我会提示他们这是必需的,如果是,我将继续该过程。
谢谢你。
检查注册表中的 HKEY_CURRENT_USER\Software\Google\Google Earth Plus\ ...我自己从来没有这样做过,但这似乎是合乎逻辑的。
查看 Google 地球是否是 .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.");
检查 %program files%/Google Earth 文件夹是否存在。
看看您是否可以找到一些 Google 地球在安装时创建的注册表项(卸载时会删除)。如果它们存在,该程序很可能也存在。与文件或文件夹相比,用户篡改注册表的可能性要小得多......
在安装程序时,要求用户导航到 Google Earth .exe 所在的文件夹。
如果他们在您的应用程序之后安装 Google 地球并尝试启动 KML 文件,则在您启动 KML 之前提示用户导航到他们的 Google 地球文件夹。不过,不要要求他们安装 Google 地球,因为他们可能有另一个应用程序与他们想要使用的 KML 相关联。