hola
alguien me puede decir como consultar un registro de regedit..
kisiera que con un codigo.. analizar un registro y que el nombre del registro me aparezca en una caja de texto....
por ejemplo
si el registro es asi
hola reg_sz 1234
en la caja de texto kisiera que me apareciera esto...
1234
como le hago?
tambien alguien me puede decir como creo y modifico registros DWORD...
ya que me gustaria crear algun registro DWORD y darle algun valor... pero tambien buscar algun registro DWORD y cambiarle el valor...
por ejemplo, si un DWORD tiene 1.. y quiero cambiarle a 2.. como lo hago?... o si tiene alguna direccion como escribirle otra.. etc.
tambien como elimino registros...
una forma sencilla de crear registros " string" es
dim sys
dim reg
reg = ("WScript.Shell")
reg.write "hkey\***\***\***\" & "nombre",sys & "nombre2"
bueno no recuerdo bien pero era algo asi...
hay alguna forma sencilla como esta para crear registro como los que necesito y modificarlos tambien...
o necesito utilizar la api`s RegOpenKeyEx y otras
porque ya lo intente con esas pero no lo logre... me pueden ayudar diciendome como manejo registro desde esa api o con algun codigo que uds conozcan
espero su respuesta
gracias ;D
Te recomiendo que utilices el api de windows para tocar el registro las declaraciones basicas son
Public Declare Function RegQueryValue Lib "advapi32.dll" Alias "RegQueryValueA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal lpValue As String, lpcbValue As Long) As Long
Public Declare Function RegEnumKey Lib "advapi32" Alias "RegEnumKeyA" (ByVal hKey As Long, ByVal iSubKey As Long, ByVal lpszName As String, ByVal cchName As Long) As Long
Public Declare Function RegOpenKey Lib "advapi32" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpszSubKey As String, phkResult As Long) As Long
Public Declare Function RegCloseKey Lib "advapi32" (ByVal hKey As Long) As Long
Public Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Public Declare Function RegSetValue Lib "advapi32.dll" Alias "RegSetValueA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal dwType As Long, ByVal lpData As String, ByVal cbData As Long) As Long
Public Declare Function RegDeleteKey Lib "advapi32.dll" Alias "RegDeleteKeyA" (ByVal hKey As Long, ByVal lpSubKey As String) As Long
Public 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
Public Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String) As Long
las consantes basicas
Public Const HKEY_LOCAL_MACHINE = &H80000002
Public Const HKEY_CLASSES_ROOT = &H80000000
y las operaciones basicas son
RegOpenKey HKEY_LOCAL_MACHINE, "llave que quieras abrir (SOFTWARE\Microsoft\Windows\CurrentVersion\Run)", h
valor = "c:\windows..."
RegSetValueEx h, "nombre del valor(prueba)", 0, 1, ByVal valor, Len(valor)
RegCloseKey h
y para borrar la clave anterior
RegOpenKey HKEY_LOCAL_MACHINE, "SOFTWARE\Microsoft\Windows\CurrentVersion\Run", h
RegDeleteValue h, "nombre del valor antrior"
RegCloseKey h
hola
gracias por la respuesta.. pero ahora como le hago para revisal algun registro
se hace con RegQueryValue... pero como?..
cada vez que lo intento se cierra visual basic...
talvez lo hago mal.... pero lo que quiero es revisar un registro y que me aparezca en una caja de texto
por ejemplo si en un registro me aparece esto...
UIHost REG_SZ logonui.exe
kisiera que en una caja de texto de visual me apareciera esto...
logonui.exe
pero como lo hago
espero su respuesta
gracias ;D
a ver colega ;D te explico como lo hago yo a continuación esto sería una función que te delvolvería si exisite la llave
Public 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
public Const REG_SZ = 1& 'para saber si es alfanumerico
private function is_key_registered()as boolean
Dim buffer as string
Dim lngType as long
Dim lngBuff as long
buffer = Space$(256)
lngBuff = len(buffer)
RegOpenKey HKEY_LOCAL_MACHINE,"SOFTWARE\Microsoft\Windows\CurrentVersion\Run",h
ret = RegqueryValueEx (h,"nombredelvalor",0,lngType,ByVal buffer,lngBuff)
RegCloseKey h
if ret = 0 and lngType = REG_SZ and lngBuff>1 then
is_key_registered = true
else
is_key_registered = false
end if
'puedes acceder al valor haciendo por ejemplo
'un msgbox del buffer y te enseñará el valor
end function
espero que te sirva :¬¬
si tienes algun problema dilo :huh:
hasta luego