Уважаемые коллеги, добрый день!
Задача в следующем: нужно определить. подключен ли компьютер к интернет-сети, и если да, то получить точное время (независящее от системного времени компьютера, которое может быть выставлено с ошибкой).
В сети много сайтов, показывающие точное время, даже с учётом часового пояса, но реализовано всё это на скриптах и сделать обычный веб-запрос в Excel не получается.
Может, кто сталкивался с подобной задачей и может дать дельный совет по реализации?
Присвоить переменной время из интернета
Модератор: Naeel Maqsudov
- mc-black
- Сообщения: 250
- Зарегистрирован: 08 май 2008, 16:09
- Откуда: Россия, Нижний Новгород
- Контактная информация:
Прочтите RFC по протоколу SNTP (упрощенный сетевой протокол времени), более доступный для изучения по сравнению с NTP. Серверов синхронизации точного времени сейчас и правда предостаточно, можно найти open source программы на тему и сдуть реализацию.
На заказ: VBA, Excel mc-black@yandex.ru
- Aent
- Сообщения: 1129
- Зарегистрирован: 01 окт 2006, 14:52
- Откуда: Saratov,Russia
- Контактная информация:
AlexZZZ, посмотрите, например,
http://vbnet.mvps.org/index.html?code/n ... nctime.htm
или
http://www.vbforums.com/showthread.php?t=236337
http://vbnet.mvps.org/index.html?code/n ... nctime.htm
или
http://www.vbforums.com/showthread.php?t=236337
Андрей Энтелис,
aentelis.livejournal.com
aentelis.livejournal.com
Aent, спасибо за ссылки, только хотелось реализовать всё в Excel, а тут VB.net. Например, не работает такая конструкция:
И чем этот Winsock control (Winsock1), в Excel заменить, непонятно.
Код: Выделить всё
'connect
With Winsock1
If .State <> sckClosed Then .Close
.RemoteHost = ComboBox1.Text
.RemotePort = 37 'port 37 is the timserver port
.Connect
End With
- EducatedFool
- Сообщения: 197
- Зарегистрирован: 06 апр 2008, 14:03
- Откуда: Россия, Урал
- Контактная информация:
Ничем не надо заменять. Его и используйте.И чем этот Winsock control (Winsock1), в Excel заменить, непонятно.
В Tools - References найдите и подключите Microsoft Winsock Control,
а также добавьте элемент управления Winsock на форму
(найти его можно среди дополнительных компонентов)

Макросы для Excel, Word, CorelDRAW. Быстро, профессионально, недорого. http://ExcelVBA.ru/
Благодарности принимаются на кошелёк WebMoney: R318574877619 и Яндекс.Деньги: 41001335672216
Благодарности принимаются на кошелёк WebMoney: R318574877619 и Яндекс.Деньги: 41001335672216
Ещё раз внимательно просмотрел весь список, но Microsoft WinSock Control у себя в списке не нашёл. Судя по приложенной картинке, требуется файл MSWINSCK.OCX. Доустановил офис, включая поддержку программирования для .NET, но этот файл не появился, как и Microsoft WinSock Control. Наверное, только установленого офиса недостаточно и нужно опять же устанавливать среду Visual Basic?
P/S: В интернет нашёл этот файл и поместил в папку WINDOWS\system32, но Microsoft WinSock Control в списке так и не появился. Видимо эту библиотеку нужно ещё зарегистрировать в системе. В общем, как представлю, какие проблемы могут быть для 60 пользовательских компьютеров, понимаю, что данный способ мне вряд-ли подойдёт, к сожалению.
А есть ли способ проще? Например, сайт, где веб-запрос таки можно выполнить? Чтобы это работало для большинства подключённых к интерент пользовательских компьютеров по умолчанию.
P/S: В интернет нашёл этот файл и поместил в папку WINDOWS\system32, но Microsoft WinSock Control в списке так и не появился. Видимо эту библиотеку нужно ещё зарегистрировать в системе. В общем, как представлю, какие проблемы могут быть для 60 пользовательских компьютеров, понимаю, что данный способ мне вряд-ли подойдёт, к сожалению.

А есть ли способ проще? Например, сайт, где веб-запрос таки можно выполнить? Чтобы это работало для большинства подключённых к интерент пользовательских компьютеров по умолчанию.
- EducatedFool
- Сообщения: 197
- Зарегистрирован: 06 апр 2008, 14:03
- Откуда: Россия, Урал
- Контактная информация:
Да, надо регистрировать.В интернет нашёл этот файл и поместил в папку WINDOWS\system32, но Microsoft WinSock Control в списке так и не появился. Видимо эту библиотеку нужно ещё зарегистрировать в системе
Но это делается очень просто: Пуск - Выполнить - regsvr32 MSWINSCK.OCX
Да никаких проблем.В общем, как представлю, какие проблемы могут быть для 60 пользовательских компьютеров, понимаю, что данный способ мне вряд-ли подойдёт, к сожалению.
Моя надстройка тоже работает с сетью, и поэтому требует MSWINSCK.OCX
Более того, я в коде динамически создаю WinSock, поэтому, в моём случае, требуется ещё прописать в реестр лицензию для этого элемента управления.
Распространяю я свою надстройку в составе дистрибутива, выполненного с использованием программы InnoSetup.
В скрипт достаточно добавить одну строку, чтобы получившийся exe-файл (дистрибутив) скопировал файл в системную директорию, и зарегистрировал его в системеЖ
[Files]
Source: "MSFLXGRD.OCX"; DestDir: "{sys}" ; Flags: regserver sharedfile
Source: "MSWINSCK.OCX"; DestDir: "{sys}" ; Flags: regserver sharedfile
Source: "DNS_Database.DNS"; DestDir: "{app}" ; Flags: onlyifdoesntexist
Макросы для Excel, Word, CorelDRAW. Быстро, профессионально, недорого. http://ExcelVBA.ru/
Благодарности принимаются на кошелёк WebMoney: R318574877619 и Яндекс.Деньги: 41001335672216
Благодарности принимаются на кошелёк WebMoney: R318574877619 и Яндекс.Деньги: 41001335672216