Buenas! ;D
He estado buscando como saber si eres administrador o no con vb6, he encontrado estas dos funciones, y en Windows XP, funcionan perfectas, pero en Windows 8 siempre me devuelve false :-[
(En Windows 7 y Windows Vista no lo he probado)Option Explicit
' constantes
''''''''''''''''''''''''''''''
'Constantes para usar con OpenSCManager
Private Const GENERIC_READ = &H80000000
Private Const GENERIC_WRITE = &H40000000
Private Const GENERIC_EXECUTE = &H20000000
' declaraciones Api
''''''''''''''''''''''''''''''
'Función Api OpenSCManager
Private 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
Private Declare Function CloseServiceHandle Lib "advapi32.dll" ( _
ByVal hSCObject As Long) As Long
Private Sub Form_Load()
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
MsgBox "No es un Administrador", vbInformation
Else
CloseServiceHandle Admin
MsgBox "Es un administrador", vbInformation
End If
End Sub
Option Explicit
'Función Api IsNTAdmin
Private Declare Function IsNTAdmin Lib "advpack.dll" ( _
ByVal dwReserved As Long, _
ByRef lpdwReserved As Long) As Long
Private Sub Form_Load()
MsgBox "Administrador de este equipo: ? " & _
CBool(IsNTAdmin(ByVal 0&, ByVal 0&)), vbInformation
End Sub
Se puede mirar de otra manera? Es decir, alguna clave en el registro o con alguna otra funcion? :-\ :-\
Espero que puedan ayudarme :(
Saludos