AYUDA con la API " RegConnectRegistry() "
Publicado por cesar24_a (6 intervenciones) el 06/03/2004 02:41:44
A ver si alguien save que pasa con esto que no quiere andar ni a palo..
Esta api ,RegConnectRegistry(), sirve para acceder al registro de windows
de otra pc remota en una red (o tambien se accede al registro de la pc actual
si se le pasa nulo en el nombre de la pc a conectarse). Para usarla es bastante simple,
se le pasan tres parámetros, en el primero se le pasa en nombre de la pc remota al que
se le quire acceder el registro (por ejemplo "\\terminal4"), en el segundo se le pasa
el identificador de la clave raiz al que se quiere acceder (por ej. &H80000002 que corresponde a
KEY_LOCAL_MACHINE) y el tercero es donde se recibe el handle si se ha conectado exitosamente o
cero si hubo error.
La funcion devuelve cero si fue exitoso o un numero de error si hubo algun problema.
Bien.. el problema que tengo es que no hay forma de que funcione con una pc remota, solamente
funciona bien cuando se conecta con la actual (es decir con el nombre de pc en nulo chr(0) )
y no encuentro el porque...
El error que me devuelve es 1114 y significa "Error en una rutina de inicialización de
biblioteca de vínculos dinámicos (DLL)" pero no se que quiere decir en realidad...
Aqui va el ejemplito del código
Declare Function RegConnectRegistryA Lib "advapi32.dll" _
(lpMachineName As String, ByVal hKey As Long, phkResult As Long) As Long
Global Const HKEY_LOCAL_MACHINE = &H80000002 'para hKey en la funcion
Dim nombrePcRemoto As String 'para lpMachineName en la funcion
Dim HandleResult As Long 'para phkResult en la funcion
Dim lRetVal As Long 'el resultado de error del la funcion
nombrePcRemoto
Esta api ,RegConnectRegistry(), sirve para acceder al registro de windows
de otra pc remota en una red (o tambien se accede al registro de la pc actual
si se le pasa nulo en el nombre de la pc a conectarse). Para usarla es bastante simple,
se le pasan tres parámetros, en el primero se le pasa en nombre de la pc remota al que
se le quire acceder el registro (por ejemplo "\\terminal4"), en el segundo se le pasa
el identificador de la clave raiz al que se quiere acceder (por ej. &H80000002 que corresponde a
KEY_LOCAL_MACHINE) y el tercero es donde se recibe el handle si se ha conectado exitosamente o
cero si hubo error.
La funcion devuelve cero si fue exitoso o un numero de error si hubo algun problema.
Bien.. el problema que tengo es que no hay forma de que funcione con una pc remota, solamente
funciona bien cuando se conecta con la actual (es decir con el nombre de pc en nulo chr(0) )
y no encuentro el porque...
El error que me devuelve es 1114 y significa "Error en una rutina de inicialización de
biblioteca de vínculos dinámicos (DLL)" pero no se que quiere decir en realidad...
Aqui va el ejemplito del código
Declare Function RegConnectRegistryA Lib "advapi32.dll" _
(lpMachineName As String, ByVal hKey As Long, phkResult As Long) As Long
Global Const HKEY_LOCAL_MACHINE = &H80000002 'para hKey en la funcion
Dim nombrePcRemoto As String 'para lpMachineName en la funcion
Dim HandleResult As Long 'para phkResult en la funcion
Dim lRetVal As Long 'el resultado de error del la funcion
nombrePcRemoto
Valora esta pregunta


0