Saber si el usuario es administrador |
Responder ![]() |
Autor | |
Plinio Montano ![]() Habitual ![]() ![]() Unido: 10/Marzo/2015 Localización: Cuba Estado: Sin conexión Puntos: 90 |
![]() ![]() ![]() ![]() ![]() Enviado: 28/Abril/2022 a las 02:20 |
Estimados colegas mis deseos de salud para todos.
? Como podría saber con VBA en Access, si el usuario activo en Windows es un usuario administrador, es decir si pertenece al grupo de administradores de Windows ? Saludos cordiales
|
|
pmv
|
|
![]() |
|
mounir ![]() Colaborador ![]() Unido: 09/Febrero/2009 Localización: Asturias-España Estado: Sin conexión Puntos: 6351 |
![]() ![]() ![]() ![]() ![]() |
Hola!
Mira a ver si te sirve la función Environ mas cosas sobre su uso http://aulaclick-access.blogspot.com/2019/06/funcion-environ-en-access-variables-de.html |
|
Un Saludo.
|
|
![]() |
|
Plinio Montano ![]() Habitual ![]() ![]() Unido: 10/Marzo/2015 Localización: Cuba Estado: Sin conexión Puntos: 90 |
![]() ![]() ![]() ![]() ![]() |
Gracias mounir, pero busque la función Environ y no me sirvió para determinar la categoría del usuario activo en windows.
|
|
pmv
|
|
![]() |
|
Plinio Montano ![]() Habitual ![]() ![]() Unido: 10/Marzo/2015 Localización: Cuba Estado: Sin conexión Puntos: 90 |
![]() ![]() ![]() ![]() ![]() |
Estimados colegas
Solicito se cierre este hilo. Saludos cordiales. Un gran abrazo
|
|
pmv
|
|
![]() |
|
dokk ![]() Habitual ![]() Unido: 15/Mayo/2020 Localización: Hendaye Estado: Sin conexión Puntos: 135 |
![]() ![]() ![]() ![]() ![]() |
¿Y cómo lo hiciste?
|
|
Albert Hostein
Aprendiendo cayendo |
|
![]() |
|
Plinio Montano ![]() Habitual ![]() ![]() Unido: 10/Marzo/2015 Localización: Cuba Estado: Sin conexión Puntos: 90 |
![]() ![]() ![]() ![]() ![]() |
Perdonen tuve algunas dificultades y he estados ausente, les pido disculpas.
El problema de saber si el usuario es administrador, lo resolví con el siguiente código, que en realidad lo que hace es decirme si el proceso Access está ejecutándose como administrador. 'Función Api OpenSCManager Public Declare Function OpenSCManager Lib "advapi32.dll" Alias "OpenSCManagerA" ( _ ByVal lpMachineName As String, _ ByVal lpDatabaseName As String, _ ByVal dwDesiredAccess As Long) As Long 'Función Api CloseServiceHandle Public Declare Function CloseServiceHandle Lib "advapi32.dll" ( _ ByVal hSCObject As Long) As Long Public Function EsAdminPC() As Boolean Dim Admin As Long Admin = OpenSCManager(vbNullString, _ vbNullString, _ GENERIC_READ Or GENERIC_WRITE Or GENERIC_EXECUTE) 'Si la función retorna 0 no es Administrador If Admin = 0 Then EsAdminPC = False Else CloseServiceHandle Admin EsAdminPC = True End If End Function |
|
pmv
|
|
![]() |
|
xavi ![]() Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador ![]() ![]() Terrassa-BCN Unido: 10/Mayo/2005 Localización: Catalunya |||| Estado: Sin conexión Puntos: 14205 |
![]() ![]() ![]() ![]() ![]() |
Hola,
Me permito reabrir el tema porque he estado probando la función (siempre es interesante aprender cosas) y, en mi caso, no me aportaría la información deseable. Al probar la función siempre me devuelvo Falso aunque el usuario, que no es administrador, si tiene privilegios de administrador de la máquina. ¿Te pasa lo mismo? Por cierto, faltan los valores de las constantes. Los dejo aquí: Const GENERIC_READ As Long = &H80000000 Const GENERIC_WRITE As Long = &H40000000 Const GENERIC_EXECUTE As Long = &H20000000 Un saludo
|
|
![]() |
|
emiliove ![]() Administrador ![]() Unido: 16/Junio/2009 Localización: Mexico Estado: en línea Puntos: 5499 |
![]() ![]() ![]() ![]() ![]() |
La Api IsUserAnAdmin creo que te va Xavi:
Saludos.
|
|
![]() |
|
xavi ![]() Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador ![]() ![]() Terrassa-BCN Unido: 10/Mayo/2005 Localización: Catalunya |||| Estado: Sin conexión Puntos: 14205 |
![]() ![]() ![]() ![]() ![]() |
Gracias Emilio.
Efectivamente, con esa API sabemos si la aplicación se está ejecutando como Administrador. En mi portatil mi perfil de usuario es de Administrador. Cuando abro Excel "normal" y ejecuto esa función me devuelve FALSE Cuando abro Excel "como administrador" me devuelve TRUE No es aun perfecto pero se acerca. He visto otras cosas que tienen buena pinta pero que no acaban de funcionar: [RESUELTO] ¿Cómo determinar si el usuario es administrador?-VBForums
|
|
![]() |
Responder ![]() |
|
Tweet
|
Ir al foro | Permisos de foro ![]() Usted No puede publicar nuevos temas en este foro Usted No puede responder a temas en este foro Usted No puede borrar sus mensajes en este foro Usted No puede editar sus mensajes en este foro Usted No puede crear encuestas en este foro Usted No puede votar en encuestas en este foro |