This page is an archived copy on Gagin.ru personal site




АрхивРеклама в журналеКнига отзывов
ПодпискаВыходные данныеОбратная связь






Сам себе сценарист


Как настроить автоматическое подключение к провайдеру в Windows'95

Максим ТИГУЛЕВ
shelter@dataforce.net

Вопрос автоматизации подключения к Сети заинтересовал меня практически с первых дней работы с ней по коммутируемой линии.

Действительно, когда я сам сижу перед компьютером, набрать имя пользователя и пароль в терминальном окошке и выбрать тип соединения не так сложно, хотя и требует внимательности и аккуратности. Но когда я предлагаю кому-то из моих домашних поработать в Сети в мое отсутствие, приходится, во-первых, разъяснять, что и где нажимать, во-вторых, сообщать имя пользователя и пароль, что отнюдь не способствует безопасности моего счета у провайдера. Ну а если речь идет о работе самостоятельных приложений, таких как оффлайн-броузеры (принцип работы которых состоит в том, чтобы загрузить указанные страницы из Сети в заданное время без вашего участия), то тут вопросов вообще не возникает: нужен автомат, который сам соединит машину с Интернет.

Где достать такой автомат и как его запрограммировать? В дистрибутив Windows'95 программа обработки сценариев (scripting tool) почему-то не входит. Если вы еще не потеряли фирменный CD-ROM Windows'95, то сможете найти на нем информационный файл (.inf) для установки программы в каталоге \Admin\Apptools\Dscript (путь указан от корневого каталога CD-ROM). Если это так, можете поставить ее, воспользовавшись закладкой Windows Setup из пункта Add/Remove Programs панели управления. Однако учтите, что этот "сценарист" (scripter) имеет ограниченный набор команд и годится только для написания простых макросов. Впрочем, для реализации приводимого ниже примера этого вполне достаточно.

Если ваш CD-ROM Windows'95 утерян, испорчен или украден конкурентами, или вы вдруг устанавливали систему с гибких дисков, спасительным средством может стать установка пакета MicrosoftPlus!, который, однако, стоит дополнительных денег. Если у вас нет желания (или возможности) тратиться на кучу красивых безделушек (каковой и является вышеозначенный MSPlus!), то лучше всего заглянуть на сервер ftp.microsoft.com и скачать оттуда файл script.exe (размер 153 Кб). Полный путь к нему: ftp.microsoft.com/softlib/mslfiles/script.exe. Запуск этого исполняемого файла приведет к автоматической установке той самой программки, которая введет за вас имя и пароль в момент соединения с сервером. Она сделает это, руководствуясь командами, записанными в текстовом файле сценария, причем сценарии могут быть свои для разных типов стандартных соединений (Connection).

После того, как все установлено, можно приступать к написанию первого сценария. Он составляется в любом текстовом редакторе, создающем чистый текст без спецсимволов (например, Notepad), и имеет определенную структуру (язык все-таки). Начинается сценарий словами proc main, заканчивается словами end proc. Эти команды сообщают системе соответственно о начале и завершении сценария. По ходу своей работы сценарий пытается имитировать работу человека, действуя по принципу: увидел приглашение - ответил на него. В этом ему помогают команды waitfor и transmit. Первая ожидает сообщения от сервера (например waitfor "Login:" - ожидает сообщения "Login:"). Вторая - передает строку, указанную в кавычках (например transmit "Hello Friend!" - отправит фразу "Hello Friend!"). Нажатие на клавишу Enter, точнее символ Carriage return (Возврат каретки), изображается сочетанием символов ^M.

Для реализации сложных сценариев, а также исходя из соображений безопасности, вместо непосредственно имени пользователя и пароля в сценарий лучше включать их подстановки, имеющие вид: $USERID - для имени пользователя и $PASSWORD - для пароля.

рис. 1
Реальные имя и пароль вводятся в окошке Connect to... перед сеансом связи. Если надо запомнить пароль, отметьте пункт Save password (Сохранить пароль), в противном случае введенный пароль будет использован только один раз. [рис. 1]

Некоторые серверы посылают пользователю сразу после установления соединения целую кучу приветствий и предупреждений, да и связь может устанавливаться не сразу, поэтому иногда с поиском ключевой фразы или передачей своей информации необходимо немного подождать. Для этого служит команда delay N, где N - число секунд ожидания. Вот, пожалуй, и все основные команды, которые могут пригодиться для написания простого сценария.

Давайте рассмотрим сценарий, который прекрасно работает у меня для подключения к московскому провайдеру DataForce.

    ; Начало сценария
    proc main
    ; Ожидаем 2 секунды, пока пройдут приветствия,
    ; время можно сделать и меньше
    delay 2
    ; Ждем фразу "Login:". Обратите внимание
    ; на регистр и отсутствие
    ; пробелов - команда ждет точно то, что написано
    ; в кавычках.
    waitfor "Login:"
    ; Дождались? - передаем имя пользователя,
    ; записанное в окошке Connect to...
    ; а следом за ним - символ Carriage return
    ; знак "+" (плюс) здесь используется
    ; для слияния строк
    transmit $USERID + "^M"
    ; Ждем фразу "Password:"
    waitfor "Password:"
    ; Передаем пароль, записанный в окошке
    ; Connect to...,
    ; а следом за ним - символ Carriage return
    transmit $PASSWORD + "^M"
    ; Ожидаем 2 секунды, пока сервер проверит
    ; правильность нашего имени и пароля
    delay 2
    ; Ждем фразу, предлагающую нам выбрать
    ; тип соединения
    waitfor "Please enter your choice:"
    ; Провайдер предлагает соединение нескольких типов,
    ; нам требуется соединение PPP, поэтому передаем
    ; цифру 1 и Enter
    transmit "1" + "^M"
    ; Ура, сценарий завершен, можно работать
    end proc

Сочиненный сценарий лучше всего сохранить в каталоге \Program Files\Accessories\ в виде файла с расширением .scp - тогда вам не придется долго его искать, программа исполнения настроена на этот каталог.

рис. 2
Готовый сценарий теперь надо связать с имеющимся соединением (Connection) и протестировать. Нажмите кнопку Start, выберите пункт Accessories, затем Dial-Up Scripting Tool. В окошке слева будет список имеющихся соединений: выберите то, для которого написан сценарий, и нажмите кнопку Browse. Если файл сценария сохранен в указанном выше каталоге, вы сразу увидите его имя, если нет - отыщите его там, где вы его сохранили. Выберите файл и нажмите Open. [рис. 2]

рис. 3
Исходя из аксиомы, что в любой программе есть ошибки, написанный сценарий надо протестировать. Выберите пункт Step through script (пошаговая отладка), поставив около него галочку. Нажмите кнопку Apply для сохранения изменений. И если раньше вы пользовались маленьким терминальным окошком для ручного ввода имени и пароля, то теперь его появление надо отменить, иначе сценарий работать не будет. Нажмите кнопку Properties в том же окне и уберите галочку напротив пункта Bring up terminal window after dialing в пункте Configure. Затем окно можно закрыть кнопкой Close, так как для отладки сценария оно не понадобится. Теперь звоним, дважды щелкнув по названию соединения (не забудьте ввести имя пользователя и пароль в окне Connect to...). После установления соединения появится собственное терминальное окошко "сценариста" [рис. 3] и окно с текстом сценария [рис. 4], в котором нажатием кнопки Step вы сможете выполнять по одной команде и смотреть на результат.

рис. 4
Для отмены в любой момент нажмите кнопку Cancel в терминальном окошке. Если все работает хорошо, отмените пошаговую отладку и отметьте пункт Start terminal screen minimized.

Теперь можете насладиться тем, как быстро происходит подключение, а главное тем, что ваше участие более не требуется. Если вас заинтересовало, что еще можно делать в сценариях подключения, прочтите документ script.doc, находящийся в каталоге Program Files/Accessories/. Он содержит полный список команд описания сценариев и примеры работы с ними.

Вы сможете составить, например, универсальный сценарий для различных вариантов подключения к провайдерам, а также повысить надежность его работы, введя условие завершения сценария при слишком долгом ожидании ответа от сервера.

Примечание редакции:
Гуманный провайдер настроит свое программное обеспечение так, чтобы пользователю не пришлось следовать рекомендациям этой статьи.



Ваше имя:   E-mail:
Как вам материал?
Хороший   Так себе   Плохой
А длина?
В самый раз   Перебор   Слишком мало  
Ваше мнение:


АрхивСледующий материалКнига отзывов
К оглавлениюПредыдущий материалОбратная связь

Журнал "Интернет". Регистрационное свидетельство Госкомпечати РФ N. 016370 от 16.07.1997 г. Распространяется через сети розничной торговли, через компьютерные сети, а также путем подписки. Мнение редакции по тем или иным вопросам может не всегда совпадать с мнениями авторов. Редакция не несет ответственности за содержание рекламных материалов. Перепечтка или копирование запрещены, при цитировании ссылка на журнал "Интернет" обязательна.
Copyright © 1997 Журнал "Internet"
Copyright © 1997 Netskate
E-mail: imag@netskate.ru
Телефон: 245-45-84