;Autor: Shardik EnableExplicit #OWNER_SECURITY_INFORMATION = 1 Define AccountName.s Define AccountNameSize.l Define BufferSize.l Define DomainName.s Define DomainNameSize.l Define Path.s = "C:\aaa\bbb\Datei.txt";Anpassen! Define SIDPointer.l Define SIDDefaultedPointer.l Define SIDType.l Define SecurityDescriptorBuffer.s Define SecurityDescriptorBufferSize.l Procedure.s GetLastError() Protected ErrorBufferPointer.L Protected ErrorCode.L Protected ErrorText.S Protected ferr ErrorCode = GetLastError_() ferr = FormatMessage_(#FORMAT_MESSAGE_ALLOCATE_BUFFER | #FORMAT_MESSAGE_FROM_SYSTEM, 0 , ErrorCode, GetUserDefaultLangID_(), @ErrorBufferPointer, 0, 0) If ErrorBufferPointer <> 0 ErrorText = PeekS(ErrorBufferPointer) LocalFree_(ErrorBufferPointer) ProcedureReturn RemoveString(ErrorText, #CRLF$) EndIf EndProcedure GetFileSecurity_(@Path, #OWNER_SECURITY_INFORMATION, 0, 0, @SecurityDescriptorBufferSize) If SecurityDescriptorBufferSize = 0 MessageRequester("Fehler", "1.GetFileSecurity()-Aufruf: " + GetLastError()) End EndIf SecurityDescriptorBuffer = Space(SecurityDescriptorBufferSize) If GetFileSecurity_(@Path, #OWNER_SECURITY_INFORMATION, @SecurityDescriptorBuffer, SecurityDescriptorBufferSize, @BufferSize) = #False MessageRequester("Fehler", "2.GetFileSecurity()-Aufruf: " + GetLastError()) End EndIf If GetSecurityDescriptorOwner_(@SecurityDescriptorBuffer, @SIDPointer, @SIDDefaultedPointer) = #False MessageRequester("Fehler", "GetSecurityDescriptorOwner()-Aufruf: " + GetLastError()) End EndIf If IsValidSid_(SIDPointer) = #False MessageRequester("Fehler", "IsValidSid()-Aufruf: Die vom GetSecurityDescriptorOwner()-Aufruf erhaltene Security ID ist ungültig!") End EndIf LookupAccountSid_(#NULL$, SIDPointer, 0, @AccountNameSize, 0, @DomainNameSize, SIDType) If AccountNameSize = 0 MessageRequester("Fehler", "Fehler beim 1.LookupAccountSid()-Aufruf: Die Länge der Benutzerkennung ist ungültig!") End EndIf AccountName = Space(AccountNameSize + 1) DomainName = Space(DomainNameSize + 1) If LookupAccountSid_(#Null, SIDPointer, @AccountName, @AccountNameSize, @DomainName, @DomainNameSize, @SIDType) = #False MessageRequester("Fehler", "2.LookupAccountSid()-Aufruf: " + GetLastError()) End EndIf MessageRequester("Info", "Verzeichnis/Dateiname: " + Path + #CR$ + "Benutzerkennung: " + AccountName + #CR$ + "Domäne/Arbeitsgruppe: " + DomainName, #MB_ICONINFORMATION)