Головна сторінка
Top.Mail.Ru Яндекс.Метрика
Форум: "пошарпану";
Поточний архів: 2004.12.12;
Завантажити: [xml.tar.bz2];

Вниз

Робота з 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;
Завантажити: [xml.tar.bz2];

наверх









Пам'ять: 0.87 MB
Час: 0.074 c
1-1101468469
камінь
2004-11-26 14:27
2004.12.12
вставка картинок в текст


8-1095352608
UserUserov
2004-09-16 20:36
2004.12.12
Графіка на консолі в Delphi


1-1101368057
дядько
2004-11-25 10:34
2004.12.12
TwordApplication для різних версій Worda


3-1100089389
Термін
2004-11-10 15:23
2004.12.12
QReport як зробити в звіті проміжні підсумки


6-1096821871
Agent-Smith
2004-10-03 20:44
2004.12.12
Реалізація роботи між сегментами мережі





африкаанс албанський арабська вірменин азербайджанець баскський білоруський болгарська каталонський Китайська (спрощене письмо) Китайський традиційний) хорватський чеська данську мову нідерландський Ukranian естонець Філіппінська фінську мову французький
галісійська грузинський німецький грецький гаїтянський креольський давньоєврейську хінді угорський ісландський індонезієць ірландський італійський японський корейський латиська литовець македонець малайський мальтійський норвежець
перс полірування португальська румунський російська сербський словацький словенський іспанська суахілі шведську мову тайський турецька український урду в&#39;єтнамський валлійський ідиш бенгальський боснійський
кебуано есперанто гуджараті хауса хмонг ігбо яванський каннада кхмерская Лао латинь маорі маратхі монгольський непальська панджабі сомалійський тамільська телугу йоруба
зулуський
Англійська Французький Німецький Італійський Португальська Русский Іспанська