Как программно определить имя пользователя, работающего с файлом, находящимся на сетевом диске? Или имя машины, с которой осуществляется доступ к файлу?
Здравствуйте Gorets, Вы писали:
G>Подскажите, пожалуйста!
G>Как программно определить имя пользователя, работающего с файлом, находящимся на сетевом диске? Или имя машины, с которой осуществляется доступ к файлу?
G>Буду благодарен за любые рекоммендации.
NetFileEnum(...)
NetFileGetInfo(...)
NetSessionEnum(...)
NetSessionGetInfo(...)
With best regards
Vsevolod V.Burkutsky...
Re[2]: Как определить имя пользователя
От:
Аноним
Дата:
05.07.02 06:42
Оценка:
Здравствуйте Vsevolod V.Burkutsky, Вы писали:
G>>Как программно определить имя пользователя, работающего с файлом, находящимся на сетевом диске? Или имя машины, с которой осуществляется доступ к файлу?
VV>NetFileEnum(...) VV>NetFileGetInfo(...)
VV>NetSessionEnum(...) VV>NetSessionGetInfo(...)
Еще вопрос.
NetFileEnum возвращает информацию об открытом файле в виде:
typedef struct _FILE_INFO_3 {
DWORD fi3_id;
DWORD fi3_permissions;
DWORD fi3_num_locks;
LPWSTR fi3_pathname;
LPWSTR fi3_username;
} FILE_INFO_3, *PFILE_INFO_3, *LPFILE_INFO_3;
Как отсюда определить имя файла? (fi3_pathname содержит только путь к файлу)
А>Еще вопрос.
А>NetFileEnum возвращает информацию об открытом файле в виде: А>typedef struct _FILE_INFO_3 { А> DWORD fi3_id; А> DWORD fi3_permissions; А> DWORD fi3_num_locks; А> LPWSTR fi3_pathname; А> LPWSTR fi3_username; А>} FILE_INFO_3, *PFILE_INFO_3, *LPFILE_INFO_3;
А>Как отсюда определить имя файла? (fi3_pathname содержит только путь к файлу)
А>With best regards, Gorets
Нет, fi3_pathname содержит полный путь к открытому ресурсу
fi3_pathname
Pointer to a Unicode string that specifies the path of the opened resource
т.е если ты ( или кто ещё ) на шаре открыл папку ( ну, посмотреть какие там файлы )
то у тебя будет fi3_pathname — путь к этой папке( включая её имя )
если открыт файл, то у темя будет путь к файлу ( естественно включая его имя )
Здравствуйте Vsevolod V.Burkutsky, Вы писали:
VV>Нет, fi3_pathname содержит полный путь к открытому ресурсу
VV>
VV>fi3_pathname
VV>Pointer to a Unicode string that specifies the path of the opened resource
VV>
VV>т.е если ты ( или кто ещё ) на шаре открыл папку ( ну, посмотреть какие там файлы ) VV>то у тебя будет fi3_pathname — путь к этой папке( включая её имя ) VV>если открыт файл, то у темя будет путь к файлу ( естественно включая его имя ) VV>
Я открываю файл на чтение или редактирование и в fi3_pathname получаю
только путь к файлу (без его имени). Чем это можно объяснить?
Здравствуйте Gorets, Вы писали:
G>Здравствуйте Vsevolod V.Burkutsky, Вы писали:
VV>>Нет, fi3_pathname содержит полный путь к открытому ресурсу
VV>>
VV>>fi3_pathname
VV>>Pointer to a Unicode string that specifies the path of the opened resource
VV>>
VV>>т.е если ты ( или кто ещё ) на шаре открыл папку ( ну, посмотреть какие там файлы ) VV>>то у тебя будет fi3_pathname — путь к этой папке( включая её имя ) VV>>если открыт файл, то у темя будет путь к файлу ( естественно включая его имя ) VV>>
G>Я открываю файл на чтение или редактирование и в fi3_pathname получаю G>только путь к файлу (без его имени). Чем это можно объяснить?
G>With best regargs, Gorets
Просмотри все entries возвращённые enumom.
Скорее всего ты получаешь и имя открытого фолдера , и имя файла.
Пытаюсь сделать прогрмму вставляю туда код из последнего ответа а он мне выдает переменную отвечающую за количество записей равной 0. Хотя и на моем компе и на удаленном открыты фаилы. Работаю под админом в XP c чем может быть связана подобная ошибка. Функция возвращает значение что она отработала правильно.