PDA

View Full Version : سوال: تشخیص نصب بودن برنامه با رجیستری



Fire God
یک شنبه 22 بهمن 1391, 13:23 عصر
می خوام چک کنم ببینم مثلا برنامه ی یاهو نصبه یا چه ورژنی نصبه . میدونم از مسیر رجیستری زیر باید استفاده کرد ولی نمی دونم چگونه . لطفا راهنمایی کنید >؟
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Curr entVersion\Uninstall

plus
یک شنبه 22 بهمن 1391, 14:03 عصر
اگه با Uninstall کردن نرم افزار مورد نظر، کلیدی که در این شاخه ساخته شده پاک بشه (میتونید چک کنید)، میتونین با بررسی وجود کلیک، چک کنید ببینید برنامه مورد نظرتون نصب هست یا نه.یاهو مسنجر، کلیدی در آدرس


HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Curr entVersion\Uninstall\Yahoo! Messenger

برای کار با رجستری هم از کلاس System.Win32.Registry استفاده کنید..

Fire God
یک شنبه 22 بهمن 1391, 14:17 عصر
خوب برای نود 32 و بعضی دیگر از این آدرس نمیشه استفاده کرد چون تو هر ویندوز مسیرش عوض میشه
مثلا تو ویندوز من مسیرش اینه : HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Curr entVersion\Uninstall\{5A2257F8-29C5-4506-9E44-0C423A6425B2}
تو به ویندوز دیگهه قسمت آخرش عوض میشه

Mahmoud.Afrad
یک شنبه 22 بهمن 1391, 16:25 عصر
داخل هر subkey مقدار کلید DisplayName رو بخونید:

string registry_key = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstal l";
using (Microsoft.Win32.RegistryKey key = Registry.LocalMachine.OpenSubKey(registry_key))
{
foreach (string subkey_name in key.GetSubKeyNames())
{
using (RegistryKey subkey = key.OpenSubKey(subkey_name))
{
object obj = subkey.GetValue("DisplayName");
if (obj != null)
{
listBox1.Items.Add(obj);
}
}
}

listBox1.Sorted = true;
}

ordebehesht
یک شنبه 22 بهمن 1391, 17:05 عصر
http://barnamenevis.org/showthread.php?377708-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-Registry

ببین به دردت میخوره

Fire God
دوشنبه 23 بهمن 1391, 22:22 عصر
در این روش همه ی زیر اخه های خوانده میشوند به جز آنهایی که که با }{ شروع میشوند مثلا
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Curr entVersion\Uninstall\{5A2257F8-29C5-4506-9E44-0C423A6425B2}
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Curr entVersion\Uninstall\{5481215F8-54649-4506-4Y45-744549478465}
برای این مشکل چه کنم ؟؟

Mahmoud.Afrad
دوشنبه 23 بهمن 1391, 22:49 عصر
در این روش همه ی زیر اخه های خوانده میشوند به جز آنهایی که که با }{ شروع میشوند ...
برای این مشکل چه کنم ؟؟
اگر به کد دقت می کردید متوجه میشدید که اونها رو هم چک میکنه. وارد همه کلیدها(حتی guid ها ، همون هایی که {} دارند) میشه و نام رو بدست میاره.
شک دارید خط افزودن به لیست باکس رو به اینصورت بنویسید:
listBox1.Items.Add(subkey_name + "\t\t" + obj);

Fire God
دوشنبه 23 بهمن 1391, 23:29 عصر
آره درسته
ولی نمیدونم چرا نود 32 را نمیتونه بخونه
الان امتحان کردم از این آدرس هم هیچ کدوم را نمیتونه بخونه
SOFTWARE\ESET\ESET Security\CurrentVersion\Info
مشکل از چیست ؟؟