ただ、レジストリを使用します。
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)
これは機能する場合があります。アンインストール後にレジストリ値が削除されていることを確認してください。さもなければ、偽陽性を得るかもしれません。 –
私はその方法を試しましたが、それは私のためには機能しません..私は本当に理由を知っていました... @ssgレジストリ値がまだ存在するかどうかをどうやって確認しますか? –
Skypeをコンピュータからアンインストールして、値が保持されているか削除されているかを確認してください。その方法が続くと動作しません。 Skypeに関連する他のレジストリキーを試すことができます。 SysinternalsのProcMonを使用してレジストリアクティビティを監視できます。 –