2009-09-24 60 views
0

我有一個VB.NET應用程序可生成KML以在Google地球內顯示。我只是在創建的.KML文件上執行一個Process.Start。問題顯然是「如果Google地球沒有安裝」,那就是我想要避免的。確定是否安裝了Google地球(在Windows上)

有沒有一種方法,在Windows中(不是網絡)來確定是否安裝了Google地球?如果沒有,我會提醒他們這是必需的,如果是這樣,我會繼續處理。

謝謝。

+0

如果什麼用戶,他們使用查看KML數據另一個應用程序?檢查文件類型註冊到哪個(如果有的話)應用程序並使用它會更好嗎?看到這個博客的一個很好的例子 - http://windevblog.blogspot.com/2008/09/get-default-application-in-windows-xp.html – Fraser 2011-02-24 15:10:40

回答

1

檢查註冊表HKEY_CURRENT_USER \ Software \ Google \ Google Earth Plus \ ...從來沒有這樣做過,但它似乎符合邏輯。

+0

同意。你一定要在註冊表中查看它是否已安裝。 +1 – Morinar 2009-09-24 22:43:52

0

檢查%程序文件%/ Google Earth文件夾是否存在。

+2

如果用戶指定一個非標準的安裝路徑呢? – 2009-09-24 22:23:57

0

查看您是否可以找到Google Earth在安裝時創建的一些註冊表項(並在未安裝時刪除)。如果它們存在,程序很可能也會。並且用戶篡改註冊表的可能性要低於文件或文件夾...

0

安裝您的程序時,請求用戶導航到Google地球.exe所在的文件夾。

如果他們在您的應用程序之後安裝Google地球並嘗試啓動KML文件,請在啓動KML之前提示用戶導航到其Google地球文件夾。但是,不要求他們安裝Google地球,因爲他們可能有另一個與他們想要使用的KML關聯的應用。

1

看看谷歌地球是.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."); 
相關問題