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

Вниз

Имя учётной записи...   Найти похожие ветки 

 
Eagle Owl ©   (2003-10-16 16:11) [0]

Добрый день, мастера!
Вопрос такой. Есть несколько учётных записей... Как опредилить программно, с какой из них выполнен вход в Windows. Программа должна фиксировать создание/удаление файлов. Нужно знать, кто из пользователей это сделал.
Спасибо.


 
clickmaker ©   (2003-10-16 16:18) [1]

if OpenThreadToken (GetCurrentThread, TOKEN_QUERY, FALSE, hThread) = FALSE then begin

if GetLastError = ERROR_NO_TOKEN then begin

if OpenProcessToken(GetCurrentProcess, TOKEN_QUERY, hThread) = FALSE then
Exit;
end else
Exit;
end;

GetTokenInformation(hThread, TokenUser, ...


 
Игорь Шевченко ©   (2003-10-16 16:28) [2]

Eagle Owl © (16.10.03 16:11)

А как удаление фиксируется ? Вообще-то GetUserName есть для имени пользователя, он нагляднее, чем SID


 
clickmaker ©   (2003-10-16 16:30) [3]

> Игорь Шевченко © (16.10.03 16:28) [2]

А ведь и правда! :) Но мож человеку хочется именно SID...


 
Игорь Шевченко ©   (2003-10-16 16:58) [4]

clickmaker © (16.10.03 16:30)

Меня больше интересует, как удаление фиксируется. SID для созданного файла лучше брать по GetFileSecurity, IMHO


 
Eagle Owl ©   (2003-10-16 20:24) [5]

> Игорь Шевченко © (16.10.03 16:28) [2]

> А как удаление фиксируется ?

ReadDirectoryChangesW(......)
Удаление, создание, изменение, переименование и т.д.
Только подробнее не спрашивайте, сам только начал разбираться с ней...


 
Игорь Шевченко ©   (2003-10-20 12:37) [6]

Eagle Owl © (16.10.03 20:24)

А..тогда не GetUserName...а что-то мне подсказывает, что никак...
Поскольку ReadDirectoryChangesW сообщает только о факте удаления файла, но не сообщает, кто это сделал. Может, что-то по типу FileMon использовать ?


 
zapped   (2003-10-20 22:36) [7]

Вообще-то GetUserName есть для имени пользователя
тока чо пробовал, GetUserName даёт имя пользователя под которым запущен процесс, вызывающий эту функцию :))


 
Dimaz-z ©   (2003-10-21 14:00) [8]

function Tfrm_sms.GetUserName: string;
var
N: Cardinal;
Buf: array[0..1023] of AnsiChar;
begin
N := SizeOf(Buf)-1;
Windows.GetUserName(Buf, N);
Result := PChar(@Buf[0]);
end;


 
clickmaker ©   (2003-10-21 14:04) [9]


> zapped (20.10.03 22:36) [7]
> Вообще-то GetUserName есть для имени пользователя
> тока чо пробовал, GetUserName даёт имя пользователя под
> которым запущен процесс, вызывающий эту функцию :))


Ессно. Она для этого и служит. Для чужого процесса - OpenProcessToken + GetTokenInformation



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

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

Наверх




Память: 0.48 MB
Время: 0.02 c
14-75385
SergP
2003-11-28 08:49
2003.12.23
Интернет - свалка всякой заразы....


1-75240
The ZEuS
2003-12-10 17:24
2003.12.23
проблемы с показом модальной формы из DLL


1-75249
DimaLos
2003-12-10 14:33
2003.12.23
Как добавить разрыв страницы в Excel из Delphi?


1-75186
Вольный Стрелок
2003-12-11 15:58
2003.12.23
PageControl


8-75281
Agent_03
2003-08-26 00:34
2003.12.23
Какчество????