با توجه به مقاله ای که گذاشتم از طریق کد زیر و با استفاده از رجیستری میشه نام برنامه های نصب شده رو جستجو کرد :
String srcPath = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uni nstall";
RegistryKey rk = Registry.LocalMachine.CreateSubKey(srcPath);
string[] programs = rk.GetSubKeyNames();
for (int i = 0; i < rk.SubKeyCount; i++)
{
String AppPath = srcPath + "\\" + programs[i];
RegistryKey regKeyAppRoot = Registry.LocalMachine.CreateSubKey(AppPath);
if (regKeyAppRoot.ValueCount > 0)
{
String name = (String)regKeyAppRoot.GetValue("DisplayName");
if (name == null)
{
regKeyAppRoot.Close();
continue;
}
if (name.Contains("Yahoo"))
{
MessageBox.Show(name);
}
}
regKeyAppRoot.Close();
}
استفاده های زیادی داره برای مثال میتونید قبل از اجرای برنامه ی جانبی نصب بودنش رو چک کنید در کد بالا نرم افزار یاهو چک شده ...
یا اگر دو برنامه مکمل هم نوشته اید میتونید چک کنید که برنامه اول یا دوم نصب هست یا نه ...