Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Ayuda con el registro de Windows

Estas en el tema de Ayuda con el registro de Windows en el foro de Visual Basic clásico en Foros del Web. Hola, vengo con mi primera duda, que espero me solucionen Yo quiero que mediante un Command pueda ingresar un registro en el Registro de Windows, ...
  #1 (permalink)  
Antiguo 02/08/2006, 15:25
Avatar de Dark Wolf  
Fecha de Ingreso: julio-2006
Ubicación: En Uruguay
Mensajes: 32
Antigüedad: 17 años, 9 meses
Puntos: 0
Ayuda con el registro de Windows

Hola, vengo con mi primera duda, que espero me solucionen
Yo quiero que mediante un Command pueda ingresar un registro en el Registro de Windows, ¿que trozo de codigo debo utilizar para lograrlo?

Muchisisimas gracias desde ya
  #2 (permalink)  
Antiguo 03/08/2006, 00:55
Avatar de jogarrio  
Fecha de Ingreso: agosto-2006
Mensajes: 16
Antigüedad: 17 años, 9 meses
Puntos: 0
qonda! esta es mi primera contribucion al sitio, espero que te ayude. para introducir un valor a los registros por medio de VB, puedes utilizar el siguiente codigo. Feliz programacion

Option Explicit
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
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
Declare Function RegCloseKey Lib "advapi32.dll" (ByVal HKey As Long) As _
Long

Const REG_SZ = 1
Const REG_BINARY = 3
Const REG_DWORD = 4
Const KEY_WRITE = &H20006

Enum HKey
HKEY_CLASSES_ROOT = &H80000000
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS
End Enum

Function SetReg(vHKey As HKey, vSubKey As String, vKey As String, vData As Variant) As Boolean
Dim vDisp As Long
Dim vRet As Long
Dim vKeyID As Long

'si RegOpenKeyEx = 0, la creacion del registro fue exitosa
If Not RegOpenKeyEx(vHKey, vSubKey, 0, KEY_WRITE, vKeyID) = 0 Then Exit Function

'determinar el tipo de variable para el tipo de registro
'y luego introducir data a los registros
Select Case VarType(vData)
Case vbInteger, vbLong
Dim vLng As Long
vLng = vData
vRet = RegSetValueEx(vKeyID, vKey, 0, REG_DWORD, vLng, 4)
Case vbString
Dim vStr As String
vStr = vData
vRet = RegSetValueEx(vKeyID, vKey, 0, REG_SZ, ByVal vStr, Len(vStr))
Case vbArray + vbByte
Dim vByt() As Byte
vByt = vData
vRet = RegSetValueEx(vKeyID, vKey, 0, REG_BINARY, vByt(LBound(vByt)), UBound(vByt) - LBound(vByt) + 1)
Case Else
'error: no se pudo determinar la variable
RegCloseKey vKeyID
End Select

'si RegSetValueEx = 0, la operacion fue exitosa
If vRet = 0 Then SetReg = True
RegCloseKey vKeyID
End Function
  #3 (permalink)  
Antiguo 03/08/2006, 18:36
Avatar de Dark Wolf  
Fecha de Ingreso: julio-2006
Ubicación: En Uruguay
Mensajes: 32
Antigüedad: 17 años, 9 meses
Puntos: 0
¿Me podrias indicar en que parte del codigo debo introducir el texto a ingresar en el Registro?
¿Y que trozo debo escribir en el codigo del Command?
Muchas gracias por tu ayuda amigo
  #4 (permalink)  
Antiguo 03/08/2006, 20:12
Avatar de jogarrio  
Fecha de Ingreso: agosto-2006
Mensajes: 16
Antigüedad: 17 años, 9 meses
Puntos: 0
claro! ese codigo que te puse antes debe estar en un modulo .BAS. a la hora de utilizar la funcion, tu codigo debe ser algo asi:

if SetReg( HKEY_CURRENT_USER,"Software\Microsoft\Windows\Curr entVersion\Run","MiPrograma","%windir%\miprograma. exe") then Msgbox "Registro editado exitosamente!" else Msgbox "Error!"
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:08.