Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Подключение к сети [D7, WinXP]


Korvet ©   (2005-08-23 23:00:00) 

Добрый вечер.
Мне нужна ваша помощь.Мне нужно сделать так что бы моя программа выходила в сеть.Ну тоесть что бы она набирала номер телефона,логин, пароль.Можно ничего не отображать нужно что бы она просто вошла в сеть.Ну или можно создать подкючение в Windows. И сделать что бы по нажатию на кнопку вызывалось это подключение.
P.S.Если не понятен вопрос спрашивайте.


ANTOXA2005   (2005-09-09 11:56:00) [1]

RAS - работает!


Piter   (2005-08-24 13:13:00) [2]

А, вот еще. Я когда для этого сайта FAQ писал, вот что есть:

---------------------------------------------------

Вопрос: как установить - разорвать соединение 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   (2005-08-24 13:09:00) [3]

Какой исходник? Готовую программу тебе? Это стоит денег.
Ссылку на информацию? Да пожалуйста: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/rras/rras/rasdial.asp- можешь начинать копать отсюда


Korvet   (2005-08-24 08:50:00) [4]

Извените но я в этой облости полный нуль, покожите исходник пожалуйста, или ссылку подкиньте.


Piter   (2005-08-24 00:33:00) [5]

Да нет, все понятно.

Используй RAS


Наверх

Титульная страница Поиск, карта сайта Написать письмо