elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [VBS] Script Basico
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [VBS] Script Basico  (Leído 4,949 veces)
MeCraniDOS


Desconectado Desconectado

Mensajes: 337


Sr. Glass


Ver Perfil
[VBS] Script Basico
« en: 21 Junio 2013, 14:43 pm »

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...

Código
  1. Dim oReg As Object
  2. Set oReg = CreateObject("Wscript.Shell")
  3.  
  4. 'Definimos las variables necesarias
  5. Dim strRuta As String
  6. strRuta = "Aqui la ruta"
  7.  
  8. 'Escribimos el nuevo valor de la clave
  9. oReg.RegWrite "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run", strRuta, "REG_SZ"
  10.  
  11. oReg.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run", strRuta, "REG_SZ"
  12.  
  13. 'Destruimos la variable de objeto
  14. 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 Desconectado

Mensajes: 9.885



Ver Perfil
Re: [VBS] Script Basico
« Respuesta #1 en: 21 Junio 2013, 15:48 pm »

una aplicación que se guarda en "C:\Documents and Settings\---\Datos de programa"
Código
  1. 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...

Código
  1. strRuta = CreateObject("WScript.Shell").ExpandEnvironmentStrings("%APPDATA%") & "\Carpeta\Aplicacion.exe"
  2. 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:

Código
  1. KeyName = "HKLM\Software\Microsoft\Windows\CurrentVersion\Run\"
  2. ValName = "Mi aplicacion"
  3. ValData = CreateObject("WScript.Shell").ExpandEnvironmentStrings("%APPDATA%") & "\Carpeta\Aplicacion.exe"
  4.  
  5. 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 Desconectado

Mensajes: 1.583


"Jack of all trades, master of none." - Zenthion


Ver Perfil WWW
Re: [VBS] Script Basico
« Respuesta #2 en: 21 Junio 2013, 15:53 pm »

Bueno aquí tienes algunas más.

http://es.wikipedia.org/wiki/Variable_de_entorno#Valores_por_defecto_de_las_variables_de_entorno

Que te ayude Elektro a adaptarlas, porque yo soy un cafre. :xD
En línea


Interesados hablad por Discord.
MeCraniDOS


Desconectado Desconectado

Mensajes: 337


Sr. Glass


Ver Perfil
Re: [VBS] Script Basico
« Respuesta #3 en: 21 Junio 2013, 16:34 pm »

Entonces el script quedaría finalmente así?

Código
  1. Dim oReg As Object
  2. Set oReg = CreateObject("Wscript.Shell")
  3.  
  4. ' Definimos las variables necesarias
  5. ' Dim strRuta As String
  6. ' strRuta = "Aqui la ruta"
  7.  
  8. KeyName = "HKLM\Software\Microsoft\Windows\CurrentVersion\Run\"
  9. ValName = "Hola.exe"
  10. ValData = CreateObject("WScript.Shell").ExpandEnvironmentStrings("%APPDATA%") & "\Carpeta\Aplicacion.exe"
  11.  
  12. ' Escribimos el nuevo valor de la clave
  13.  
  14. CreateObject("WScript.Shell").RegWrite KeyName & ValName, ValData
  15.  
  16.  
  17. ' Destruimos la variable de objeto
  18. 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 Desconectado

Mensajes: 1.583


"Jack of all trades, master of none." - Zenthion


Ver Perfil WWW
Re: [VBS] Script Basico
« Respuesta #4 en: 21 Junio 2013, 16:40 pm »

Cual error? :laugh:
En línea


Interesados hablad por Discord.
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.885



Ver Perfil
Re: [VBS] Script Basico
« Respuesta #5 en: 21 Junio 2013, 17:03 pm »

@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:
Citar
Código
  1.    KeyName = "HKLM\Software\Microsoft\Windows\CurrentVersion\Run\"
  2.    ValName = "Mi aplicacion"
  3.    ValData = CreateObject("WScript.Shell").ExpandEnvironmentStrings("%APPDATA%") & "\Carpeta\Aplicacion.exe"
  4.  
  5.    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:
Citar
Código
  1. Set oReg = CreateObject("Wscript.Shell")
  2. 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.
Código:
ValData = oReg.ExpandEnvironmentStrings(...)

Aparte de la primera línea:
Citar
Código
  1. Dim oReg As Object
Bórrala.

EDITO2: y esta otra, que se me ha pasado de largo:
Citar
Código
  1. Dim strRuta As String
« Última modificación: 21 Junio 2013, 17:42 pm por EleKtro H@cker » En línea



MeCraniDOS


Desconectado Desconectado

Mensajes: 337


Sr. Glass


Ver Perfil
Re: [VBS] Script Basico
« Respuesta #6 en: 21 Junio 2013, 17:25 pm »

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 Desconectado

Mensajes: 9.885



Ver Perfil
Re: [VBS] Script Basico
« Respuesta #7 en: 21 Junio 2013, 17:48 pm »

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.asp

http://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 Desconectado

Mensajes: 337


Sr. Glass


Ver Perfil
Re: [VBS] Script Basico
« Respuesta #8 en: 21 Junio 2013, 17:58 pm »

Vale muchas gracias, lo probare y me fijare como queda :silbar:

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
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Script BATCH BASICO
Scripting
Fx Hound 1 4,406 Último mensaje 15 Mayo 2010, 18:25 pm
por flony
Re: Ayuda para crear script basico en batch
Scripting
SuperDraco 1 3,636 Último mensaje 2 Junio 2011, 05:17 am
por .:UND3R:.
Ayuda shell script basico
Scripting
juancaa 2 3,370 Último mensaje 27 Enero 2012, 14:11 pm
por risto
Script Básico en Bash (Shell) Ayuda!
Scripting
DejarDeSerLammerYa! 3 3,079 Último mensaje 27 Mayo 2012, 13:04 pm
por DejarDeSerLammerYa!
[BASH] Ayuda con un script basico de listado de directorios
Scripting
koxkorra 1 9,006 Último mensaje 8 Octubre 2012, 18:38 pm
por RevangelyonX
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines