img
00:00
imgDRKB online - Как прочитать владельца файла?
imgimgimg
  Общие вопросы
  Delphi IDE, компиллятор, отладчик, редактор
  Язык программирования Дельфи
  VCL
  Системные функции и WinAPI
  Базы данных
  Работа с файловой системой
  Всё о файлах (Статья)
  Работа с NTFS
  Как прочитать владельца файла?
  Шифрование файлов при помощи NTFS функций
  Как определить, является ли диск NTFS?
  Права доступа NTFS
  Файловая система NTFS (статья)
  Учимся работать с "многопоточными файлами" в NT
  Создание hardlink и symbolic link.
  Как прочитать владельца файла?
  Шифрование файлов при помощи NTFS функций
  Как определить, является ли диск NTFS?
  Права доступа NTFS
  Файловая система NTFS (статья)
  Учимся работать с "многопоточными файлами" в NT
  Создание hardlink и symbolic link.
  Чтение и запись в файлы
  Свойства файлов
  Каталоги и подкаталоги, пути к файлам
  Файловые операции (копирование, удаление и т.п.)
  Разные вопросы
  Набор инструментов для оперирования с дисками на физическом уровне
  Репортинг, работа с принтером
  Работа с сетью, интернетом, протоколами
  Работа с графикой и мультимедиа
  Математика, алгоритмы
  Форматы файлов, данных. Конвертация форматов
  ActiveX, COM, DCOM, MIDAS, CORBA, интерфейсы, OLE, DDE
  Разработка приложений
  Kylix
  Delphi.Net
  Развлечения
  
  [drkb=2530] Комментариев: 3
Как прочитать владельца файла?


delphi
// When you create a file or directory, you become the owner of it.
// With GetFileOwner you get the owner of a file.

function GetFileOwner(FileName: string;
  var Domain, Username: string): Boolean;
var
  SecDescr: PSecurityDescriptor;
  SizeNeeded, SizeNeeded2: DWORD;
  OwnerSID: PSID;
  OwnerDefault: BOOL;
  OwnerName, DomainName: PChar;
  OwnerType: SID_NAME_USE;
begin
  GetFileOwner := False;
  GetMem(SecDescr, 1024);
  GetMem(OwnerSID, SizeOf(PSID));
  GetMem(OwnerName, 1024);
  GetMem(DomainName, 1024);
  try
    if not GetFileSecurity(PChar(FileName),
      OWNER_SECURITY_INFORMATION,
      SecDescr, 1024, SizeNeeded) then
      Exit;
    if not GetSecurityDescriptorOwner(SecDescr,
      OwnerSID, OwnerDefault) then
      Exit;
    SizeNeeded  := 1024;
    SizeNeeded2 := 1024;
    if not LookupAccountSID(nil, OwnerSID, OwnerName,
      SizeNeeded, DomainName, SizeNeeded2, OwnerType) then
      Exit;
    Domain   := DomainName;
    Username := OwnerName;
  finally
    FreeMem(SecDescr);
    FreeMem(OwnerName);
    FreeMem(DomainName);
  end;
  GetFileOwner := True;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  Domain, Username: string;
begin
  GetFileOwner('YourFile.xyz', domain, username);
  ShowMessage(username + '@' + domain);
end;

// Note: Only works unter NT.




@Drkb::03116
Взято с сайта http://www.swissdelph...ndex.php
Количество статей: 4366
 
Вход
Имя:
Пароль:
Запомнить
Регистрация Забыли пароль?
Мини-чат :)
Необходима регистрация
Архив мини-чата
19-01-2020 10:47
Programmer
уже подросток
19-01-2020 10:47
Programmer
13 лет этому сайту
19-01-2020 10:45
Programmer
уже 2020
14-01-2020 05:12
Xyu
Кароч дарова
14-01-2020 05:12
Xyu
Dirvachok
12-12-2019 19:32
Prokok
Всем привет!

12-12-2019 18:12
Programmer
admin создай беседу в вк про десксофт
09-12-2019 15:21
spex
ку
07-12-2019 23:51
admin
Это хоумпейдж, для души, с чего бы ему умирать? К тому же на хостинге другие сервисы подняты, для себя.
07-12-2019 22:49
Oleg4260
Мда... тут 2 страницы пролистаешь и уже на год раньше дата сообщения
походу сайт мёртвый. странно, что он до сих пор хостится, и даже админ вчера онлайн утром был.
Статистика
 СегодняВсего
Посетителей4082207710
Запросов12397327415977
Online
Пользователей0
Гостей30
imgimgimgimg
 
img
     00:00