| 
	
		|  Autor | Tema: Grupos de Usuarios en VB6  (Leído 2,329 veces) |  
	| 
			| 
					
						| XVAN 
								
								 Desconectado 
								Mensajes: 25
								
								
								
								
								
								   | 
 
Como determino en VB6 si el usuario que ejecuta la aplicación tiene privilegios de administrador???En msdn solo dice como hacerlo con .net
 
 
 |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| CeLaYa 
								 
								
								 Desconectado 
								Mensajes: 543
								
								   | 
 
a ver si esto te sirve: en el form: Option ExplicitPrivate Sub Form_Load()
 If IsAdmin Then
 MsgBox "Eres un Administrator", vbInformation, Caption
 Else
 MsgBox "jaja, sigue soñando", vbInformation, Caption
 End If
 End Sub
 
en un módulo Option ExplicitOption Base 0     ' Important assumption for this code
 
 Private Const ANYSIZE_ARRAY = 20 'Fixed at this size for comfort. Could be bigger or made dynamic.
 
 ' Security APIs
 Private Const TokenUser = 1
 Private Const TokenGroups = 2
 Private Const TokenPrivileges = 3
 Private Const TokenOwner = 4
 Private Const TokenPrimaryGroup = 5
 Private Const TokenDefaultDacl = 6
 Private Const TokenSource = 7
 Private Const TokenType = 8
 Private Const TokenImpersonationLevel = 9
 Private Const TokenStatistics = 10
 
 ' Token Specific Access Rights
 Private Const TOKEN_ASSIGN_PRIMARY = &H1
 Private Const TOKEN_DUPLICATE = &H2
 Private Const TOKEN_IMPERSONATE = &H4
 Private Const TOKEN_QUERY = &H8
 Private Const TOKEN_QUERY_SOURCE = &H10
 Private Const TOKEN_ADJUST_PRIVILEGES = &H20
 Private Const TOKEN_ADJUST_GROUPS = &H40
 Private Const TOKEN_ADJUST_DEFAULT = &H80
 
 ' NT well-known SIDs
 Private Const SECURITY_DIALUP_RID = &H1
 Private Const SECURITY_NETWORK_RID = &H2
 Private Const SECURITY_BATCH_RID = &H3
 Private Const SECURITY_INTERACTIVE_RID = &H4
 Private Const SECURITY_SERVICE_RID = &H6
 Private Const SECURITY_ANONYMOUS_LOGON_RID = &H7
 Private Const SECURITY_LOGON_IDS_RID = &H5
 Private Const SECURITY_LOCAL_SYSTEM_RID = &H12
 Private Const SECURITY_NT_NON_UNIQUE = &H15
 Private Const SECURITY_BUILTIN_DOMAIN_RID = &H20
 
 ' Well-known domain relative sub-authority values (RIDs)
 Private Const DOMAIN_ALIAS_RID_ADMINS = &H220
 Private Const DOMAIN_ALIAS_RID_USERS = &H221
 Private Const DOMAIN_ALIAS_RID_GUESTS = &H222
 Private Const DOMAIN_ALIAS_RID_POWER_USERS = &H223
 Private Const DOMAIN_ALIAS_RID_ACCOUNT_OPS = &H224
 Private Const DOMAIN_ALIAS_RID_SYSTEM_OPS = &H225
 Private Const DOMAIN_ALIAS_RID_PRINT_OPS = &H226
 Private Const DOMAIN_ALIAS_RID_BACKUP_OPS = &H227
 Private Const DOMAIN_ALIAS_RID_REPLICATOR = &H228
 
 Private Const SECURITY_NT_AUTHORITY = &H5
 
 Type SID_AND_ATTRIBUTES
 Sid As Long
 Attributes As Long
 End Type
 
 Type TOKEN_GROUPS
 GroupCount As Long
 Groups(ANYSIZE_ARRAY) As SID_AND_ATTRIBUTES
 End Type
 
 Type SID_IDENTIFIER_AUTHORITY
 Value(0 To 5) As Byte
 End Type
 
 Declare Function GetCurrentProcess Lib "Kernel32" () As Long
 
 Declare Function GetCurrentThread Lib "Kernel32" () As Long
 
 Declare Function OpenProcessToken Lib "Advapi32" ( _
 ByVal ProcessHandle As Long, ByVal DesiredAccess As Long, _
 TokenHandle As Long) As Long
 
 Declare Function OpenThreadToken Lib "Advapi32" ( _
 ByVal ThreadHandle As Long, ByVal DesiredAccess As Long, _
 ByVal OpenAsSelf As Long, TokenHandle As Long) As Long
 
 Declare Function GetTokenInformation Lib "Advapi32" ( _
 ByVal TokenHandle As Long, TokenInformationClass As Integer, _
 TokenInformation As Any, ByVal TokenInformationLength As Long, _
 ReturnLength As Long) As Long
 
 Declare Function AllocateAndInitializeSid Lib "Advapi32" ( _
 pIdentifierAuthority As SID_IDENTIFIER_AUTHORITY, _
 ByVal nSubAuthorityCount As Byte, ByVal nSubAuthority0 As Long, _
 ByVal nSubAuthority1 As Long, ByVal nSubAuthority2 As Long, _
 ByVal nSubAuthority3 As Long, ByVal nSubAuthority4 As Long, _
 ByVal nSubAuthority5 As Long, ByVal nSubAuthority6 As Long, _
 ByVal nSubAuthority7 As Long, lpPSid As Long) As Long
 
 Declare Function RtlMoveMemory Lib "Kernel32" ( _
 Dest As Any, Source As Any, ByVal lSize As Long) As Long
 
 Declare Function IsValidSid Lib "Advapi32" (ByVal pSid As Long) As Long
 
 Declare Function EqualSid Lib "Advapi32" (pSid1 As Any, pSid2 As Any) As Long
 
 Declare Sub FreeSid Lib "Advapi32" (pSid As Any)
 
 Declare Function CloseHandle Lib "Kernel32" (ByVal hObject As Long) As Long
 
 Public Function IsAdmin() As Boolean
 Dim hProcessToken       As Long
 Dim BufferSize          As Long
 Dim psidAdmin           As Long
 Dim lResult             As Long
 Dim X                   As Integer
 Dim tpTokens            As TOKEN_GROUPS
 Dim tpSidAuth           As SID_IDENTIFIER_AUTHORITY
 
 IsAdmin = False
 tpSidAuth.Value(5) = SECURITY_NT_AUTHORITY
 
 ' Obtain current process token
 If Not OpenThreadToken(GetCurrentThread(), TOKEN_QUERY, True, hProcessToken) Then
 Call OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY, hProcessToken)
 End If
 If hProcessToken Then
 
 ' Deternine the buffer size required
 Call GetTokenInformation(hProcessToken, ByVal TokenGroups, 0, 0, BufferSize) ' Determine required buffer size
 If BufferSize Then
 ReDim InfoBuffer((BufferSize \ 4) - 1) As Long
 
 ' Retrieve your token information
 lResult = GetTokenInformation(hProcessToken, ByVal TokenGroups, InfoBuffer(0), BufferSize, BufferSize)
 If lResult <> 1 Then Exit Function
 
 ' Move it from memory into the token structure
 Call RtlMoveMemory(tpTokens, InfoBuffer(0), Len(tpTokens))
 
 ' Retreive the admins sid pointer
 lResult = AllocateAndInitializeSid(tpSidAuth, 2, SECURITY_BUILTIN_DOMAIN_RID, _
 DOMAIN_ALIAS_RID_ADMINS, 0, 0, 0, 0, 0, 0, psidAdmin)
 If lResult <> 1 Then Exit Function
 If IsValidSid(psidAdmin) Then
 For X = 0 To tpTokens.GroupCount
 
 ' Run through your token sid pointers
 If IsValidSid(tpTokens.Groups(X).Sid) Then
 
 ' Test for a match between the admin sid equalling your sid's
 If EqualSid(ByVal tpTokens.Groups(X).Sid, ByVal psidAdmin) Then
 IsAdmin = True
 Exit For
 End If
 End If
 Next
 End If
 If psidAdmin Then Call FreeSid(psidAdmin)
 End If
 Call CloseHandle(hProcessToken)
 End If
 End Function
 
esto lo saque de la Api-Guide...
 
 |  
						| 
								|  |  
								|  |  En línea | 
 
 "La soledad es el elemento de los grandes talentos".Cristina de Suecia (1626-1689) Reina de Suecia.
 |  |  |  | 
			| 
					
						| XVAN 
								
								 Desconectado 
								Mensajes: 25
								
								
								
								
								
								   | 
 
Uhh, mil gracias, era justo lo que estaba buscando |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  |  |  
 
	
 
 
				
					
						| Mensajes similares |  
						|  | Asunto | Iniciado por | Respuestas | Vistas | Último mensaje |  
						|   |   | Crear usuarios y grupos, unir un equipo a un dominio y perfiles móviles Redes
 | madpitbull_99 | 0 | 17,467 |  10 Diciembre 2010, 13:11 pm por madpitbull_99
 |  
						|   |   | Permisos a grupos de usuarios Windows
 | _CrisiS_ | 4 | 5,028 |  15 Diciembre 2010, 16:06 pm por Randomize
 |  
						|   |   | Usuarios y Grupos GNU/Linux
 | infielofcielo1 | 2 | 3,250 |  25 Diciembre 2010, 17:38 pm por infielofcielo1
 |  
						|   |   | Usuarios y Grupos [BackTrack 5R3] GNU/Linux
 | MeCraniDOS | 0 | 2,138 |  19 Enero 2013, 17:29 pm por MeCraniDOS
 |  
						|   |   | Ayuda con configuración de dominio, usuarios y grupos, y GPOs Redes
 | Guille26 | 0 | 2,117 |  12 Marzo 2017, 21:17 pm por Guille26
 |    |