Sábado 9 de Noviembre de 2024, 03:25
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación General
»
Visual Basic 6.0 e inferiores
(Moderador:
F_Tanori
) »
Obtener Valor Binario Del Registro
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Obtener Valor Binario Del Registro (Leído 2228 veces)
MindEye
Miembro MUY activo
Mensajes: 185
Obtener Valor Binario Del Registro
«
en:
Viernes 18 de Febrero de 2005, 16:59 »
0
- Hola compys, como puedo leer un valor binario del registro, como por ejemplo
'HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Controls Folder\Presentation Cache' que es de tipo Reg_Binary. Es que cuando lo intento, me cierra todo el programa, hasta el visual basic me lo cierra, es que no se que hacer. He probado con variables de tipo variant, y incluso a no declararla, pero nada.
- Ayuda please.
- Gracias compys.
Tweet
Cyclop
Miembro MUY activo
Mensajes: 323
Re: Obtener Valor Binario Del Registro
«
Respuesta #1 en:
Viernes 18 de Febrero de 2005, 17:04 »
0
Usa el WScript es mas facil
Salu2
Cyclopz
Icotext Evolution v0.5 para los amantes del ASCII Art
http]
MindEye
Miembro MUY activo
Mensajes: 185
Re: Obtener Valor Binario Del Registro
«
Respuesta #2 en:
Viernes 18 de Febrero de 2005, 18:11 »
0
- Vale, pero como, es que no lo entiendo, es posible que me des un pequeño ejemplo, para aclararme
- Gracias
Cyclop
Miembro MUY activo
Mensajes: 323
Re: Obtener Valor Binario Del Registro
«
Respuesta #3 en:
Sábado 19 de Febrero de 2005, 02:41 »
0
Prueba esto, no se si funcionara pero lo hice en una maquina que no tiene VB
Código: Text
Dim WSHShell
Set WSHShell = WScript.CreateObject("WScript.Shell")
bin = ReadKey("HKCU\MiCarpeta\MiRegistroBinario")
For n = 0 To UBound(bin)
Me.Print Chr(bin(n))
Next
Function ReadKey(ByVal sPath As String) As String
ReadKey = WSHShell.RegRead(sPath)
End Function
Sub CreateKey(ByVal sPath As String, ByVal sValue As String)
WSHShell.RegWrite sPath, sValue
End Sub
Sub DeleteKey(ByVal sPath As String)
WSHShell.RegDelete sPath
End Sub
Suerte
Cyclopz
Icotext Evolution v0.5 para los amantes del ASCII Art
http]
Brroz
Miembro de PLATA
Mensajes: 1058
Re: Obtener Valor Binario Del Registro
«
Respuesta #4 en:
Sábado 19 de Febrero de 2005, 10:15 »
0
Hola
Ahí va:
Código: Text
Option Explicit
Private Const HKEY_LOCAL_MACHINE = &H80000002
Private Const ERROR_SUCCESS = 0&
Private Const KEY_QUERY_VALUE = &H1
Private Const REG_BINARY = 3
Private 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
Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Private Declare Function RegEnumValue Lib "advapi32.dll" Alias "RegEnumValueA" (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpValueName As String, lpcbValueName As Long, ByVal lpReserved As Long, lpType As Long, lpData As Byte, lpcbData As Long) As Long
Private Sub Command1_Click()
Dim lRc As Long
Dim lhKey1 As Long, lhKey2 As Long
lRc = RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software", 0&, KEY_QUERY_VALUE, lhKey1)
If lRc <> ERROR_SUCCESS Then Exit Sub
lRc = RegOpenKeyEx(lhKey1, "Microsoft", 0&, KEY_QUERY_VALUE, lhKey2)
RegCloseKey lhKey1
If lRc <> ERROR_SUCCESS Then Exit Sub
lRc = RegOpenKeyEx(lhKey2, "Windows", 0&, KEY_QUERY_VALUE, lhKey1)
RegCloseKey lhKey2
If lRc <> ERROR_SUCCESS Then Exit Sub
lRc = RegOpenKeyEx(lhKey1, "CurrentVersion", 0&, KEY_QUERY_VALUE, lhKey2)
RegCloseKey lhKey1
If lRc <> ERROR_SUCCESS Then Exit Sub
lRc = RegOpenKeyEx(lhKey2, "Controls Folder", 0&, KEY_QUERY_VALUE, lhKey1)
RegCloseKey lhKey2
If lRc <> ERROR_SUCCESS Then Exit Sub
Dim bytData(4096) As Byte, lLen As Long
lRc = RegEnumValue(lhKey1, 1&, "Presentation Cache", 19&, 0&, REG_BINARY, bytData(0), 4096)
RegCloseKey lhKey1
If lRc = ERROR_SUCCESS Then
Dim sChr As String, i1 As Integer
For i1 = 0 To 4095
sChr = sChr & Chr(bytData(i1))
Next i1
Debug.Print sChr
End If
End Sub
Se puede mejorar redimensionando bytData a la longitud exacta del valor y recuperando el índice del valor, pero como sé que así en mi caso vale... imagino que en el tuyo también...
Chao.
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación General
»
Visual Basic 6.0 e inferiores
(Moderador:
F_Tanori
) »
Obtener Valor Binario Del Registro