Форум: "WinAPI";
Текущий архив: 2003.01.09;
Скачать: [xml.tar.bz2];
ВнизКак узнать автора файла Найти похожие ветки
← →
kserg@ukr.net (2002-11-20 12:54) [0]Нашел в примере как при помощи API-функции GetFileAttributesEx можно узнать полную инфо файла.
А можно узнать, кто автор файла и кто внес последнее изменение?
спасибо
← →
Игорь Шевченко (2002-11-20 13:30) [1]Автор файла:
unit main;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
type
ZString = array[0..1024] of char;
procedure TForm1.Button1Click(Sender: TObject);
var
SecInfo : SECURITY_INFORMATION;
SecDesc : PSECURITY_DESCRIPTOR;
BytesNeeded, Dummy : DWORD;
pSID : Pointer;
Defaulted : LongBool;
DomainName : ZString;
DomainNameLength : DWORD;
Name : ZString;
NameLength : DWORD;
Use : SID_NAME_USE;
User, Domain : String;
begin
SecInfo := OWNER_SECURITY_INFORMATION;
GetFileSecurity("FileSecurity.exe", SecInfo, nil, 0, BytesNeeded);
GetMem(SecDesc, BytesNeeded);
try
if NOT GetFileSecurity("FileSecurity.exe", SecInfo, SecDesc, BytesNeeded, Dummy) then
RaiseLastWin32Error;
if NOT GetSecurityDescriptorOwner(SecDesc, pSID, Defaulted) then
RaiseLastWin32Error;
if NOT LookupAccountSid(nil, pSID, Name, NameLength, DomainName, DomainNameLength, Use) then
RaiseLastWin32Error;
User := String(Name);
Domain := String(DomainName);
ShowMessageFmt("User = %s domain = %s", [User, Domain]);
finally
FreeMem(SecDesc);
end;
end;
end.
Время последнего изменения - GetFileTime
← →
Ketmar (2002-11-20 14:27) [2]а это не владелец часом? что-то мне кажется, что владелец. каковой от автора может очень сильно отличаться.
Satanas Nobiscum! 20-Nov-XXXVII A.S.
← →
Игорь Шевченко (2002-11-20 14:47) [3]Ketmar © (20.11.02 14:27)
Как это ?
← →
Marcus (2002-11-20 15:04) [4]> Игорь Шевченко
Наврено Ketmar имеет в виду, что в ОС сем-ва НТ можно, имея администраторские права, стать владелцем объекта (закладка Св-ва->Безопасность), не будучи автором
← →
Игорь Шевченко (2002-11-20 15:07) [5]Marcus (20.11.02 15:04)
Там, насколько я знаю, есть только понятие владельца. Понятие автора там отсутствует как класс. И вообще, владелец - это понятие только в NT(W2K, XP) и на NTFS, а в потребительских версиях windows и на FAT оно отсутствует.
← →
Marcus (2002-11-20 15:11) [6]> Игорь Шевченко
Я думаю, он имеет в виду поле Автор на вкладке Сводка в win2000
← →
Игорь Шевченко (2002-11-20 16:21) [7]Marcus (20.11.02 15:11)
А это вроде тоже в NTFS через дополнительный Stream у файла.
Впрочем, без автора вопроса вряд ли что-то можно определенно сказать :-)
С уважением,
← →
kserg@ukr.net (2002-11-20 18:19) [8]>Я думаю, он имеет в виду поле Автор на вкладке Сводка в win2000
именно это я имел ввиду.
← →
Marcus (2002-11-20 18:59) [9]Тады FindFirstStreamW / FindNextStreamW
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/base/findfirststreamw.asp
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2003.01.09;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.008 c