Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.09.16;
Скачать: CL | DM;

Вниз

Как определить кем создан файл?   Найти похожие ветки 

 
NAU   (2002-09-04 05:48) [0]

Подскажите, как определить имя пользователя создавшего файл, владельца файла?


 
Ученик ©   (2002-09-04 09:30) [1]

function GetFileOwner(const FileName : string; var Domain, UserName : string) : Boolean;
var
bOwnerDefaulted : Bool;
psd : PSECURITY_DESCRIPTOR;
sid : PSID;
dwDomainSize, dwUserNameSize, dwSize, dwUse : DWord;
begin
Result := False;
if not GetFileSecurity(PChar(FileName), OWNER_SECURITY_INFORMATION, nil,
0, dwSize) and (GetLastError = ERROR_INSUFFICIENT_BUFFER) then begin
psd := HeapAlloc(GetProcessHeap, 8, dwSize);
if psd <> nil then try
if GetFileSecurity(PChar(FileName), OWNER_SECURITY_INFORMATION,
psd, dwSize, dwSize) and GetSecurityDescriptorOwner(psd, sid, bOwnerDefaulted) then begin
dwUserNameSize := 0;
dwDomainSize := 0;
if not LookupAccountSid(nil, sid, nil, dwUserNameSize, nil, dwDomainSize, dwUse) and
(GetLastError = ERROR_INSUFFICIENT_BUFFER) then begin
SetLength(Domain, dwDomainSize);
SetLength(UserName, dwUserNameSize);
Result := LookupAccountSid(nil, sid, PChar(UserName), dwUserNameSize,
PChar(Domain), dwDomainSize, dwUse);
if Result then begin
SetLength(Domain, dwDomainSize);
SetLength(UserName, dwUserNameSize)
end
end
end
finally
HeapFree(GetProcessHeap, 0, psd)
end
end
end;



Страницы: 1 вся ветка

Текущий архив: 2002.09.16;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.015 c
4-51031
vixic
2002-07-26 10:20
2002.09.16
DLL + API = MainMenu


1-50838
neg2001
2002-09-03 15:00
2002.09.16
Господа, подскажите откуда можно нормально cкачать Delphi 7


3-50589
Miloslawsky
2002-08-24 23:13
2002.09.16
SQL


1-50796
MaximatorVeter
2002-09-03 15:01
2002.09.16
Не могу разобраться как работает метод Assign


1-50857
Song
2002-09-04 17:23
2002.09.16
Хук на сообщение WM_SYSCOMMAND. Проблема.