Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Escribir en registro de windows

Estas en el tema de Escribir en registro de windows en el foro de Visual Basic clásico en Foros del Web. Buenas tardes, compañeros por más que lo he intentado y buscado no consigo hacer lo que necesito. Necesito crear una entrada en el registro Dword ...
  #1 (permalink)  
Antiguo 06/08/2009, 10:44
Avatar de empardopo  
Fecha de Ingreso: abril-2004
Mensajes: 73
Antigüedad: 20 años
Puntos: 0
Escribir en registro de windows

Buenas tardes, compañeros

por más que lo he intentado y buscado no consigo hacer lo que necesito.

Necesito crear una entrada en el registro Dword con un valor en hexadecimal; el código que he colocado ha sido el siguiente:
Código:
rama = "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoDrives"
valor = "00000010"
Set Objeto = CreateObject("wscript.shell")
Objeto.regwrite rama, valor
El problema es que esto me crea un valor en el registro de los que pone una ab en rojo y si hago doble clic sobre la entrada en el registro creada no me da la opción de seleccionar un valor entre decimal y hexadecimal; necesito que la entrada creada en el registro sea de las de color azul.

No sé si me he explicado bien.

¿Alguna ide por favor?

Muchas gracias y un saludo
  #2 (permalink)  
Antiguo 06/08/2009, 11:48
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Escribir en registro de windows

Así:
Código vb:
Ver original
  1. Objeto.regWrite rama, 10, "REG_DWORD"
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 07/08/2009, 01:07
Avatar de empardopo  
Fecha de Ingreso: abril-2004
Mensajes: 73
Antigüedad: 20 años
Puntos: 0
Respuesta: Escribir en registro de windows

Muchas gracias por responder, al final la solución que encontré tras seguir probando y probando fue la siguiente:
Código:
Set Objeto = CreateObject("Wscript.shell") 'Setear el Objeto
    rama = "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoViewOnDrive"
    valor = "08388608"
    Set Objeto = CreateObject("wscript.shell")
    'y grabamos la rama y el valor (2 parametros separados por coma)
    Objeto.regwrite rama, valor, ("REG_DWORD")
    Set Objeto = Nothing
    
    Set Objeto = CreateObject("Wscript.shell") 'Setear el Objeto
    rama = "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoDrives"
    valor = "00000000"
    Set Objeto = CreateObject("wscript.shell")
    Objeto.regwrite rama, valor, ("REG_DWORD")
    Set Objeto = Nothing
Realmente, lo que hice es traducir el valor hexadecimal que quería meter por el valor decimal aunque lo sigo metiendo como string con la variable valor.

Muchas gracias compañeros

Nota: Por cierto, y a quién le pueda interesar este código que he dejado sirve para negar el acceso a la unidad X:\ mapeada
  #4 (permalink)  
Antiguo 12/08/2009, 13:58
 
Fecha de Ingreso: enero-2009
Mensajes: 54
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: Escribir en registro de windows

Comentas que esto es para negar acceso si en cambio yo quisiera ocultar una particion que seria lo que tengo que cambiar?

Saludos
  #5 (permalink)  
Antiguo 24/08/2009, 08:39
Avatar de empardopo  
Fecha de Ingreso: abril-2004
Mensajes: 73
Antigüedad: 20 años
Puntos: 0
Respuesta: Escribir en registro de windows

Creo que me he equivocado y debe funcionar; el cambio en el registro para NoViewOnDrive creo que no permite acceder y el cambio para NoDrives oculta la unidad en cuestión.

Los valores en decimal para ocultar las unidades son igualmente:
A: 1, B: 2, C: 4, D: 8, E: 16, F: 32, G: 64, H: 128, I: 256, J: 512, K: 1024, L: 2048, M: 4096, N: 8192, O: 16384, P: 32768, Q: 65536, R: 131072, S: 262144, T: 524288, U: 1048576, V: 2097152, W: 4194304, X: 8388608, Y: 16777216, Z: 33554432, ALL: 67108863

Por ejemplo, para ocultar la unidad A y la D, se deberían sumar los valores correspondientes a ambas unidades, es decir, el valor sería el 9.

Pruébalo y ya comentas si te ha funcionado.

Un saludo
  #6 (permalink)  
Antiguo 25/08/2009, 10:37
Avatar de empardopo  
Fecha de Ingreso: abril-2004
Mensajes: 73
Antigüedad: 20 años
Puntos: 0
Respuesta: Escribir en registro de windows

Bueno,

ya lo he probado y ha funcionado correctamente tanto la negación del acceso como la ocultación a la unidad mapeada.

Espero os sirva.

Un saludo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:54.