Ir al contenido principal

editar el registro de windows con macros

Ya vimos como funciona, basicamente, Windows Script Host (WSH), aplicado solamente a la lectura de ciertos valores del Registro de Windows. Este post no tendrá como objetivo hacernos expertos en el tema, pero analizaremos un par de funciones para editar, agregar o eliminar valores del Registro.
Expondré un ejemplo común y práctico: le doy a un cliente X mi proyecto, 100% funcional, para que lo evalúe. Luego de 10 días de la primer apertura del archivo si el cliente no compró el sistema las macros deben dejar de funcionar ¿Que mejor que utilizar el Registro de Windows para esto?

Podríamos habilitar un blog aparte para hablar especifica y detalladamente sobre esta aplicación... cosa que, por lo menos de mi parte, no sucederá. =)
[+/-] Ver el resto / Ocultar

Comentarios

  1. Para crear o modificar una entrada numérica hace falta un tercer argumento "REG_DWORD", por ejemplo para marcar la opción Compilar a petición:
    Registro.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\VBA\7.0\Common\CompileOnDemand", 1, "REG_DWORD"
    Muchos de los problemas con el registro de Windows son debidos a cambiar el tipo de datos accidentalmente, por lo que siempre es recomendable indicarlos con el tercer argumento de RegWrite.

    ResponderEliminar
  2. Pedro: muchas gracias x tu aporte sobre la forma correcta de escribir entradas numéricas. Nunca volví a tocar el tema (aquí solo toqué REG_SZ), ya que por ahí me voy a otros, de acuerdo a las consultas de mis lectores. Y así nunca mas escribí sobre esta forma de trabajo, ya que falta mucho por tratar.
    De nuevo gracias por el detalle importante que tocaste, a todos les será de utilidad a la hora de modificar el registro de windows.
    Espectacular tu blog (http://pedrowave.blogspot.com/), la verdad que tiene ejemplos interesantísimos.

    ResponderEliminar
  3. Damian, abusando de tu amabilidad y como bloqueros que somos adictos a Excel, no podemos olvidar las 4 funciones intrínsecas de VBA para editar el Registro de Windows: GetSetting, GetAllSettings, SaveSetting y DeleteSetting, aunque solo funcionen con claves de usuario en:
    HKEY_CURRENT_USER\Software\VB and VBA Program Settings
    Tiene la ventaja de no tocar otros registros de Windows, por lo que prima la seguridad.

    Mi blog no pretende ser sobre Excel pero la mayoría de ejemplos de Interface Gráfico de Usuario (GUI en inglés) los preparo en esta herramienta de cálculo por ser la más extendida globalmente.

    No hace falta decir que tu blog ya está en la lista de blogs que sigo y lo he linkado al mío.
    Espero te animes a hacer comentarios en mi blog.

    ResponderEliminar
  4. si, definitivamente sería una opción mas que correcta la que mencionas para usuarios noveles en el tema del registro, dado que se evitaría cometer algún error de gravedad. igualmente recomiendo una acción fundamental que yo mismo no llevé a cabo cuando me inicié con estas tareas: hacer una copia de seguridad antes de "tocar cualquier cosa", por que también resulta interesante conocer sobre todas las posibilidades de esta herramienta de trabajo. imaginate que una persona con tus conocimientos de informática tome un archivo que lleva la cuenta de sus aperturas en la clave que expones: en un segundo me arruina todo!!! jajaja. así que me veo en la necesidad de buscar "rutas alternativas" y evitar esto.
    tu blog, sencillamente, está espectacular y también soy seguidor ¿estaremos un poco sincronizados los excelmaníacos? me dedicaré a leer sus entradas, por que tiene proyectos muy buenos y de alto vuelo.
    un abrazo y muchas gracias por tus comentarios.

    ResponderEliminar

Publicar un comentario

Entradas populares de este blog

funciones: convertir numeros a letras con excel

En realidad hace tiempo que vienen consultándome sobre esto... quizás cinco o seis años . Debe ser una de las funciones mas buscadas de Excel, por lejos: la posibilidad de escribir: 1.534,63 y que en una celda aparezca magicamente "un mil quinientos treinta y cuatro c/15/100". Aquí les dejo una solución, basada en funciones , sin utilizar macros, la cual preparé exclusivamente para este Blog. A pesar de los millones de usuarios que requieren esta herramienta, no viene incorporada en Excel, debemos armarla nosotros mismos .  Luego de la imagen irá la explicación de como llegué a lograr esto, dado que es un proceso medianamente complejo , que utiliza tres o cuatro funciones básicas y requiere de varios pasos. así quedará nuestra planilla y siempre devolverá en letras el valor que ingresemos en A1 [+/-] Ver el resto / Ocultar Desde ya aclaro: esta no es " la forma " de hacerlo, simplemente es una mas, evitando el uso de macros. Sobre esta base, comencemos: 1) El núme

macros: como enviar mails desde Excel (vba)

Un gran amigo "on-line", Johan Moreno, de Colombia , me hizo llegar la inquietud de cómo enviar mails desde Excel . Si bien contaba con algunas líneas de código sobre el particular, decidí retomar mi ejemplo y adaptarlo mejor a las circunstancias. Hace unos minutos termino de remitirle un correo con la solución a Johan... desde Excel y con un archivo adjunto, mismo que transcribo a continuación para ayudar a todos con esta tarea. Veamos primero las dos formas principales de enviar mails: mediante Outlook o nuestro Web Mail ( yahoo, gmail, hotmail, etc, etc ) No soy usuario de Outlook en lo absoluto: no confío en los agujeros de seguridad que continuamente aparecen y, por otro lado, t eniendo a mi alcance una herramienta tan poderosa (y gratuita) como Gmail, la cual ahora también permite sincronizar los mensaje con la Pc para verlos offline (deben activarlo en "google labs") ... no creo que me haga usuario ni hoy ni mañana. Igualmente mas adelante daré una solució

buscarv con varios resultados

Es de las preguntas mas recurrentes que he tenido: ¿se puede lograr que la función BUSCARV() devuelva varios resultados? Si recordamos el uso de esta función, sabremos que la misma buscar en valor en el rango especificado, retornando un solo resultado. Si en la tabla tenermos varios registros iguales BUSCARV() solo nos devolverá el primero de ellos, omitiendo el resto. Entonces ¿se puede? Bueno, aplicando otra técnica sencilla que se me ocurrió al intentar solucionar el planteamiento de un lector... si, puedo hacerlo.... pero sin usar BUSCARV(). la idea es que coloquemos en E1 el código del producto a buscar y a partir de E2 nos devuelva todas las coincidencias de la tabla. [+/-] Ver el resto / Ocultar Vamos a necesitar una columna "auxiliar" para llevar a buen término este proyecto. Con macros el tema sería mas sencillo, pero aquí la cuestión es resolverlo con las funciones de Excel, sin VBA. Paso a paso: Como primer medida chequeamos que valores de la columna A coincide co