| 
	
		|  Autor | Tema: Modificar regedit usando visual basic  (Leído 16,172 veces) |  
	|  |  | 
			| 
					
						| Novlucker 
								Ninja y 
								Colaborador
								      Desconectado 
								Mensajes: 10.683
								 
								Yo que tu lo pienso dos veces
								
								
								
								
								
								   | 
 
Buenas. 1) Es modificar el registro de win, ... regedit es solo una herramienta como el notepad    2) No se pueden crear más "carpetas" además de las que ya están, vease: HKEY_CLASSES_ROOTHKEY_CURRENT_USERHKEY_LOCAL_MACHINEHKEY_USERSHKEY_CURRENT_CONFIG
 3) El código que tienes sirve para modificar o crear claves    , aunque mejor que utilizar este método es utilizar APIS, RegCreateKey, RegQueryValueEx, etc    Saludos
 
 |  
						| 
								|  |  
								| « Última modificación: 18 Febrero 2009, 07:09 am por Novlucker » |  En línea | 
 
 Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
 Albert Einstein |  |  |  |  |  | 
			| 
					
						| Karcrack 
								       
								
								 Desconectado 
								Mensajes: 2.416
								
								 
								Se siente observado ¬¬'
								
								
								
								
								
								   | 
 
APIs:Const HKEY_CURRENT_USER = &H80000001Const REG_OPTION_BACKUP_RESTORE = 4     ' open for backup or restore
 Const REG_OPTION_VOLATILE = 1           ' Key is not preserved when system is rebooted
 Const REG_OPTION_NON_VOLATILE = 0       ' Key is preserved when system is rebooted
 Const STANDARD_RIGHTS_ALL = &H1F0000
 Const SYNCHRONIZE = &H100000
 Const READ_CONTROL = &H20000
 Const STANDARD_RIGHTS_READ = (READ_CONTROL)
 Const STANDARD_RIGHTS_WRITE = (READ_CONTROL)
 Const KEY_CREATE_LINK = &H20
 Const KEY_CREATE_SUB_KEY = &H4
 Const KEY_ENUMERATE_SUB_KEYS = &H8
 Const KEY_NOTIFY = &H10
 Const KEY_QUERY_VALUE = &H1
 Const KEY_SET_VALUE = &H2
 Const KEY_READ = ((STANDARD_RIGHTS_READ Or KEY_QUERY_VALUE Or KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY) And (Not SYNCHRONIZE))
 Const KEY_WRITE = ((STANDARD_RIGHTS_WRITE Or KEY_SET_VALUE Or KEY_CREATE_SUB_KEY) And (Not SYNCHRONIZE))
 Const KEY_EXECUTE = (KEY_READ)
 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 RegCloseKey Lib "advapi32.dll" (ByVal hKey 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 RegCreateKeyEx Lib "advapi32.dll" Alias "RegCreateKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal Reserved As Long, ByVal lpClass As String, ByVal dwOptions As Long, ByVal samDesired As Long, lpSecurityAttributes As Any, phkResult As Long, lpdwDisposition As Long) As Long
 Private Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal Reserved As Long, ByVal samDesired As Long, phkResult As Long) As Long
 Private Sub Form_Load()
 'KPD-Team 2000
 'URL: http://www.allapi.net/
 'E-Mail: KPDTeam@Allapi.net
 Dim Result As Long
 'Check if the specified key exists
 RegOpenKeyEx HKEY_CURRENT_USER, "KPD-Team", 0, KEY_ALL_ACCESS, Result
 'If the key doesn't exist, we create it
 If Result = 0 Then
 'Create a new key
 RegCreateKeyEx HKEY_CURRENT_USER, "KPD-Team", 0, "REG_DWORD", REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, ByVal 0&, Result, Ret
 If Result = 0 Then
 MsgBox "Error while creating the Key!!"
 Exit Sub
 End If
 End If
 'Delete the key
 RegDeleteKey Result, ""
 'close the handle
 RegCloseKey Result
 End Sub
Links:'This program needs 3 buttonsConst REG_SZ = 1 ' Unicode nul terminated string
 Const REG_BINARY = 3 ' Free form binary
 Const HKEY_CURRENT_USER = &H80000001
 Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
 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 RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String) 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 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 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
 Function RegQueryStringValue(ByVal hKey As Long, ByVal strValueName As String) As String
 Dim lResult As Long, lValueType As Long, strBuf As String, lDataBufSize As Long
 'retrieve nformation about the key
 lResult = RegQueryValueEx(hKey, strValueName, 0, lValueType, ByVal 0, lDataBufSize)
 If lResult = 0 Then
 If lValueType = REG_SZ Then
 'Create a buffer
 strBuf = String(lDataBufSize, Chr$(0))
 'retrieve the key's content
 lResult = RegQueryValueEx(hKey, strValueName, 0, 0, ByVal strBuf, lDataBufSize)
 If lResult = 0 Then
 'Remove the unnecessary chr$(0)'s
 RegQueryStringValue = Left$(strBuf, InStr(1, strBuf, Chr$(0)) - 1)
 End If
 ElseIf lValueType = REG_BINARY Then
 Dim strData As Integer
 'retrieve the key's value
 lResult = RegQueryValueEx(hKey, strValueName, 0, 0, strData, lDataBufSize)
 If lResult = 0 Then
 RegQueryStringValue = strData
 End If
 End If
 End If
 End Function
 Function GetString(hKey As Long, strPath As String, strValue As String)
 Dim Ret
 'Open the key
 RegOpenKey hKey, strPath, Ret
 'Get the key's content
 GetString = RegQueryStringValue(Ret, strValue)
 'Close the key
 RegCloseKey Ret
 End Function
 Sub SaveString(hKey As Long, strPath As String, strValue As String, strData As String)
 Dim Ret
 'Create a new key
 RegCreateKey hKey, strPath, Ret
 'Save a string to the key
 RegSetValueEx Ret, strValue, 0, REG_SZ, ByVal strData, Len(strData)
 'close the key
 RegCloseKey Ret
 End Sub
 Sub SaveStringLong(hKey As Long, strPath As String, strValue As String, strData As String)
 Dim Ret
 'Create a new key
 RegCreateKey hKey, strPath, Ret
 'Set the key's value
 RegSetValueEx Ret, strValue, 0, REG_BINARY, CByte(strData), 4
 'close the key
 RegCloseKey Ret
 End Sub
 Sub DelSetting(hKey As Long, strPath As String, strValue As String)
 Dim Ret
 'Create a new key
 RegCreateKey hKey, strPath, Ret
 'Delete the key's value
 RegDeleteValue Ret, strValue
 'close the key
 RegCloseKey Ret
 End Sub
 Private Sub Command1_Click()
 Dim strString As String
 'Ask for a value
 strString = InputBox("Please enter a value between 0 and 255 to be saved as a binary value in the registry.", App.Title)
 If strString = "" Or Val(strString) > 255 Or Val(strString) < 0 Then
 MsgBox "Invalid value entered ...", vbExclamation + vbOKOnly, App.Title
 Exit Sub
 End If
 'Save the value to the registry
 SaveStringLong HKEY_CURRENT_USER, "KPD-Team", "BinaryValue", CByte(strString)
 End Sub
 Private Sub Command2_Click()
 'Get a string from the registry
 Ret = GetString(HKEY_CURRENT_USER, "KPD-Team", "BinaryValue")
 If Ret = "" Then MsgBox "No value found !", vbExclamation + vbOKOnly, App.Title: Exit Sub
 MsgBox "The value is " + Ret, vbOKOnly + vbInformation, App.Title
 End Sub
 Private Sub Command3_Click()
 'Delete the setting from the registry
 DelSetting HKEY_CURRENT_USER, "KPD-Team", "BinaryValue"
 MsgBox "The value was deleted ...", vbInformation + vbOKOnly, App.Title
 End Sub
 Private Sub Form_Load()
 'KPD-Team 1998
 'URL: http://www.allapi.net/
 'E-Mail: KPDTeam@Allapi.net
 Command1.Caption = "Set Value"
 Command2.Caption = "Get Value"
 Command3.Caption = "Delete Value"
 End Sub
 |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| sellassie 
								
								 Desconectado 
								Mensajes: 23
								
								   | 
 
Excelente ,pude hacer lo que queria y mucho mas ,gracias por su ayuda    |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| cyberserver 
								
								 Desconectado 
								Mensajes: 162
								
								 
								Lo que una mente crea, otra lo destruye
								
								
								
								
								
								     | 
 
mmmm k rico huele a api gude   !!!! oie una pregunta me puedes pasar la funcion tal cual de crear un valor al registro, pero sin que tenga que ver ni usar la funcion de  CreateKey por que no quiero crear una clave.     si no encambio quiero introcudir un valor a una ya existente De antemano gracias    |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  |  |  
 
	
 
 
				
					
						| Mensajes similares |  
						|  | Asunto | Iniciado por | Respuestas | Vistas | Último mensaje |  
						|   |   | Regedit desde visual basic Programación Visual Basic
 | Lone | 3 | 4,419 |  22 Febrero 2011, 18:03 pm por Lone
 |  
						|   |   | modificar un IDL y que sea compatible con Visual Basic 6 Programación Visual Basic
 | eriflona | 0 | 1,511 |  23 Mayo 2012, 10:38 am por eriflona
 |  
						|   |   | tutorial sql usando visual c++ Programación C/C++
 | flony | 0 | 1,892 |  24 Octubre 2012, 14:24 pm por flony
 |  
						|   |   | pequeños problemitas, usando dev c++ y visual c++
							« 1 2 » Programación C/C++
 | luis_74 | 15 | 11,837 |  12 Mayo 2015, 05:06 am por x64core
 |  
						|   |   | Obtener datos de balanza usando Visual basic y ethernet Programación Visual Basic
 | Hervin | 1 | 3,533 |  14 Junio 2017, 02:46 am por PalitroqueZ
 |    |