2014-04-02 90 views
0

你好我正在搜索的是在系統中安裝的Outlook嗎?我在Java工作。我找到了一些鏈接,但我不能達到我的目標。我發現一種方法 「類型officeType = Type.GetTypeFromProgID(」Outlook.Application「);」,但我不知道我應該導入哪個包。 我寫下面的代碼,但它給了我錯誤。如何檢查outlook是否在系統中安裝或不使用java?

Type officeType = Type.GetTypeFromProgID("Outlook.Application"); 

if (officeType == null) 
{ 
    // Outlook is not installed. 
    // Show message or alert that Outlook is not installed. 
} 
else 
{ 
    // Outlook is installed.  
    // Continue your work. 
} 

有助於解決此問題。在此先感謝...

+0

谷歌搜索「GetTypeFromProgID」的第一個結果是http://msdn.microsoft.com/en-us/library/vstudio/system.type.gettypefromprogid。在java中使用* that *方法會遇到一些麻煩。 –

+0

@OlegEstekhin是否有可能使用java? –

回答

2

每個軟件在安裝過程中創建一個條目到Windows註冊表中。爲了找出是否安裝了任何軟件,您需要在Windows機器上掃描和搜索註冊表。您可以使用第三方Java API訪問Windows註冊表:jRegistryKey

樣例程序:

package your.pkg; 

import java.io.File; 
import java.util.Iterator; 

import ca.beq.util.win32.registry.RegistryKey; 
import ca.beq.util.win32.registry.RootKey; 

public class Test { 

    public static void main(String... args) throws Exception { 
     RegistryKey.initialize(Test.class.getResource("jRegistryKey.dll").getFile()); 
     RegistryKey key = new RegistryKey(RootKey.HKLM, "Software\\Microsoft\\Office\\<version>\\Outlook\\"); 
     for (Iterator<RegistryKey> subkeys = key.subkeys(); subkeys.hasNext();) { 
      RegistryKey subkey = subkeys.next(); 
      System.out.println(subkey.getName()); // You need to check here if there's anything which matches "Mozilla FireFox". 
     } 
    } 
} 

希望這有助於你。

+0

我正在使用Ubuntu操作系統..是否有可能? –

+1

不知道如何在Ubuntu上做到這一點。將很快找出並更新答案。 –

+0

我應該從http://sourceforge.net/projects/jregistrykey/postdownload?source=dlp下載嗎? –

相關問題