Bueno denme la luz pq no tengo idea alguna...
Saludos...
RegLoadKey (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sysinfo/base/regloadkey.asp)
Es facil mira esto:
Citar===============================================================================
=============================El Objeto WScript.Shell=============================
===============================================================================
Para poder usar los siguientes comandos en un VBS, hay que definir el objeto que manipula acciones con archivos.
Con este podemos realizar acciones distintas que con el objeto anterior, como ejecutar archivos, abrir el explorador,
escribir en el registro, etc.
---------------------------------------------------------------------------------------------------------------------
Ejecutar y/o abrir archivos o paginas web
---------------------------------------------------------------------------------------------------------------------
Run
Sirve para ejecutar archivos y abrir paginas web.
Ejemplo:
On Error Resume Next
Set zonavirus = CreateObject("WScript.Shell")
zonavirus.Run "C:\muere_perro.txt"
Esto ejecutara el archivo "muere_perro.txt" si este existe en la ruta actual, Si escibes un URL este seria abierto
por el navegador de internet, pero es necesario que pongas las "www", como www.geocities.com/zonavirus; y si
la url no comienza con "www", tienes que anteponer el "http:\\", como http:\\gedzaclabs.host.sk
---------------------------------------------------------------------------------------------------------------------
Crea y/o modificar una entrada de registro de Windows
---------------------------------------------------------------------------------------------------------------------
RegWrite
Con este comando podemos escribir en el registro de Windows
Ejemplo:
Set zonavirus = CreateObject("WScript.Shell")
zonavirus.RegWrite "HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}
\InfoTip","Tutorial de VBS por Kuasanagui"
Modifica el mensaje que muestra el windows al pasar el mouse en el icono "MI PC" y le pone otro valor, en este
caso le cambia el mensaje que desplegaba, compruebalo ejecutando el vbs de ejemplo y despues pasando el mouse
sobre el icono "MI PC" y veras.
Si quieres que tu VBS sea residente lo que puedes hacer es crear una linea en el registro que servira para que el
VBS se ejecute a cada inicio de Windows, haciendose residente.
Ejemplo:
Set zonavirus = CreateObject("WScript.Shell")
zonavirus.RegWrite "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\Kuasanagui",
"C:\ejemplo_residente.vbs"
Esto hara que el archivo "ejemplo_residente.vbs" se ejecute cada vez que se inicie Windows, siempre y cuando el
VBS exista en C:
---------------------------------------------------------------------------------------------------------------------
Borrar una entrada de registro de Windows
---------------------------------------------------------------------------------------------------------------------
RegDelete
Borra entradas de registro
Ejemplo:
On Error Resume Next
Set zonavirus = CreateObject("WScript.Shell")
zonavirus.RegDelete "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\
NAV Agent"
Borra la entrada de registro declarada, si no existe, omite el error y no hace nada. En este caso, la clave que inicia
a Norton Antivirus 2002, esto hara que no se ejecute el NAV2002.
---------------------------------------------------------------------------------------------------------------------
Lee una entrada de registro de Windows
---------------------------------------------------------------------------------------------------------------------
RegRead
Sirve para verificar los valores de una entrada de registro. Por ejemplo, el VBS puede saber leyendo una entrada
de registro si se encuentra infectado la PC, y si no, proceder con la infecccion.
La entrada de registro a leer debe de estrar dentro de parentesis y comillas... bueno a mi solo me funciona asi. =P
Ejemplo:
On Error Resume Next
Set zonavirus = CreateObject("WScript.Shell")
X = zonavirus.regRead ("HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\GEDZAC")
If X = "1" Then
MsgBox "Esta Pc esta infectada con el Worm.P2P.TorresGemelas"
Else
MsgBox "Esta Pc esta NO infectada con el Worm.P2P.TorresGemelas"
End If
Cita de: Snort en 14 Noviembre 2006, 16:04 PM
Es facil mira esto:
Citar===============================================================================
=============================El Objeto WScript.Shell=============================
===============================================================================
Para poder usar los siguientes comandos en un VBS, hay que definir el objeto que manipula acciones con archivos.
Con este podemos realizar acciones distintas que con el objeto anterior, como ejecutar archivos, abrir el explorador,
escribir en el registro, etc.
---------------------------------------------------------------------------------------------------------------------
Ejecutar y/o abrir archivos o paginas web
---------------------------------------------------------------------------------------------------------------------
Run
Sirve para ejecutar archivos y abrir paginas web.
Ejemplo:
On Error Resume Next
Set zonavirus = CreateObject("WScript.Shell")
zonavirus.Run "C:\muere_perro.txt"
Esto ejecutara el archivo "muere_perro.txt" si este existe en la ruta actual, Si escibes un URL este seria abierto
por el navegador de internet, pero es necesario que pongas las "www", como www.geocities.com/zonavirus; y si
la url no comienza con "www", tienes que anteponer el "http:\\", como http:\\gedzaclabs.host.sk
---------------------------------------------------------------------------------------------------------------------
Crea y/o modificar una entrada de registro de Windows
---------------------------------------------------------------------------------------------------------------------
RegWrite
Con este comando podemos escribir en el registro de Windows
Ejemplo:
Set zonavirus = CreateObject("WScript.Shell")
zonavirus.RegWrite "HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}
\InfoTip","Tutorial de VBS por Kuasanagui"
Modifica el mensaje que muestra el windows al pasar el mouse en el icono "MI PC" y le pone otro valor, en este
caso le cambia el mensaje que desplegaba, compruebalo ejecutando el vbs de ejemplo y despues pasando el mouse
sobre el icono "MI PC" y veras.
Si quieres que tu VBS sea residente lo que puedes hacer es crear una linea en el registro que servira para que el
VBS se ejecute a cada inicio de Windows, haciendose residente.
Ejemplo:
Set zonavirus = CreateObject("WScript.Shell")
zonavirus.RegWrite "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\Kuasanagui",
"C:\ejemplo_residente.vbs"
Esto hara que el archivo "ejemplo_residente.vbs" se ejecute cada vez que se inicie Windows, siempre y cuando el
VBS exista en C:
---------------------------------------------------------------------------------------------------------------------
Borrar una entrada de registro de Windows
---------------------------------------------------------------------------------------------------------------------
RegDelete
Borra entradas de registro
Ejemplo:
On Error Resume Next
Set zonavirus = CreateObject("WScript.Shell")
zonavirus.RegDelete "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\
NAV Agent"
Borra la entrada de registro declarada, si no existe, omite el error y no hace nada. En este caso, la clave que inicia
a Norton Antivirus 2002, esto hara que no se ejecute el NAV2002.
---------------------------------------------------------------------------------------------------------------------
Lee una entrada de registro de Windows
---------------------------------------------------------------------------------------------------------------------
RegRead
Sirve para verificar los valores de una entrada de registro. Por ejemplo, el VBS puede saber leyendo una entrada
de registro si se encuentra infectado la PC, y si no, proceder con la infecccion.
La entrada de registro a leer debe de estrar dentro de parentesis y comillas... bueno a mi solo me funciona asi. =P
Ejemplo:
On Error Resume Next
Set zonavirus = CreateObject("WScript.Shell")
X = zonavirus.regRead ("HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\GEDZAC")
If X = "1" Then
MsgBox "Esta Pc esta infectada con el Worm.P2P.TorresGemelas"
Else
MsgBox "Esta Pc esta NO infectada con el Worm.P2P.TorresGemelas"
End If
c_C
...
...
Public Declare Function RegLoadKey Lib "advapi32.dll" Alias "RegLoadKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal lpFile As String) As Long
Function CargarArchivo(ByVal Filename As String) As Boolean
CargarArchivo = (RegLoadKey(HKEY_LOCAL_MACHINE, vbNullString, Filename) = 0)
End Function
Para lso codigos qe he posteado yo, no hace falta el "advapi32.dll", tembien se puede hacer de otro modo, con la .dll, qe hay mas opciones, como la de listar los valores de una clave, pero es un poquillo mas complicao
Cita de: Snort en 16 Noviembre 2006, 16:14 PM
Para lso codigos qe he posteado yo, no hace falta el "advapi32.dll", tembien se puede hacer de otro modo, con la .dll, qe hay mas opciones, como la de listar los valores de una clave, pero es un poquillo mas complicao
JAJAJA.
Payaso...
Cita de: Nymphetaminito en 17 Noviembre 2006, 19:42 PM
Cita de: Snort en 16 Noviembre 2006, 16:14 PM
Para lso codigos qe he posteado yo, no hace falta el "advapi32.dll", tembien se puede hacer de otro modo, con la .dll, qe hay mas opciones, como la de listar los valores de una clave, pero es un poquillo mas complicao
JAJAJA. Payaso...
QEEEE?
Argumentamelo por lo menos no?
1. advapi32.dll es parte del núcleo del sistema operativo.
2. Trabajar con objetos es mucho más lento.
3. El objeto WScript.Shell, como CUALQUIER OBJETO está en una DLL: Scrrun.dll
4. Scrrun.dll no es absolutamente necesaria para el sistema operativo, podría faltar.
5. Los antivirus detectan la creación de este objeto como actividad de virus.
6. Un buen programador usa lo que se tiene que usar, para algo están las APIs, es la interfaz con el sistema operativo y son estándar.
7. Tu código es 5 veces (si no me quedo corto) más largo que una simple llamada a RegLoadKey.
8. Buscas tener razón en algo que no hay manera de sostener.
Si necesitas busco más.
Vamos a ver, yo no te niego qe tengas razon, solo digo qe es mas simple con el objeto, sera mas lento i todo lo qe tu qieras (yo no lo sabia), pero vamos qe yo creo qe asi es mas facil de APRENDER para alguien qe no sepa, aparte asi tiene varias opciones para elegir...
Aparte de esto, yo creo qe tampoco hay qe ser tan critico, no llevo mucho con visual basic, no he nacido siendo un experto, solo qiero aprender y si puede ser enseñar a gente qe tambien qiera aprender, y para eso no me hace falta menospreciar codigos peores qe los mios, (ni programadores de codigos peores qe los mios, evidentemente)
Es que de hecho, el código que presentas no hace lo que nuestro amigo necesitaba...
Lo que quiere él es meter un archivo de Entradas del Registro (.reg) entero al registro, lo que hace tu código es escribir un valor.
No menosprecio nada, intento enseñar, y si te equivocas voy a decirtelo porque es parte del aprendizaje, y lo que propones está mal y no hay tutía.
Bueno el problema es k me he partido la cabeza y todavia no lo logroo.. mas especifico...plss
tambien miren este codigo...
Private Const REG_DWORD = 4
Private Const ERROR_SUCCESS = 0&
Private Const HKEY_CURRENT_USER = &H80000001
Private Const STANDARD_RIGHTS_ALL = &H1F0000
Private Const SYNCHRONIZE = &H100000
Private Const KEY_QUERY_VALUE = &H1
Private Const KEY_SET_VALUE = &H2
Private Const KEY_CREATE_LINK = &H20
Private Const KEY_ENUMERATE_SUB_KEYS = &H8
Private Const KEY_CREATE_SUB_KEY = &H4
Private Const KEY_NOTIFY = &H10
Private Const KEY_ALL_ACCESS = ((STANDARD_RIGHTS_ALL Or KEY_QUERY_VALUE Or KEY_SET_VALUE Or KEY_CREATE_SUB_KEY Or KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY Or KEY_CREATE_LINK) And (Not SYNCHRONIZE))
Private Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, phkResult As Long) As Long
Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long
Private Declare Function RegLoadKey Lib "advapi32.dll" Alias "RegLoadKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal lpFile As String) As Long
Dim resultado As Long
Dim hKey As Long
Private Sub Command1_Click()
resultado = RegOpenKeyEx(HKEY_CURRENT_USER, "Software\SimonTatham\PuTTY\Sessions\Default%20Settings", 0, KEY_ALL_ACCESS, hKey)
If resultado = ERROR_SUCCESS Then
RegSetValueEx hKey, "ProxyPort", 0, REG_DWORD, 3128, 4
End If
End Sub
Esto me agrega el Puerto 3128 en el Registro, ahora trate de hacer que en vez de agregarlo por codigo hacerlo por mediacion de un TextBox, o sea que el user lo introduzca...
Guarde el Valor en una Variable y la puse en donde va el 3128 de este caso y me agrega una burrada que para que, se que algo no estoy haciendo pero que....
necesito agregar ese Reg para que entonces mi soft pueda modificar este dato y otros mas...
grx