نوشته شده توسط
ژیار رحیمی
بصورت زیر کدهاتو اصلاح کن ببین به نتیجه میرسی حتما ویژوال استودیو در مد run as administrator باشه تا مجوز های لازم رو داشته باشی.
var registryView = Environment.Is64BitOperatingSystem ? RegistryView.Registry64 : RegistryView.Registry32;
using (var hkcu = RegistryKey.OpenBaseKey(RegistryHive.CurrentUser, registryView))
{
var clsidKey = hkcu.OpenSubKey(@"SOFTWARE\Classes\CLSID",false);
if (clsidKey != null)
foreach (var Name in clsidKey.GetValueNames())
if (Name == "مقدار مورد نظر")
{
//نوشتن کدهای لازم
}
}
برنامه run as adminstator اجرا می شه باز هم وقتی به اون کلید می رسه همون ارور Requested registry access is not allowed
private TreeNode GetCurrentUser(string KeyName, TreeNode Node)
{
var registryView = Environment.Is64BitOperatingSystem ? RegistryView.Registry64 : RegistryView.Registry32;
using (var hkcu = RegistryKey.OpenBaseKey(RegistryHive.CurrentUser, registryView))
{
var r = hkcu.OpenSubKey(KeyName, false);
if (r!=null & r.SubKeyCount != 0)
{
string[] Key = r.GetSubKeyNames();
foreach (string K in Key)
{
TreeNode N = new TreeNode();
N.Text = K;
TreeNode e = new TreeNode();
e = GetCurrentUser(KeyName + "\\" + K, N);
Node.Nodes.Add(e);
}
}
}
return Node;
}