Нужно программно сменить разрешения для ветки реестра, а потом вернуть исходные разрешения и владельца на место. Я админ, но владельцем ветки не являюсь. В разрешениях текущего владельца меня также нет. Казалось бы все просто RegOpenKeyEx + RegGetKeySecurity + RegSetKeySecurity Админ может сделать себя владельцем через RegOpenKeyEx (,,,WRITE_OWNER,); RegGetKeySecurity (,OWNER_SECURITY_INFORMATION,,); RegSetKeySecurity (,OWNER_SECURITY_INFORMATION,,); Но мне также нужно предварительно считать предыдущиего владельца и его разрешения. Чтоб считать инфу нужны права READ_CONTROL. А сделать RegOpenKeyEx с этим флагом может только текущий владелец, либо должны быть разрешения. Тупик...
MSDN говорит иное Код (Text): To read the owner, group, or discretionary access control list (DACL) from the key's security descriptor, the calling process must have been granted READ_CONTROL access when the handle was opened. To get READ_CONTROL access, the caller must be the owner of the key or the key's DACL must grant the access.