none
Acceso al registro denegado RRS feed

  • Pregunta

  • Hola.

    Necesito activar-desactivar el micrófono interno del Pc Portátil.

    Uso el siguiente código pero, me deniega el acceso;

    Para activarlo:

            Dim key As RegistryKey = Registry.LocalMachine
            Dim subkey As RegistryKey
            subkey = key.OpenSubKey("SOFTWARE\Microsoft\Windows\CurrentVersion\MMDevices\Audio\Capture\{01c843d1-67f2-4e58-998f-ccd1a09f1540}", True)
            subkey.SetValue("DeviceState", 1)'Activar
            subkey.Close()
            key.Close()

             

                

    Para desactivarlo:

            Dim key As RegistryKey = Registry.LocalMachine
            Dim subkey As RegistryKey
            subkey = key.OpenSubKey("SOFTWARE\Microsoft\Windows\CurrentVersion\MMDevices\Audio\Capture\{01c843d1-67f2-4e58-998f-ccd1a09f1540}", True)
            subkey.SetValue("DeviceState", 10000001)'Desactivar
            subkey.Close()
            key.Close()

    Tengo Windows 10 Pro.

    Gracias por la ayuda que puedan prestarme.


    Rafael FM




    • Editado Rafael FM sábado, 28 de julio de 2018 14:18
    sábado, 28 de julio de 2018 14:17

Todas las respuestas

  • Navega hasta esa clave con el REGEDIT (ojo, el GUID puede ser distinto en distintos equipos), haz clic-derecho y selecciona "Permissions...". Verás que incluso para los Administradores solo tiene permiso de lectura, pero no de escritura. Por eso te sale el error de "Acceso denegado".

    Podrías concederle el permiso, pero es más complicado de lo que parece porque el propio Administrador no tiene permiso para cambiar los permisos en esa clave, así que tendrías que recurrir a usar PSEXEC para ejecutar como SYSTEM, o algún otro truco parecido. Y ya puestos a usar el PSEXEC, no te molestes en cambiarle el permiso, usa directamente el PSEXEC para cambiar el valor deseado. Y no, no te puedo escribir cuál es el comando que hay que ponerle al PSEXEC, que no me lo sé de memoria; requeriría investigar un poco para ver cómo se cambia una clave del registro por esa vía. En última instancia podrías compilar en un .exe el mismo código que ya tienes escrito en C# para cambiar esa clave, y pasarle al PSEXEC como argumento tu propio ejecutable, para que lo lance con permisos elevados.

    sábado, 28 de julio de 2018 15:44