title image


Smiley SCHÖN, DAß DU MAL WIEDER DA BIST...
Hi Thomas,habe Dich hier lange nicht gesehen...folgenden Code habe ich mal aufgeschnappt...check ihn mal!Private Const OWNER_SECURITY_INFORMATION = &H1Private Const ERROR_INSUFFICIENT_BUFFER = 122&Private Const MAX_PATH = 255Private Declare Function GetWindowsDirectory Lib "kernel32" _ Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, _ ByVal nSize As Long) As LongPrivate Declare Function GetFileSecurity Lib "advapi32.dll" _ Alias "GetFileSecurityA" (ByVal lpFileName As String, _ ByVal RequestedInformation As Long, pSecurityDescriptor As Byte, _ ByVal nLength As Long, lpnLengthNeeded As Long) As LongPrivate Declare Function LookupAccountSid Lib "advapi32.dll" _ Alias "LookupAccountSidA" (ByVal lpSystemName As String, _ ByVal Sid As Long, ByVal name As String, cbName As Long, _ ByVal ReferencedDomainName As String, _ cbReferencedDomainName As Long, peUse As Long) As Long Private Declare Function GetSecurityDescriptorOwner Lib "advapi32.dll" _ (pSecurityDescriptor As Any, pOwner As Long, lpbOwnerDefaulted As Long) _ As LongSub Command1_Click() Dim szfilename As String ' File name to retrieve the owner for Dim bSuccess As Long ' Status variable Dim sizeSD As Long ' Buffer size to store Owner's SID Dim pOwner As Long ' Pointer to the Owner's SID Dim name As String ' Name of the file owner Dim domain_name As String ' Name of the first domain for the owner Dim name_len As Long ' Required length for the owner name Dim domain_len As Long ' Required length for the domain name Dim sdBuf() As Byte ' Buffer for Security Descriptor Dim nLength As Long ' Length of the Windows Directory Dim deUse As Long ' Pointer to a SID_NAME_USE enumerated '************************************************** ' Initialize some required variables. '************************************************** bSuccess = 0 name = "" domain_name = "" name_len = 0 domain_len = 0 pOwner = 0 szfilename = Space(MAX_PATH) '************************************************** ' Obtain the path to the Windows Directory and use the ' Winnt256.bmp file as it should be on the system. '************************************************** nLength = GetWindowsDirectory(szfilename, Len(szfilename)) If nLength = 0 Then MsgBox "Unable to Obtain the Windows Directory" End If szfilename = Left$(szfilename, nLength) & "\winnt256.bmp" '************************************************** ' Call GetFileSecurity the first time to obtain ' the size of the buffer required for the Security ' Descriptor. '************************************************** bSuccess = GetFileSecurity(szfilename, OWNER_SECURITY_INFORMATION, _ 0, 0&, sizeSD) If (bSuccess = 0) And _ (Err.LastDllError ERROR_INSUFFICIENT_BUFFER) Then MsgBox "GetLastError returned : " & Err.LastDllError End If '************************************************** ' Create a buffer of the required size and call ' GetFileSecurity again. '************************************************** ReDim sdBuf(0 To sizeSD - 1) As Byte '************************************************** ' Fill the buffer with the security descriptor of ' the object specified by the szfilename parameter. ' The calling process must have the right to view ' the specified aspects of the object's security ' status. '************************************************** bSuccess = GetFileSecurity(szfilename, OWNER_SECURITY_INFORMATION, _ sdBuf(0), sizeSD, sizeSD) If (bSuccess 0) Then '************************************************** ' Obtain the owner's SID from the Security ' Descriptor. '************************************************** bSuccess = GetSecurityDescriptorOwner(sdBuf(0), pOwner, 0&) If (bSuccess = 0) Then MsgBox "GetLastError returned : " & Err.LastDllError End If '************************************************** ' Retrieve the name of the account and the name of ' the first domain on which this SID is found. ' Passes in the Owner's SID obtained previously. ' Call LookupAccountSid twice, the first time to ' obtain the required size of the owner and domain ' names. '************************************************** bSuccess = LookupAccountSid(vbNullString, pOwner, name, name_len, _ domain_name, domain_len, deUse) If (bSuccess = 0) And _ (Err.LastDllError ERROR_INSUFFICIENT_BUFFER) Then MsgBox "GetLastError returned : " & Err.LastDllError End If '************************************************** ' Allocate the required space in the name and ' domain_name string variables. Allocate 1 byte ' less to avoid the appended NULL character. '************************************************** name = Space(name_len - 1) domain_name = Space(domain_len - 1) '************************************************** ' Call LookupAccountSid again to actually fill in ' the name of the owner and the first domain. '************************************************** bSuccess = LookupAccountSid(vbNullString, pOwner, name, name_len, _ domain_name, domain_len, deUse) If bSuccess = 0 Or Err.LastDllError 0 Then MsgBox "GetLastError returned : " & Err.LastDllError End If MsgBox "The Owner of the file " & szfilename & " is " & name End IfEnd Subcu,schloti

 



geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: