Foros del Web » Programación para mayores de 30 ;) » Programación General »

Borrar clave del registro en vb

Estas en el tema de Borrar clave del registro en vb en el foro de Programación General en Foros del Web. Hola ¿Por qué esto me da error 'la convención de llamadas a dll es incorrecta? Código: Command1_click() Resultado% = RegBorrarClave("MACHINE", "SAM\Miclave", 32) end sub En ...
  #1 (permalink)  
Antiguo 13/01/2004, 08:58
 
Fecha de Ingreso: agosto-2003
Mensajes: 174
Antigüedad: 20 años, 8 meses
Puntos: 3
Borrar clave del registro en vb

Hola
¿Por qué esto me da error 'la convención de llamadas a dll es incorrecta?

Código:
Command1_click()
Resultado% = RegBorrarClave("MACHINE", "SAM\Miclave", 32)
end sub
En un módulo
Código:
Global Const HKEY_CLASSES_ROOT = &H80000000
Global Const HKEY_CURRENT_USER = &H80000001
Global Const HKEY_LOCAL_MACHINE = &H80000002
Global Const HKEY_USERS = &H80000003
Global Const HKEY_CURRENT_CONFIG = &H80000005
Global Const HKEY_DYN_DATA = &H80000006
Global Const HKEY_PERFORMANCE_DATA = &H80000004

Global Const KEY_WOW64_64KEY  As Long = &O100   '// 64-bit Key
Global Const KEY_WOW64_32KEY As Long = &O200 '// 32-bit Key
Declare Function RegDeleteKeyEx Lib "advapi32.dll" Alias _
       "RegDeleteKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, _
       ByVal samDesired As Long, ByVal Reserved As Long) As Long
Código:
Function RegBorrarClave(ClaveStr As String, SubClave As String, Tipo As String)
Dim Resultado As long, Handle As String, Clave As Long
Clave = ObtenerClave(ClaveStr)
If Tipo = 32 Then
    Resultado = RegDeleteKeyEx(Clave, SubClave, KEY_WOW64_32KEY, 0) /* ERROR *
ElseIf Tipo = 64 Then
    Resultado = RegDeleteKeyEx(Clave, SubClave, KEY_WOW64_64KEY, 0)
Else
    Resultado = -1
End If
RegBorrarClave = Resultado
End Function
Código:
Function ObtenerClave(str As String)
Select Case str
    Case "MACHINE"
        Clave = HKEY_LOCAL_MACHINE
    Case "ROOT"
        Clave = HKEY_LOCAL_ROOT
    Case "USER"
        Clave = HKEY_CURRENT_USER
    Case "CONFIG"
        Clave = HKEY_CURRENT_CONFIG
    Case "USERS"
        Clave = HKEY_USERS
    Case "DATA"
        Clave = HKEY_PERFOMANCE_DATA
    Case "TEXT"
        Clave = HKEY_PERFOMANCE_TEXT
    Case "NSLTEXT"
        Clave = HKEY_PERFOMANCE_NLSTEXT
    Case Else
        Clave = -1
End Select
ObtenerClave = Clave
End Function
He comprobado en el depurador que llega a la línea que he marcado con /* ERROR * con los valores:
Clave = HKEY_LOCAL_MACHINE
SubClave = "SAM\MiClave"
que son correctos


Última edición por Gedeon; 13/01/2004 a las 09:10
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:42.