elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Crear y comprovar claves de registro
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Crear y comprovar claves de registro  (Leído 3,886 veces)
Saok Dagon

Desconectado Desconectado

Mensajes: 115

SaOk


Ver Perfil WWW
Crear y comprovar claves de registro
« en: 11 Junio 2006, 15:32 pm »

ola

Bueno tengo un problema,necesito que mi programa cree una clave en el registro(eso se hacerlo).Luego en otro programa necesito que compruebe esa clave(no se como puedo comprovarla) si esta termine su propio proceso(esto se hacerlo) y si no esta siga la ejecucion del resto del codigo.

aver si me pueden exar una mano

saludos[sh]

pd:tengo unos conocimientos casi medios de VB


En línea

www.colgados.net date una pasadita!

Todo el anime, manga, pelis, series...etc
NYlOn


Desconectado Desconectado

Mensajes: 842


OOOOHHHHHH, TARAGÜIIII xDDDDDD


Ver Perfil WWW
Re: Crear y comprovar claves de registro
« Respuesta #1 en: 11 Junio 2006, 17:59 pm »

En un modulo:
Código:
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 RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Public Function RegLeerClave(Key As String, SubKey As String) As Boolean 'Devuelve TRUE si existe, FALSE si no existe
    Dim regRes As Long
    Key = LLave(Key)
    RegOpenKey Key, SubKey, regRes
    If regRes = 0 Then
        RegLeerClave = False
    Else
        RegLeerClave = True
    End If
    RegCloseKey regRes
End Function

Para usarlo seria:
Código:
If RegLeerClave("HKLM", "Software\Prueba") = True then 'Prueba seria la clave a comprobar...
End 'Terminamos el programa
end if


En línea

Saok Dagon

Desconectado Desconectado

Mensajes: 115

SaOk


Ver Perfil WWW
Re: Crear y comprovar claves de registro
« Respuesta #2 en: 11 Junio 2006, 19:56 pm »

ola

ese code me da error,me dice procedimiento externo no valido  :-\

saludos[sh]
En línea

www.colgados.net date una pasadita!

Todo el anime, manga, pelis, series...etc
NYlOn


Desconectado Desconectado

Mensajes: 842


OOOOHHHHHH, TARAGÜIIII xDDDDDD


Ver Perfil WWW
Re: Crear y comprovar claves de registro
« Respuesta #3 en: 12 Junio 2006, 17:46 pm »

¿En que linea te da el error?
¿Tenes permiso para leer el registro?

El codigo esta provado y funciona =S Uso WindowsXP SP2.
En línea

Saok Dagon

Desconectado Desconectado

Mensajes: 115

SaOk


Ver Perfil WWW
Re: Crear y comprovar claves de registro
« Respuesta #4 en: 12 Junio 2006, 18:15 pm »

ola

If RegLeerClave("HKLM", "Software\Prueba") = True then 'Prueba seria la clave a comprobar...
End 'Terminamos el programa
end if

concretamente ahi.

Si tengo permisos para editar el registro.

saludos[sh]
En línea

www.colgados.net date una pasadita!

Todo el anime, manga, pelis, series...etc
NYlOn


Desconectado Desconectado

Mensajes: 842


OOOOHHHHHH, TARAGÜIIII xDDDDDD


Ver Perfil WWW
Re: Crear y comprovar claves de registro
« Respuesta #5 en: 12 Junio 2006, 19:46 pm »

Tenes razon, me olvide de poner una funcion y un par de constantes  :-X.
Entonces, a lo que era el modulo antes, le agregas esto y va a andar bien:
Código:
Public Const HKEY_CLASSES_ROOT = &H80000000
Public Const HKEY_CURRENT_USER = &H80000001
Public Const HKEY_LOCAL_MACHINE = &H80000002
Public Const HKEY_USERS = &H80000003
Public Const HKEY_CURRENT_CONFIG = &H80000005

Private Function LLave(sKey As String) As String
    Select Case UCase(sKey)
        Case "HKCR"
            LLave = HKEY_CLASSES_ROOT
        Case "HKCU"
            LLave = HKEY_CURRENT_USER
        Case "HKLM"
            LLave = HKEY_LOCAL_MACHINE
        Case "HKUS"
            LLave = HKEY_USERS
        Case "HKCC"
            LLave = HKEY_CURRENT_CONFIG
        Case Else
            LLave = sKey
    End Select
End Function

En realidad la funcion es por comodidad ;D En vez de tener que escribir HKEY_LOCAL_MACHINE escribis HKLM y lo cambia automaticamente a su constante (en este caso, "&H80000002").
Espero que ahora funcione... Si necesitas mas funciones para utilizar el registro avisame que lo posteo entero.

Saludos.-
En línea

Saok Dagon

Desconectado Desconectado

Mensajes: 115

SaOk


Ver Perfil WWW
Re: Crear y comprovar claves de registro
« Respuesta #6 en: 12 Junio 2006, 20:45 pm »

ola

si,pero ahora me falta que dentro de esa ruta lea un valor alfanumerico osea

If RegLeerClave("HKCU","SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "nombre") = False Then
end if

pero no anda,me da error en lo de  RegleerClave

saludos[sh]
En línea

www.colgados.net date una pasadita!

Todo el anime, manga, pelis, series...etc
NYlOn


Desconectado Desconectado

Mensajes: 842


OOOOHHHHHH, TARAGÜIIII xDDDDDD


Ver Perfil WWW
Re: Crear y comprovar claves de registro
« Respuesta #7 en: 13 Junio 2006, 02:40 am »


Yaaaaaaaaaaaaaa te entendi!!! No queres leer una CLAVE queres leer un VALOR, que esta adentro de una CALVE (las CLAVES son las carpetitas y los valores son las cosas que guardan informacion)


Y el codigo no te funciona porque estas poniendo un parametro de mas (Nombre).



A ver si esto te sirve...
Código:
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 RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Public Const HKEY_CLASSES_ROOT = &H80000000
Public Const HKEY_CURRENT_USER = &H80000001
Public Const HKEY_LOCAL_MACHINE = &H80000002
Public Const HKEY_USERS = &H80000003
Public Const HKEY_CURRENT_CONFIG = &H80000005

Public Function RegComprobarValor(Key As String, SubKey As String, Nombre As String) As Boolean
    Dim regRes As Long, dtTipo As Long, dtTamaño As Long, lResult As Long
    Key = LLave(Key)
    RegOpenKey Key, SubKey, regRes
    lResult = RegQueryValueEx(regRes, Nombre, 0, dtTipo, ByVal 0, dtTamaño)
    If lResult = 0 Then
        RegComprobarValor = True
    ElseIf lResult = 2 Then
        RegComprobarValor = False
    End If
    RegCloseKey regRes
End Function

Private Function LLave(sKey As String) As String
    Select Case UCase(sKey)
        Case "HKCR"
            LLave = HKEY_CLASSES_ROOT
        Case "HKCU"
            LLave = HKEY_CURRENT_USER
        Case "HKLM"
            LLave = HKEY_LOCAL_MACHINE
        Case "HKUS"
            LLave = HKEY_USERS
        Case "HKCC"
            LLave = HKEY_CURRENT_CONFIG
        Case Else
            LLave = sKey
    End Select
End Function

Entonces, para utilizarlo seria asi:
Código:
    MsgBox RegComprobarValor("HKCU", "Software\Microsoft\Windows\CurrentVersion\Run", App.ExeName)

Si existe te va a devolver True y si no existe te va a devolver False.




Saludos.-
En línea

Saok Dagon

Desconectado Desconectado

Mensajes: 115

SaOk


Ver Perfil WWW
Re: Crear y comprovar claves de registro
« Respuesta #8 en: 13 Junio 2006, 13:57 pm »

ola

yo pruebo esto,y me sige dando error aver donde esta mal

Private Sub Form_Load()
    If RegComprobarValor("HKCU", "Software\Microsoft\Windows\CurrentVersion\Run\", "WindowsUpdates") = True Then
    MsgBox "funca"
    Else
    MsgBox "no funca"
    End If
End Sub

siempre me devuelve no funca

saludos[sh]
En línea

www.colgados.net date una pasadita!

Todo el anime, manga, pelis, series...etc
Hendrix
In The Kernel Land
Colaborador
***
Desconectado Desconectado

Mensajes: 2.276



Ver Perfil WWW
Re: Crear y comprovar claves de registro
« Respuesta #9 en: 13 Junio 2006, 15:31 pm »

Prueba substituyendo true por 1 y false por 0... ;) ;) ;)

En línea

"Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Crear registro
Programación C/C++
jaxoR 5 2,241 Último mensaje 17 Febrero 2015, 17:38 pm
por eferion
Comprovar pen de de 2 tb « 1 2 »
Hardware
gabriel1995 14 6,144 Último mensaje 5 Noviembre 2015, 11:24 am
por Thryks
Como modicicar claves de registro de windows « 1 2 »
Scripting
Pedrodudasmaster 10 8,175 Último mensaje 21 Febrero 2024, 13:47 pm
por elektrostudios2
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines