Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Доступ к файлу. "Sharing violation" / 13 сообщений из 13, страница 1 из 1
30.03.2004, 14:07
    #32462228
CEMb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Доступ к файлу. "Sharing violation"
VC. Win2k

Есть файл, лежит на сети. Путь, допустим, замаплен.
Говорим "Отрыть файл". Получаем "Sharing violation".

Вопрос, как определить юзера, который этот файл шарит?
...
Рейтинг: 0 / 0
31.03.2004, 03:36
    #32463026
DBUser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Доступ к файлу. "Sharing violation"
Может быть нужно установить права на read, write, full access или
поменять тип открываемого Hadle(stream)?
...
Рейтинг: 0 / 0
31.03.2004, 07:39
    #32463090
CEMb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Доступ к файлу. "Sharing violation"
Не, никаких прав нельзя устанавливать. Любой юзер сети должен мочь запустить программу.

Но только нужно мочь узнать, кто в данных момент её держит.
...
Рейтинг: 0 / 0
31.03.2004, 10:29
    #32463309
rst
rst
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Доступ к файлу. "Sharing violation"
Говорят есть где-то в сети исходники
filemon
который отсюда:
http://www.sysinternals.com/ntw2k/source/filemon.shtml
Но я так в свое время их и не сумел найти..
...
Рейтинг: 0 / 0
31.03.2004, 10:58
    #32463397
Tracer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Доступ к файлу. "Sharing violation"
В лоб эту задачу довольно сложно решить. Лучше попробуй сделать так :
используя named pipes кидаешь запросец ( "какая сволочь держит этот файл" ), сам же их слушаешь, ну и сам же отвечаешь.
...
Рейтинг: 0 / 0
31.03.2004, 11:23
    #32463467
_Konst
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Доступ к файлу. "Sharing violation"
Tracer В лоб эту задачу довольно сложно решить. Лучше попробуй сделать так :
используя named pipes кидаешь запросец ( "какая сволочь держит этот файл" ), сам же их слушаешь, ну и сам же отвечаешь.
Это сомнительный способ. named pipes - они же для одной машины... или я чего-то не понимаю?
Как вариант можно в самом файле (или в дополнительном рядом лежащем) отвести буфер, в который записывать имя завладевшего файлом пользователя. При этом, конечно, текущей владелец файла не должен закрывать к нему доступ на чтение.
Во всяком случае есть подозрение, что например Excel делает именно так - всякий раз, когда открываешь файл, он его модифицирует - прописывает имя пользователя.
...
Рейтинг: 0 / 0
31.03.2004, 11:46
    #32463539
DJStealth
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Доступ к файлу. "Sharing violation"
а что за файл? Это твоя прога его юзает на одном компе, когда на другом его нельзя открыть?
------
...
Рейтинг: 0 / 0
31.03.2004, 12:15
    #32463610
Tracer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Доступ к файлу. "Sharing violation"
авторЭто сомнительный способ. named pipes - они же для одной машины... или я чего-то не понимаю?

Нет, не только для одной машины. Также и в сети
...
Рейтинг: 0 / 0
31.03.2004, 12:19
    #32463627
_Konst
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Доступ к файлу. "Sharing violation"
TracerНет, не только для одной машины. Также и в сети
А как тогда должно выглядеть имя \\.\pipe\pipename для CreateNamedPipe?
У меня чего-то не получалось с другой машины послать запрос...
...
Рейтинг: 0 / 0
31.03.2004, 14:24
    #32463947
Tracer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Доступ к файлу. "Sharing violation"
на сервере
\\.\pipe\<unique name>

на клиенте
\\<servermachinename>\pipe\<unique name>
...
Рейтинг: 0 / 0
31.03.2004, 15:13
    #32464104
_Konst
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Доступ к файлу. "Sharing violation"
Tracerна сервере
\\.\pipe\<unique name>

на клиенте
\\<servermachinename>\pipe\<unique name>
Спасибо, действительно получилось. Я-то раньше пытался и на сервере и на клиенте одновременно задать имя сервера или точку...
Но только все равно это работает лишь на NT/2000/Xp... чего-то с win98 клиент нифига не видит эту pipe
...
Рейтинг: 0 / 0
31.03.2004, 15:48
    #32464220
Tracer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Доступ к файлу. "Sharing violation"
авторчего-то с win98 клиент нифига не видит эту pipe
Тут я пас, с Win98 давно не работал.
...
Рейтинг: 0 / 0
01.04.2004, 08:35
    #32464837
CEMb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Доступ к файлу. "Sharing violation"
Это делается через функцию NetFileEnum
Причём даже в MSDN есть примерчик. Тока у него есть один минус, который я ешё не успел поправить (вот, кстати, не знаю что вперёд сделаю, этот поправлю или свой напишу, потому как уже начал делать свой, потом нашёл готовый). Минус - оно юзает некоторую недокументированную никак функцию(даже не нашёл ещё с какой длл-ки) которая получает список машин в сети Microsoft, а у меня почти все сетевые линки на NetWare.
:)
Так вот у меня две программы, одна умеет искать файлы в любой сети, вторая умеет находить юзеров, котоые в данный момент используют файлы. Осталось собрать их в кучу
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Доступ к файлу. "Sharing violation" / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]