Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.12.12;
Скачать: CL | DM;

Вниз

Работа с RAS   Найти похожие ветки 

 
Piter ©   (2004-11-07 18:24) [0]

Вот интересует меня такой аспект. Если в свойствах DIAL-UP соединения поставлено "Вывести окно терминала", то при дозвоне с помощью RasDial, после соединения получаешь ошибку что-то типа "Соединение требует от пользователя данных, но приложение не поддерживает работу с пользователем" или как-то так, после чего соединение завершается.

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


 
Piter ©   (2004-11-08 12:23) [1]

Люди?


 
KilkennyCat ©   (2004-11-08 12:29) [2]

Звери.


 
Koala ©   (2004-11-08 13:41) [3]

Скопировано из Kuliba

--------------------------------------------------
Function DialProvider(connection:string):boolean; // connection - имя учетной записи
var pars:TRasDialParams;

hRas:ThrasConn;
r:integer;
begin

hRas:=0;
strpcopy(pars.szEntryName,connection); // имя учетной записи
pars.szPhoneNumber:="";                // номеp телефона - по умолчанию
pars.szcallbacknumber:="";             // callback нам не нужен
pars.szUserName:="";                   // логин - по умолчанию
pars.szPassWord:="";                   // паpоль - по умолчанию
pars.szDomain:="";                     // аналогично с домейном
pars.dwSize:=Sizeof(TRasDialParams);   // вычисляем pазмеp записи
r:=rasdial(nil,nil,pars,0,nil,hRas);   // звоним
if r<>0 then begin                          // если что-то неполучилось, то
rasHangUp(hRas);               // сбpасываем соединение
result:=false;                 // ф-ция тепеpь веpнет false
end
else result:=true;          // а если все ок - то true.
end;  

------------------------------------------------------------------------
Ras.pas бpать с www.torry.ru
У меня гдето был, если надо найду и вышлю по почте...


 
Piter ©   (2004-11-08 14:34) [4]

Koala ©   (08.11.04 13:41) [3]

ты вопрос читал? Дозвониться до провайдера и я могу. Более того, на эту тему я написал ответ в 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
------------------------------------------

А теперь - ВОПРОС:


> Если в свойствах DIAL-UP соединения поставлено
> "Вывести окно терминала", то при дозвоне с помощью
> RasDial, после соединения получаешь ошибку что-то типа
> "Соединение требует от пользователя данных, но
> приложение не поддерживает работу с пользователем" или
>как-то так, после чего соединение завершается.
>
> В принципе, логично, так как нужно открыть окно
> терминала куда писать текст выдавамый удаленным
> сервером и посылать введенные пользователем
> комманды... Но как это организовать? Какие опции
> настраивать? Не представляю как организовать такой
> терминал...


 
Piter ©   (2004-11-09 18:44) [5]

Народ?


 
Piter ©   (2004-11-10 19:09) [6]

Неужто никто не использовал RAS?


 
Piter ©   (2004-11-13 11:27) [7]

Пойду в ФИДО...


 
Piter ©   (2004-11-14 14:51) [8]

Никто таки не подскажет?


 
KilkennyCat ©   (2004-11-14 15:16) [9]

видно, в ФИДО тоже все звери...


 
Piter ©   (2004-11-15 18:50) [10]

пока не ответили...


 
Piter ©   (2004-11-19 19:07) [11]

нету ответа нигде...



Страницы: 1 вся ветка

Текущий архив: 2004.12.12;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.023 c
8-1095497609
VasRog
2004-09-18 12:53
2004.12.12
Простейший вывод картинки


1-1101368057
Дядя
2004-11-25 10:34
2004.12.12
TwordApplication для разных версий Worda


4-1099238292
Arnold
2004-10-31 18:58
2004.12.12
Выравнивание в TEdit


1-1101732165
Bobby Digital
2004-11-29 15:42
2004.12.12
Restart


14-1100843607
Mike Kouzmine
2004-11-19 08:53
2004.12.12
Есть ли на форуме обладатели Nokia 7610?