Доступ к ограниченным разделам реестра Windows на C#C#

Место общения программистов C#
Ответить
Anonymous
 Доступ к ограниченным разделам реестра Windows на C#

Сообщение Anonymous »

Я работаю над кодом C#, который обращается к реестру Windows для получения информации, связанной с USB, в основном USBSTOR. Если мы попытаемся получить доступ к свойствам каждой записи USBSTOR, доступ будет ограничен (даже для администраторов).
[img]https: //i.sstatic.net/UDLh36sE.png[/img]

Я использую класс Microsoft.Win32.Registry для запроса необходимой информации, что дает нам возможность "Брать Право собственности" на ключи реестра при открытии.

Код: Выделить всё

Microsoft.Win32.Registry.LocalMachine.OpenSubKey("SYSTEM\ControlSet001\Enum\USBSTOR\CdRom&Ven_TS8XDVDR&Prod_Transcend&Rev_TW00\112233445568&0\Properties", RegistryKeyPermissionCheck.ReadWriteSubTree, RegistryRights.TakeOwnership);
В большинстве случаев это работает нормально, но Microsoft.Win32 не предоставляет возможности для чтения такой информации, как время последней записи и т. д.
Быстрый поиск и ChatGPT показали, что мы можем использовать низкоуровневый Windows API, чтобы стать владельцем, а затем прочитать необходимую информацию, но предполагается, что мы можем открыть ключ реестра, используя

Код: Выделить всё

(int)RegOpenKeyEx(hKey, subKey, 0, KEY_ALL_ACCESS, ref hKeyResult);
В моем случае при открытии ключа темы возникает ошибка

Код: 5 (0x5) (ERROR_ACCESS_DENIED)

Как лучше всего обойти эти ограничения и запросить необходимые данные?

Подробнее здесь: https://stackoverflow.com/questions/792 ... in-c-sharp
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»