
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

| ||||
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 |
| ||||
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!" |