Форум: "Сети";
Текущий архив: 2006.08.13;
Скачать: [xml.tar.bz2];
ВнизДозвон без соединения Найти похожие ветки
← →
Некто_Аполло (2006-03-27 12:20) [0]Здравствуйте. Есть ли возможность сделать дозвон без создания сетевого подключения? Просто, указал номер телефона, логин, пароль и все (со стороны пользователя), пошел дозвон, проверка пароля и т.д.
Или как програмно создать соединение без использования мастера сетевых подключений? Тоже просто, указал номер телефона, логин, пароль и имя подключения и все (со стороны пользователя), соединение создано.
← →
Piter © (2006-03-28 22:38) [1]Вопрос: как установить - разорвать соединение DialUp
Ответ: нужно воспользоваться функциями RAS - Remote Access Service. Но проблема в том, что хотя в WIN32SDK.HLP есть описание функций из этого набора в главе "Remote Access Service Functions", но файлов импорта в поставке Delphi нету. Поэтому вы можете вручную экспортировать нужные функции из "rasapi32.dll" пользуясь справкой Delphi и MSDN, но гораздо эффективнее и умнее будет взять переведенные файлы импорта с проекта http://www.delphi-jedi.org/, в данное время точный URL для загрузки файлов импорта RAS - ftp://delphi-jedi.org/api/RAS.zip
В набор входит несколько юнитов: Ras.pas, RasAuth.pas, RasDlg.pas, RasError.pas, RasSapi.pas, RasShost.pas, и дополнительные юниты: RasUtils.pas, RasHelperClasses.pas, а также файлы из папки DEMOS с нужными константами: Lmcons.pas, LmErr.pas.
Можно эти юниты переписать по какому-нибудь пути, известному Delphi, например записать все перечисленные файлы в каталог {Каталог_Delphi}/lib и дальше просто подключать к любым программам эти модули, например:uses
..., Ras, RasUtils, RasHelperClasses;
В RasHelperClasses.pas реализованы очень полезные классы, например TRasDialer, TRasPhonebook, TRasConnectionsList, с применением которых и построен демонстрационный пример RasDemo.dpr.TRasDialer
- инкапсулирует в себе соединение, после настройки можно устанавливать, разъединять соединение, следить за процессом установления соединенияTRasPhonebook
- служит для управление существующими соединениями, позволяет создавать новые, удалять существующие соединения, переименовывать, настраивать параметры соединенийTRasConnectionsList
- служит для управления текущими установленными соединениями.
У меня только одно замечание по исходному коду примера RasDemo.dpr. Там в обработчике событияTMainForm.PBDialBtnClick
идет настройкаTRasDialer
по записи изTRasPhonebook
методомRasDialer.Assign(RasPhonebook[Selected.Index]);
Но реализация метода Assign такова, что имени соединения присваивается пустая строка:procedure TRasDialer.Assign(Source: TPersistent);
...
FParams.szEntryName := "";
...
С точки зрения RAS установка соединения с такими параметрами будет идти как независимое соединение. То есть, фактически от выбранного соединения копируются номер дозвона, номер обратного вызова, имя пользователя, пароль и домен. И устанавливается новое соединение с такими параметрами, которое к выбранному соединению никакого отношения не имеет. Но у выбранного соединения могут быть установлены необходимые для дозвона свойства, типа "Сценарий" или "Ручной набор номера".
Поэтому чтобы перенять и эти параметры, надо присвоить устанавливаемому соединению имя, аналогичное имени нужного существующего соединения. Например, переделать пример RasDemo.dpr таким образом:procedure TMainForm.PBDialBtnClick(Sender: TObject);
var
NewDialParam: TRasDialParams;
begin
with PhonebookListView do
if (Selected <> nil) then
begin
RasDialer.Assign(RasPhonebook[Selected.Index]);
NewDialParam := RasDialer.Params ;
StrPCopy(NewDialParam.szEntryName, RasPhonebook[Selected.Index].Name);
RasDialer.Params := NewDialParam ;
UserNameEdit.Text := RasDialer.UserName;
PasswordEdit.Text := RasDialer.Password;
PhoneNumberEdit.Text := RasDialer.PhoneNumber;
PageControl1.ActivePage := TabSheet3;
end;
end;
Остальные функции реализованы очень хороши и вы можете их поизучать.
И в конце хочу сделать пару замечаний:
1) скорее всего, в NT системах вы не узнаете пароля от соединения. В поле пароля будут просто зведочки. Чтобы установить соединение с паролем по умолчанию (если он сохраняется) нужно оставить пароль пустым
2) если вы хотите набрать номер в импульсном наборе, а у вас набирается в тоновом - то нужно просто поставить символ "p" (от слова "pulse") перед номером, например "p1055555". Символ "w" обозначает ожидание гудка в линии, например, при наборе через АТС "9w1055555".
Отвечал: Piter
← →
Piter © (2006-03-28 22:39) [2]Piter © (28.03.06 22:38) [1]
TRasPhonebook - служит для управление существующими соединениями, позволяет создавать новые, удалять существующие соединения, переименовывать, настраивать параметры соединений
вот там и посмотришь в коде как создаются новые соединения. Или воспользуйся этим классом.
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2006.08.13;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.042 c