Autor
|
Tema: MODIFICANDO EL REGISTRO DESDE VB (Leído 11,688 veces)
|
dxr
|
Hola tengo un par de dudas referente al registro. Mi idea es editar copiar y añandir al registro:
Private Sub Command1_Click() On Error Resume Next MsgBox "Se creara una clave en el Registro HKEY_CURRENT_USER\Software\RAdmin\v2.xD\Parameters y se llamara lala y su ruta sera c:\lala.txt", vbInformation, "Crear clave al registro" Set reg = CreateObject("WScript.Shell") reg.regwrite "HKEY_CURRENT_USER\Software\RAdmin\v2.xD\Parameters", "C:\lala.txt" End Sub
Private Sub Command2_Click() On Error Resume Next MsgBox "Este codigo borrara la clave creada,si existiera", vbInformation, "Borrar clave" Set borrar = CreateObject("WScript.Shell") borrar.RegDelete "HKEY_CURRENT_USER\Software\RAdmin\v2.xD" End Sub
Private Sub Command3_Click() On Error Resume Next MsgBox "Se copiara una clave en el Registro HKEY_CURRENT_USER\Software\RAdmin\v2.xD\Parameters y se llamara lala2 y su ruta sera c:\lala2.txt", vbInformation, "Copiar clave al registro" Set reg = CreateObject("WScript.Shell") reg.regcopy "HKEY_CURRENT_USER\Software\RAdmin\v2.0\Parameters", "C:\lala2.txt" End Sub
bueno pos lo unico q consigo con esto es añadir calves al registro y borrarlas pero por ejemplo no se me borra 2.xD solo su interior...
Y como ago para q me cree un archivo con la entrada de una direccion q yo le indico en el registro?? por ejemplo la clave del radmin q me la guarde en un txt. como seria???
Gracias.
|
|
|
En línea
|
Hacer preguntas concretas, claras y aportando toda la documentación necesaria. De lo contrario, no tendreis una respuesta clara.
|
|
|
byebye
Desconectado
Mensajes: 5.093
|
acostumbrate a usar la api , aqui te dejo codigo para crear claves, añadir valor, leer etc luego tu ya t lo montas como quieras. [ Private Sub Command1_Click() Dim h, buffer As String buffer = String(1024, vbNullChar) 'crear una clave RegOpenKey HKEY_LOCAL_MACHINE, "SOFTWARE", h RegCreateKey h, "PRUEBA", h RegCloseKey h 'aqui ya tienes la clave creada 'escribir un valor RegOpenKey HKEY_LOCAL_MACHINE, "SOFTWARE\PRUEBA", h RegSetValueEx h, "Nombre", 0, 1, ByVal "datos", Len("datos") ' aqui ya tienes el nuevo valor y datos en la clave creada ' borrar del registro el valor de la clave RegDeleteValue h, "Nombre" ' Aqui se a borrado el nombre "Nombre" y el valor "datos" RegCloseKey h
RegOpenKey HKEY_LOCAL_MACHINE, "SOFTWARE\PRUEBA", h RegQueryValueEx h, "Nombre", 0, 1, ByVal buffer, Len(buffer) ' ya tienes en buffer el valor de "Nombre"
RegDeleteKey HKEY_LOCAL_MACHINE, "SOFTWARE\PRUEBA" RegCloseKey h ' y ya esta todo borrado claves y subclaves End Sub
acuerdate de declarar la/as constantes (HKEY_LOCAL_MACHINE etc) PD: que se me paso jejej, para lo de el archivo ya lo que pilles en buffer open "archivo" etc etc y lo guardas
|
|
« Última modificación: 11 Junio 2003, 09:26 am por Mr.Potato »
|
En línea
|
|
|
|
dxr
|
La verdad esq no tengo ni idea de manejar las apis... pero esto del registro parece facil muchas gracias.... aunq no me kedo claro como crear el archivo.... en el archivo lo q pretendo es copiar una clave del registro por ejemplo la clave en hexadeciamal de un juego... se me olvidava para utilizar RegCloseKey... todo eso imagino q sera con las apis.... pero ay q añadir algo al formulario???? Gracias.
|
|
« Última modificación: 11 Junio 2003, 09:41 am por DEREK_X »
|
En línea
|
Hacer preguntas concretas, claras y aportando toda la documentación necesaria. De lo contrario, no tendreis una respuesta clara.
|
|
|
byebye
Desconectado
Mensajes: 5.093
|
si tienes que declarar las constantes y las funciones. Private Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long Private Declare Function RegDeleteKey Lib "advapi32.dll" Alias "RegDeleteKeyA" (ByVal hKey As Long, ByVal lpSubKey As String) As Long Private Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String) As Long Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long Private Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, 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 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
Private Const HKEY_LOCAL_MACHINE = &H80000002
sobre lo de el archivo Open "c:/archivo.txt" For Append As #1 Write #1, "datos a escribir" Close #1 para q t de una idea. otra cosa el ejemplo es para leer string si vas a leer otro tipo de dato tienes que modificar lo q es el tipo de dato y alguna cosilla mas.
|
|
|
En línea
|
|
|
|
dxr
|
xD MUCHAS GRACIAS. no me as entendido con lo del archivo mira te digo mi idea mi idea es crear un ejecutable q ya vere q tonteria le pongo pero q al cargar el form accede a unas rutas del registro a las mas comunes de estos juegos de jugar por internet tipo counter, half life..... y q me COPIE las claves a un txt y me lo suba al ftp pues bien q me las suba al ftp se hacerlo acer entradas al registro mediante las apis teoricamente ya se hacerlo gracias a ti y crear archivos tanbien se acerlos pero lo q no se acer es q me copie las claves del juego q se almacenan en el registro en un txt para q me lo suba al ftp.... nose si me entiendes.... Muchas gracias me as enseñado bastante
|
|
|
En línea
|
Hacer preguntas concretas, claras y aportando toda la documentación necesaria. De lo contrario, no tendreis una respuesta clara.
|
|
|
byebye
Desconectado
Mensajes: 5.093
|
me parece que no nos entendemos mutuamente , en la variable buffer tienes el valor de la clave que lees pilla esa variable y metela en un archivo de texto. por ejemplo supon q tiene hkey_local_machine/software/halflife > CD-KEY 12345678 buffer tendra 12345678 ¿es eso a lo q te refieres?
|
|
|
En línea
|
|
|
|
dxr
|
xDDDDDD si pillo pero........ q fallo no s eme ocurre como meter un valor a un archivo Open "c:/archivo.txt" For Append As #1 Write #1, buffer Close #1 podria ser??? q va a ser q no.... joer tio eres la poia te lo agradezco millllllll
|
|
|
En línea
|
Hacer preguntas concretas, claras y aportando toda la documentación necesaria. De lo contrario, no tendreis una respuesta clara.
|
|
|
byebye
Desconectado
Mensajes: 5.093
|
exacto asi escribes en el archivo el valor que tu buscas.
|
|
|
En línea
|
|
|
|
dxr
|
Como siempre... las clases teoricas no lo es todo bien lo estoy yevando a la practica..
Esyte es un trozo de codigo imprscindible...
Dim h, buffer As String Private Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long Private 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 Private Const HKEY_CURRENT_USER = &H80000002
Private Sub Form_Load() buffer = String(1024, vbNullChar) RegOpenKey HKEY_CURRENT_USER, "\Software\RAdmin\v2.0\Parameters", h RegQueryValueEx h, "Parameters", 0, 1, ByVal buffer, Len(buffer) Open "c:/archivo.txt" For Append As #1 Write #1, buffer Close #1 End Sub
bien en el archivo q me crea aparece:
" "
tonces no entiendo xq ay q añadir la ruta del registro asi:
RegOpenKey HKEY_CURRENT_USER, "\Software\RAdmin\v2.0\Parameters", h
y cual es la funcion de h ahi?
y tambien e supuesto q esto se declaraba asi:
Private Const HKEY_LOCAL_MACHINE = &H80000002
q es lo q esta mal?
esto d elas apis es un poco lioso xD
|
|
|
En línea
|
Hacer preguntas concretas, claras y aportando toda la documentación necesaria. De lo contrario, no tendreis una respuesta clara.
|
|
|
byebye
Desconectado
Mensajes: 5.093
|
en h te devuelve el handle para referirte a la clave abierta hasta q la cierres, fijate en lo q t puse antes:
RegOpenKey HKEY_CURRENT_USER, "\Software\RAdmin\v2.0\Parameters", h > recibes en h el handle RegQueryValueEx h, "Parameters", 0, 1, ByVal buffer, Len(buffer) > aqui ya nos referimos a ese handle (h) que es la clave abierta.
por otra parte usas HKEY_CURRENT_USER ¿la tienes declarada? ( Private Const HKEY_CURRENT_USER = &H80000001 )
el tipo de dato que vas a leer que es? como ya t dije ese codigo lee string
|
|
|
En línea
|
|
|
|
|
|