Проверьте, установлен ли Skype


Я попытался исправить метод, который проверяет, установлен ли на компьютере пользователя Skype. Это я исправил / придумал:

  1. У меня на компьютере установлен Skype
  2. я исправил метод, который циклически проходит через все мои установленные программы
  3. Мой метод находит мои установленные программы, но он не может найти skype, хотя он установлен. Но мой метод находит другие программы, которые находятся в том же каталоге.

Есть ли у кого-нибудь идеи о том, как проверить, является ли Skype установлен на компьютере?

Метод, который я использовал, аналогичен этому:

Метод перебора всех установленных программ

1 5

1 ответ:

Просто используйте реестр:

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

Редактировать:

Грязный обходной путь состоит в том, чтобы перебирать папки StartMenu, ища ярлык Skype или папку. Вы должны использовать следующее перечисление SpecialFolder:

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

Надеюсь, это поможет!