img
00:00
imgDRKB online - Как прочитать владельца файла?
imgimgimg
  Общие вопросы
  Delphi IDE, компиллятор, отладчик, редактор
  Язык программирования Дельфи
  Общие вопросы
  Объектное ориентирование
  Работа со строками
  Работа с датами и временем
  Работа с числами
  Работа с битами
  Работа с массивами
  Работа с указателями, память
  Множества, записи и перечисляемые типы
  RTTI и другие трюки с информацией о классах, модулях и т.п.
  Взаимодействие с другими языками
  Threads
  Работа с коллекциями
  RTL Delphi (краткий справочник)
  Базовые классы
  Скрипты, компилляторы и связанные с ними вопросы
  Вокруг и около Паскаля или другие компилляторы Дельфи/Паскаль
  VCL
  Системные функции и WinAPI
  Базы данных
  Работа с файловой системой
  Репортинг, работа с принтером
  Работа с сетью, интернетом, протоколами
  Работа с графикой и мультимедиа
  Математика, алгоритмы
  Форматы файлов, данных. Конвертация форматов
  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
 
Вход
Имя:
Пароль:
Запомнить
Регистрация Забыли пароль?
Мини-чат :)
Необходима регистрация
Архив мини-чата
15-09-2020 21:17
antonn
Тут супер-кастом, как такового выделенного двига нет, сайт 15 лет назад писался, все "под ключ" получилось smiley
15-09-2020 14:48
DartKane
А больше нигде не применял двигу? И будешь ли как-то развивать её в дальнейшем?
14-09-2020 20:55
antonn
Все свое smiley
05-09-2020 15:16
DartKane
Интересно, это чисто своея разработка, или некий шаблон сайта?
28-08-2020 13:23
Atama
Самая величайшая победа — это победа над самим собой. Что это означает? Это означает победить свои негативные мысли, научиться их контролировать, научиться контролировать свои эмоции. Анастасия Новых Сэнсэй-I. Исконный Шамбалы
28-08-2020 13:22
Atama
Ау. Всем здоровья!
06-08-2020 07:39
antonn
Ага, запущение и безысходность
05-08-2020 14:15
TairaYo
я смотрю тут жизнь совсем не кипит уже?
23-05-2020 16:32
SturmVladik
Всем приффки :-)
08-05-2020 06:21
DartKane
Сюда бы ещё добавить либо виджет записки, либо ярлык на рабочем столе)
Статистика
 СегодняВсего
Посетителей2262351923
Запросов1564333148771
Online
Пользователей0
Гостей51
imgimgimgimg
 
img
     00:00