Je cherchais du code en Delphi pour connaitre le propriétaire d'un fichier, mais je n'ai trouvé que du code C.
http://www.cppfrance.com/article.aspx?ID=2224
J'ai donc fait une petite transcription en Pascal, pour ce que cela intéresse.
Ça utilise les API de sécurité de Windows NT pour connaitre le nom d'utilisateur ainsi que son domaine.
Source / Exemple :
procedure FileSecurityInfos(FileName: String;
var AccountName, DomainName: String);
var
fic: PChar;
ssd: DWORD;
psd: PSECURITY_DESCRIPTOR;
sid: PSID;
pFlag: BOOL;
saccount: DWORD;
account: PChar;
sdomain: DWORD;
domain: PChar;
snu: SID_NAME_USE;
begin
fic := PChar(FileName);
GetFileSecurity(fic, OWNER_SECURITY_INFORMATION, nil, 0, ssd);
psd := Pointer(GlobalAlloc(GMEM_FIXED, ssd));
GetFileSecurity(fic, OWNER_SECURITY_INFORMATION, psd, ssd, ssd);
GetSecurityDescriptorOwner(psd, sid, pFlag);
LookupAccountSid(nil, sid, account, saccount, domain, sdomain, snu);
account := Pointer(GlobalAlloc(GMEM_FIXED, saccount));
domain := Pointer(GlobalAlloc(GMEM_FIXED, sdomain));
LookupAccountSid(nil, sid, account, saccount, domain, sdomain, snu);
AccountName := account;
DomainName := domain;
end;
Conclusion :
Programme tout simple. À adapter si vous voulez l'inclure dans un projet.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.