2012-03-12 34 views
5

自分のコンピュータにSkypeがインストールされているかどうかを確認する方法を修正しようとしました。私はSkypeは私が Skypeがインストールされていることを確認してください

  • 私の方法は、私のインストールされたプログラムを見つけたが、それができる私のインストールされたプログラムのすべてをループする方法を修正した
  • 自分のコンピュータにインストールされている

    1. :私は固定これは、/を思い付きますそれはインストールされているが、スカイプを見つけることはありません。しかし、私の方法は、同じディレクトリにある他のプログラムを見つけます。

    Skypeがコンピュータにインストールされているかどうかを確認する方法はありますか?

    私が使用した方法は、このいずれかにsimillrarです:

    Method to loop through all installed programs

  • 答えて

    6

    ただ、レジストリを使用します。

    using Microsoft.Win32; 
    
        //Function uses Microsoft.Win32 to check registry value of 
        //HKEY_CURRENT_USERSoftwareSkypePhoneSkypePath and returns false if 
        //the key is null 
        private bool isSkypeUser() 
        { 
         RegistryKey skype = Registry.CurrentUser.OpenSubKey(@"SoftwareSkypePhone"); 
    
         if (skype != null && skype.GetValue("SkypePath") != null) 
         { 
          return true; 
         } 
         else 
         { 
          return false; 
         } 
        } 
    

    http://brcline.com/blog/?tag=skype

    EDIT:

    Skypeのショートカットまたはフォルダを検索するStartMenuフォルダをループすることで回避できます。次のSpecialFolder列挙を使用する必要があります。

    var startMenuPath = Environment.GetFolderPath(Environment.SpecialFolder.CommonPrograms) 
    

    +1

    これは機能する場合があります。アンインストール後にレジストリ値が削除されていることを確認してください。さもなければ、偽陽性を得るかもしれません。 –

    +0

    私はその方法を試しましたが、それは私のためには機能しません..私は本当に理由を知っていました... @ssgレジストリ値がまだ存在するかどうかをどうやって確認しますか? –

    +1

    Skypeをコンピュータからアンインストールして、値が保持されているか削除されているかを確認してください。その方法が続くと動作しません。 Skypeに関連する他のレジストリキーを試すことができます。 SysinternalsのProcMonを使用してレジストリアクティビティを監視できます。 –

    関連する問題