Visual Basic - API RegEnumKeyEx me puede!!!!!!

Life is soft - evento anual de software empresarial
 
Vista:

API RegEnumKeyEx me puede!!!!!!

Publicado por [Endless_loop] (32 intervenciones) el 19/09/2005 21:45:49
Bueno, primero les muestro este codigo

const ClaveInstaladores = "Software\Microsoft\Windows\CurrentVersion\Uninstall"

Public Sub EnumerarProgramasDeUsuario()
Dim Resultado As Long
Form1.List1.Clear
If RegOpenKey(HKLM, ClaveInstaladores, Resultado) Then
Form1.List1.AddItem ("<No se pueden listar los items>")
Exit Sub
End If
Dim IndiceQueDebeIncrementarse As Long
Dim pNombre As String * 256, pClase As String
Dim pLongNombre As Long, pLongClase, pReservado As Long, pepe As Long
Dim CodError1 As Long
'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArreglar estos parametros
IndiceQueDebeIncrementarse = 0
pLongNombre = 256
pNombre = Space(255)
CodError1 = RegEnumKeyEx(Resultado, IndiceQueDebeIncrementarse, pNombre, pLongNombre, ByVal 0&, vbNullString, ByVal 0&, ByVal 0&)
While CodError1 = 0&
'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArreglar esta funcion
'leer la clave esa. si empieza con {, pasarla por alto.
'si no tiene un valor UninstallString, pasarla por alto.
'si su valor empieza con "MSIEXEC.EXE", pasarla por alto.
'De otra forma, agregar el DisplayName a la lista
Dim SegundoResultado As Long
If Left(pNombre, 1) <> "{" Then
Dim pNombreValor As String, pTipo As Long, pDatos As String, pLongDatos As Long
Dim CodError2 As Long
pNombreValor = CadenaInstaladores & "\UninstallString"
pReservado = 0
CodError = RegQueryValueEx(Resultado, pNombreValor, pReservado, pTipo, pDatos, pLongDatos)
'If CodError2 <> 0 Then
pDatos = UCase(pDatos)
'If InStr(1, pDatos, "MSIEXEC.EXE") = 0 Then
pNombreValor = CadenaInstaladores & "\DisplayName"
pReservado = 0
RegQueryValueEx HKLM, pNombreValor, pReservado, pTipo, pDatos, pLongDatos
Form1.List1.AddItem (pDatos)
'End If
'Else
'MsgBox "Error al leer el Valor. Codigo de error: " & Format(CodError2, "0")
'End If
End If
IndiceQueDebeIncrementarse = IndiceQueDebeIncrementarse + 1
CodError1 = RegEnumKeyEx(Resultado, IndiceQueDebeIncrementarse, pNombre, pLongNombre, ByVal 0&, vbNullString, ByVal 0&, ByVal 0&)
DoEvents
DoEvents
Wend
If (CodError1 <> 0) Then MsgBox "Error al leer la Clave. Codigo de error: " & Format(CodError1, "0")

RegCloseKey Resultado

La fruteada me aparece en la llamada a RegEnumKeyEx, que me da el error 234 (&Hea).

Alguien sabria decirme en que la estoy fruteando yo, y/o que es el error 234?

End Sub
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder