Mycall (c++)
Эта программа разработана в рамках проекта assembler.ru для демонстрации различий между приложением win32, написанным на C++, и аналогичным приложением написанным на ассемблере.
См. полный исходный текст обоих вариантов приложения, комментарии к нему и анализ различий.
Copyright © 2000 Авторские права защищены и распространяются на исполняемый модуль, исходный текст и документацию. Разрешено свободное распространение. Распространение на возмездной основе любого вида запрещено. Любая модификация разрешена только в целях личного пользования. Распространение в модифицированном виде запрещено. Распространение исполняемого модуля без документации запрещено. Пользователь применяет программу под собственную ответственность. Автор не несет ответственности за проблемы, которые могут возникнуть у пользователя в связи с применением программы.
Будем благодарны, если об ошибках и недостатках, а также замечания и предложения вы сообщите по адресам email, указанным в заголовочной части документа.
Приложение MyCall заменяет штатный интерфейс "Удаленный доступ к сети" (Remote Access Service, RAS) Windows 95/98 в части, используемой при выполнении соединения. При этом имеют место следующие преимущества и дополнительные возможности:
- пользователь может выбрать желаемое соединение (провайдера) из нескольких заранее подготовленных
- для выбранного соединения пользователь может выбрать желаемый телефонный номер из нескольких заранее подготовленных
- для выбранного соединения пользователь может выбрать желаемую пару логин/пароль из нескольких заранее подготовленных. При этом пароль не сохраняется в стандартном файле паролей Windows
- выбор осуществляется простым образом - с помощью выпадающих списков. В каждом списке может быть до 16 позиций
- последнее состояние выбора сохраняется между сеансами работы приложения в автоматически создаваемом файле mycall.ini, помещаемом в рабочий каталог приложения
- процесс установления соединения контролируется с помощью стандартных текстовых сообщений RAS, выводимых в строку статуса.
- при неудаче установления соединения автоматически выполняется повторная попытка (автодозвон). Попытки продолжаются до тех пор, пока соединение не будет установлено, либо до прерывания пользователем
- при разрыве установленного соединения по команде пользователя или при потере связи автодозвон не выполняется, приложение переходит в режим ожидания команд пользователя
- окно приложения компактно, имеет фиксированный размер и занимает мало места на рабочем столе. Положение окна сохраняется между сеансами работы приложения
Кроме того, приложение MyCall имеет следующие особенности:
- не требует инсталляции. Достаточно поместить файлы приложения в какой-нибудь каталог, и оно сразу становиться работоспособным. Приложение не выполняет никаких записей в реестр Windows или куда-либо еще, кроме своего рабочего каталога
- приложение чрезвычайно компактно. Для его работы необходимо иметь всего два файла - текстовый файл настроек mycall.txt и исполняемый файл mycall.exe. Размер исполняемого файла немногим более 8,5 Кбайт
- все необходимые данные для работы приложения (списки провайдеров, телефонов и логинов) заносятся пользователем при установке приложения в файл настроек mycall.txt с помощью любого текстового редактора. Формат файла настроек описан в прилагаемой документации
- приложение сопровождается документацией в формате HTML на русском языке
Поскольку приложение MyCall разрабатывалось как учебное, в нем, с целью сохранения компактности, не реализованы некоторые полезные возможности:
- отсутствует контроль и выдача пользователю сообщений об ошибках RAS. В результате пользователь не будет знать, например, о несовпадении пароля; для него эта ситуация будет выглядеть как неудача соединения с последующим повтором попытки
- применен жесткий позиционный формат файла настроек mycall.txt. Контроль его соблюдения отсутствует. Возможные ошибки пользователя при составлении файла настроек могут быть обнаружены только по некорректному содержанию списков выбора после запуска приложения
- отсутствует оповещение о факте установления соединения, кроме текстового сообщения в строке статуса. Пользователь вынужден контролировать процесс установления соединения визуально
- управление приложением осуществляется только с помощью мыши, клавиатура не используется
ВНИМАНИЕ! Логины и пароли хранятся в файле mycall.txt в открытом виде. Будьте осторожны и не применяйте приложение MyCall в ситуациях, когда доступ к файлу mycall.txt могут получить лица, способные воспользоваться им ненадлежащим образом. Например, не рекомендуется использовать MyCall на чужом компьютере, компьютере коллективного пользования или офисном.
Несмотря на указанные недостатки, двухмесячная (на момент публикации) постоянная эксплуатация приложения MyCall показала его достаточную функциональность. Приложение полезно в ситуациях, когда пользователь имеет активный доступ в Интернет через нескольких провайдеров, с несколькими учетными данными, через несколько разных телефонных номеров модемных пулов.
Приложение поставляется в виде zip-файла mycallc.zip размером 11569 байт. Для его установки необходимо:
- распаковать zip-файл в подготовленный каталог
- изучить прилагаемую документацию mycallc.htm
- отредактировать, как указано в документации, файл настроек mycall.txt
- выполнить пробные сеансы связи для проверки правильности составления файла настроек