Autor
|
Tema: [VBS] Script Basico (Leído 4,949 veces)
|
MeCraniDOS
Desconectado
Mensajes: 337
Sr. Glass
|
Hola, quería hacer un script en vbs, que cree una clave en el registro para ejecutar una aplicación que se guarda en "C:\Documents and Settings\---\Datos de programa", tengo esto escrito...
Dim oReg As Object Set oReg = CreateObject("Wscript.Shell") 'Definimos las variables necesarias Dim strRuta As String strRuta = "Aqui la ruta" 'Escribimos el nuevo valor de la clave oReg.RegWrite "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run", strRuta, "REG_SZ" oReg.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run", strRuta, "REG_SZ" 'Destruimos la variable de objeto Set oReg = Nothing
Claro, si pongo una ruta fija solo vale para mi ordenador, ademas, yo tengo Windows XP y para un Windows Vista o Windows 7 no funciona... Podrían decirme como puedo optimizar este script para cualquier S.O??
Saludos
|
|
|
En línea
|
"La física es el sistema operativo del Universo" -- Steven R Garman
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.885
|
una aplicación que se guarda en "C:\Documents and Settings\---\Datos de programa" strRuta = "Aqui la ruta"
si pongo una ruta fija solo vale para mi ordenador Podrían decirme como puedo optimizar este script para cualquier S.O?? Usa las variables de entorno de Windows... strRuta = CreateObject("WScript.Shell").ExpandEnvironmentStrings("%APPDATA%") & "\Carpeta\Aplicacion.exe" WScript.Echo(strRuta)
Saludos. EDITO: A parte de eso, no estás creando ninguna clave nueva, estás sobreescribiendo el valor por defecto de la clave... tampoco no es necesario escribir la clave en HKCU y HKLM, si la escribes en HKLM afecta a todos los usuarios quedando HKCU innecesaria, eres libre de hacerlo, pero deberías eligir la que más se adapte a tus necesidades. Aquí tienes: KeyName = "HKLM\Software\Microsoft\Windows\CurrentVersion\Run\" ValName = "Mi aplicacion" ValData = CreateObject("WScript.Shell").ExpandEnvironmentStrings("%APPDATA%") & "\Carpeta\Aplicacion.exe" CreateObject("WScript.Shell").RegWrite KeyName & ValName, ValData
|
|
« Última modificación: 21 Junio 2013, 16:22 pm por EleKtro H@cker »
|
En línea
|
|
|
|
z3nth10n
Desconectado
Mensajes: 1.583
"Jack of all trades, master of none." - Zenthion
|
|
|
|
En línea
|
⏩ Interesados hablad por Discord.
|
|
|
MeCraniDOS
Desconectado
Mensajes: 337
Sr. Glass
|
Entonces el script quedaría finalmente así?Dim oReg As Object Set oReg = CreateObject("Wscript.Shell") ' Definimos las variables necesarias ' Dim strRuta As String ' strRuta = "Aqui la ruta" KeyName = "HKLM\Software\Microsoft\Windows\CurrentVersion\Run\" ValName = "Hola.exe" ValData = CreateObject("WScript.Shell").ExpandEnvironmentStrings("%APPDATA%") & "\Carpeta\Aplicacion.exe" ' Escribimos el nuevo valor de la clave CreateObject("WScript.Shell").RegWrite KeyName & ValName, ValData ' Destruimos la variable de objeto Set oReg = Nothing
Me da error... no domino mucho la verdad..
|
|
|
En línea
|
"La física es el sistema operativo del Universo" -- Steven R Garman
|
|
|
z3nth10n
Desconectado
Mensajes: 1.583
"Jack of all trades, master of none." - Zenthion
|
Cual error?
|
|
|
En línea
|
⏩ Interesados hablad por Discord.
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.885
|
@MeCraniDOS Te da error porque en VBS no se puede declarar el tipo de variable (Dim As...), manéjate solo con "Dim" y "Set". El código quedaría como tal y como te lo puse: KeyName = "HKLM\Software\Microsoft\Windows\CurrentVersion\Run\" ValName = "Mi aplicacion" ValData = CreateObject("WScript.Shell").ExpandEnvironmentStrings("%APPDATA%") & "\Carpeta\Aplicacion.exe" CreateObject("WScript.Shell").RegWrite KeyName & ValName, ValData
Obviamente hay que modificar los valores necesarios... y bueno, si quieres añadirle comentarios a esas lineas o modificarlas un poco eso ya es cosa tuya. En el último código que has posteado, que es una mezcla de tu code original y del mio, esto está mal: Set oReg = CreateObject("Wscript.Shell") ValData = CreateObject("WScript.Shell").ExpandEnvironmentStrings("%APPDATA%") & "\Carpeta\Aplicacion.exe"
Ya tienes el objeto instanciado en la variable "oREG", pero en la variable "valdata" lo vuelves a instanciar. ValData = oReg.ExpandEnvironmentStrings(...) Aparte de la primera línea: Bórrala. EDITO2: y esta otra, que se me ha pasado de largo:
|
|
« Última modificación: 21 Junio 2013, 17:42 pm por EleKtro H@cker »
|
En línea
|
|
|
|
MeCraniDOS
Desconectado
Mensajes: 337
Sr. Glass
|
No hay que declarar KeyName, ValName y ValData?? Y "Mi aplicación" y "Aplicación.exe" son las mismas??
Saludos
|
|
|
En línea
|
"La física es el sistema operativo del Universo" -- Steven R Garman
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.885
|
No hay que declarar KeyName, ValName y ValData?? Poder puedes, lo que te digo es que no puedes declarar el tipo de variable (dim var as tipo), en VB si, en VBS NO, de todas formas lo de declarar variables no es necesario a menos que quieras llevar un "control" sobre las variables de tu código usando "Option Explicit". ...En un código tán sencillo y pequeño no hace falta. http://www.w3schools.com/vbscript/vbscript_variables.asphttp://msdn.microsoft.com/en-us/library/t7zd6etz%28v=vs.84%29.aspx"Mi aplicación" y "Aplicación.exe" son las mismas?? "Mi aplicación" es el nombre del valor de la clave de registro. "Aplicación.exe" es el nombre del executable de la aplicación. Usa el código que te puse y fíjate en como queda la clave del registro para entenderlo... Saludos
|
|
« Última modificación: 21 Junio 2013, 17:55 pm por EleKtro H@cker »
|
En línea
|
|
|
|
MeCraniDOS
Desconectado
Mensajes: 337
Sr. Glass
|
Vale muchas gracias, lo probare y me fijare como queda Editado
Listo, funciona a la perfección
Saludos
|
|
« Última modificación: 22 Junio 2013, 14:28 pm por MeCraniDOS »
|
En línea
|
"La física es el sistema operativo del Universo" -- Steven R Garman
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Script BATCH BASICO
Scripting
|
Fx Hound
|
1
|
4,406
|
15 Mayo 2010, 18:25 pm
por flony
|
|
|
Re: Ayuda para crear script basico en batch
Scripting
|
SuperDraco
|
1
|
3,636
|
2 Junio 2011, 05:17 am
por .:UND3R:.
|
|
|
Ayuda shell script basico
Scripting
|
juancaa
|
2
|
3,370
|
27 Enero 2012, 14:11 pm
por risto
|
|
|
Script Básico en Bash (Shell) Ayuda!
Scripting
|
DejarDeSerLammerYa!
|
3
|
3,079
|
27 Mayo 2012, 13:04 pm
por DejarDeSerLammerYa!
|
|
|
[BASH] Ayuda con un script basico de listado de directorios
Scripting
|
koxkorra
|
1
|
9,006
|
8 Octubre 2012, 18:38 pm
por RevangelyonX
|
|