Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 2003.12.23;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.009 c
7-75434
Darkwing
2003-10-15 11:26
2003.12.23
Как написать драйвер?


1-75152
NAlexey
2003-12-09 16:03
2003.12.23
FloatToStr и ffGeneral


3-75102
nts
2003-11-29 12:56
2003.12.23
jdbc ado


14-75364
Шишкин Илья
2003-11-28 16:24
2003.12.23
Как вам программка?


14-75322
Igit
2003-11-30 21:56
2003.12.23
А можно где нибудь MSDN скачать?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский