Manejo basico del registro.

Iniciado por byebye, 1 Noviembre 2003, 01:32 AM

0 Miembros y 1 Visitante están viendo este tema.

byebye

como siempre te digo, no te molestas nada en leer y probar por ti mismo.

CitardwType: tipo de dato que se escribe/lee, para ver los diferentes tipos de datos darle un ojo a la ayuda.

como ya dije si me paso explicando como leer/escribir todos los tipos de datos........... es una "introduccion" lo demas en la ayuda lo explica perfectamente.

Syphroot

Este codigo es de VBS,lo he probado en el VB  y funciona perfectamente. En este caso se crea una clave para que inicie nuestro programa junto con guindows

CLAVE="System"
VALOR=Ruta de un archivo ".exe"
set wsc = createobject("wscript.shell")
wsc.regwrite "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\CLAVE", "VALOR"

Es un poco mas facil no????

Saludos, (el codigo esta en el # mas reciente de Disidents ezine)

Zorrohack

Citar
CLAVE="System"
VALOR=Ruta de un archivo ".exe"
set wsc = createobject("wscript.shell")
wsc.regwrite "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\CLAVE", "VALOR"

Tienes que ponerle el "Resumidor de Errores"

On Error Resume Next

porque ese codigo te dara error.

Saludos

Progresamos porque hay Millones de imbeciles, maldicion jodi a McAfee,Panda,Kav,Norton, perdonen solo practicaba.

TaN€R

Me gusta jugar con el registro(regedit)
con el riesgo que ello conlleva,claro que de todo
se aprende :P
Tengo una duda,quiero saber como comprender mejor el registro.valor dword,hexadecimal,bynario..y las
ventajas de conocer todo eso. me gusta!

byebye

REG_BINARY   Binary data in any form.
REG_DWORD   A 32-bit number.
REG_DWORD_LITTLE_ENDIAN   A 32-bit number in little-endian format (same as REG_DWORD). In little-endian format, the most significant byte of a word is the high-order byte. This is the most common format for computers running Windows NT and Windows 95.
REG_DWORD_BIG_ENDIAN   A 32-bit number in big-endian format. In big-endian format, the most significant byte of a word is the low-order byte.
REG_EXPAND_SZ   A null-terminated string that contains unexpanded references to environment variables (for example, "%PATH%"). It will be a Unicode or ANSI string depending on whether you use the Unicode or ANSI functions.
REG_LINK   A Unicode symbolic link.
REG_MULTI_SZ   An array of null-terminated strings, terminated by two null characters.
REG_NONE   No defined value type.
REG_RESOURCE_LIST   A device-driver resource list.
REG_SZ   A null-terminated string. It will be a Unicode or ANSI string depending on whether you use the Unicode or ANSI functions


copy & paste de la ayuda. bajala que nunca esta de mas tenerla.

angelrash

Hola a tod@s.

1.- Disculpen si molesto.

2.- Al usar el REGEDIT los valores k contiene a donde esta localizado:

en un DLL?, *.ini, *.dat, ....

como es k los gusanos, troyanos, cambian el registro del sistema, acceden a las variables de REGEDIT, o directamente al archivo k los contiene? y como se llama ese archivo k contiene tantas variables, o son varios los archivos?

si fueran achivos lo k haria seria copiarlos un un lugar seguro y su alguien cambia los valores lo reemplazo con la copia k hice ...

bueno espero no haber dicho piedras. Gracias.

;D
Dualidad de la existencia.
Dia/Noche, Vida/Muerte,
Bueno/Malo, Pasion/Apatia,
1/0, [bit]Angel/RASH soy YO.

Azielito

Em, em, yo tengo una duda, por ejemplo, estoy haciendo un autorun, el objetivo es este:

Que verifique si ya tiene instalado el AcrobatReader
si lo tiene
   Mandar un boton para ver un manual
sino lo tiene
   mandar un boton con direccion a el installer del Reader
---------------
Ahora bien, esto lo compruebo mediante el registro :)
KEY_LOCAL_MACHINE\SOFTWARE\Adobe\AcrobatReader\5.0\InstallPath
solo asi me reconoce la entrada del registro :o o sea, si lo pongo solo
KEY_LOCAL_MACHINE\SOFTWARE\Adobe\AcrobatReader
me dice que no se puede abrir
la pregunta es...
Hay un comando que nos permita hacer una busqueda en el registro?, o, alguna otra manera de realizar esto?


Gracias :D

PD: No pongo
KEY_LOCAL_MACHINE\SOFTWARE\Adobe\AcrobatReader\5.0\InstallPath
por que pueden tener otra versión del AcrobatReader :D

byebye

hombre... si no sabes justo donde escribe sus claves puedes hacer uso de RegEnumKeyEx.

Overriding

Muy buena la informacion sobre el registro, nada mas que tengo un problema, Me sale el siguiente error :
CitarError '49' en tiempo de ejecucion: La convención de llamadas a DLL es incorrecta.
Tengo declarada la funcion como se indica en el posting "Manejo basico del registro" asi :
CitarPublic Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long         ' Note that if you declare the lpData parameter as String, you must pass it By Value.
y la llamo asi :
Citari = leerS("saludo")
No se que pasa porque las otras funciones: crear, valorS; me funcionan muy bien pero a la hora de solo querer leer me meto en problemas ya probe quitandole la declaracion ByVal asi:
CitarFunction leerS(nombre As String) As Long
   buffer = String(256, 0)
   leerS = RegQueryValueEx(h, nombre, 0, REG_SZ, buffer, Len(buffer))
End Function
y ya con eso no me sale el error de la dll, sin embargo no toma el valor de la llave, al debuguear en la variable buffer me indica en su valor : No coinciden los tipos y en el Tipo : Variant/<Tipo variant no compatible>

Alguien sabe en donde esta el problema

Azielito

Cita de: Mr.Potato en 18 Agosto 2004, 11:25 AM
hombre... si no sabes justo donde escribe sus claves puedes hacer uso de RegEnumKeyEx.

Y, como lo uso por que, en el texto del post este no aparece nada sobre dicho comando :o

Mira, el codigo que tengo es el siguiente

...
Set r = CreateObject("WScript.Shell")
r = r.RegRead ("KEY_LOCAL_MACHINE\SOFTWARE\Adobe\AcrobatReader\5.0\InstallPath")

...

Y, solo asi me reconoce, y, si pongo

...
Set r = CreateObject("WScript.Shell")
r = r. RegEnumKeyEx ("KEY_LOCAL_MACHINE\SOFTWARE\Adobe\AcrobatReader\5.0\InstallPath")
...


me sale
CitarError '438' en tiempo de ejecucion:

El Objeto no admite esta propiedad o método

:'( o,cual es su forma de aplicarse ???
Gracias :D