Excel. Как программно определить IP адрес компа в локалке

Программирование на Visual Basic for Applications
dimonbk
Начинающий
Начинающий
 
Сообщения: 23
Зарегистрирован: 03.01.2006 (Вт) 14:57

Excel. Как программно определить IP адрес компа в локалке

Сообщение dimonbk » 20.02.2009 (Пт) 20:46

Доброго времени суток. Обыскал весь форум но похожей статьи не нашел.
Вопрос состоит в следующем: как мне определить IP адрес компа в локальной сети на котором открыт нужный мне файл?
История: У меня есть файл Excel который я веду каждый день, есть папка на общедоступном диске в локальной сети, есть макрос который создает отдельный файл excel и копирует туда некоторые листы из моей основной книги, затем сохраняет новую книгу в той общедоступной папке перезаписывая старый файл. Пользователи пользующиеся новой книгой всегда открывают её для чтения, поэтому проблем с перезаписью не возникает. Соответственно я не знаю кем открыт файл. За день я могу несколько раз создавать новую книгу с обновленными данными но пользователи у которых для чтения открыта новая книга этого не знают. Вот и необходимо чтобы они знали обо всех изменениях.
Выход из ситуации: При запуске макроса который формирует новую книгу, сначала должен проверять кем открыт перезаписываемый файл и отправить им сообщения с помощью "net send 0.0.0.0 Файл обновлен". Тем самым каждый раз когда я буду создавать новую книгу они будут видеть и будут в курсе всех новых данных. Вопрос в том как же мне определить IP адреса пользователей у которых открыт файл.
Помогите кто может. Очень нужно для работы. Заранее спасибо!!!
Все будет хорошо

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Excel. Как программно определить IP адрес компа в локалке

Сообщение alibek » 21.02.2009 (Сб) 13:11

Посмотри, показывает ли net session то, что тебе надо.
Lasciate ogni speranza, voi ch'entrate.

dimonbk
Начинающий
Начинающий
 
Сообщения: 23
Зарегистрирован: 03.01.2006 (Вт) 14:57

Re: Excel. Как программно определить IP адрес компа в локалке

Сообщение dimonbk » 21.02.2009 (Сб) 21:28

Нет эта команда не подойдет. Она в основном используется на серверах, а здесь другая ситуация. Нужно что то типа функции FileDateTime, т.е. задается только путь к файлу и в переменную возвращается значение того компа на котором или которых открыт файл. Для легкости понимания приведу модель программного кода.
Примерно код должен выглядеть так:
Sub Macros1 ()
Dim f()
'Каким то образом мы получаем IP адреса и они записываются в массив f()
'Непосредственно отправка сообщения
For i=1 to ubound(f())
Shell "net send " & f(i) & "Файл обновлен"
Next i
'Другие операторы
End Sub

Может есть другие идеи как оповестить пользователей об обновлении файла.
Все будет хорошо


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 76

    TopList