Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Cтандартное окно "Соединение с..."? Как вызвать стандартное окно "Соединени 
:(
    Опции темы
Гость_Alexander
Дата 12.2.2005, 20:21 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Коллеги... Как вызвать стандартное окно "Соединение с..." (окошко для соединения через модем с Internet) зная перечень возможных стоединений и окно "Состояние соединения ..." - после установки соединения.
  Вверх
Poseidon
Дата 13.2.2005, 05:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 4
Всего: 133



Не совсем понятно какое окошко нужно (В Windows для соединения через модем с интернетом может быть вызвано несколько окон, мне известны 4, а сколько их всего...), но я думаю следует попробовать вызвать стандартную Windows-программу RasPhone:

Код
uses ShellApi;
...
begin
ShellExecute (0,nil,'RasPhone',nil,nil,sw_restore);
end;


Можно еще попробовать вот что:

Код
Uses WinInet;
...
begin
InternetAutoDial (INTERNET_AUTODIAL_FORCE_ONLINE, Form1.Handle);
end;


Это сообщение отредактировал(а) Poseidon - 13.2.2005, 05:14


--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
Гость_Alexander
Дата 13.2.2005, 10:36 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Код

uses ShellApi;
...
begin
ShellExecute (0,nil,'RasPhone',nil,nil,sw_restore);
end;


Работает, но это немножко не то окно. Нужно то, которое появляется следом за ним... Как бы это проще сказать smile : берем соединение размещаем ярлык на рабочем столе, тыкаем на его - вот то самое окошко которое нужно. Только у меня имеется перечень возможных соединений и я должен вызвать это окно из программы зная только его название.

Код

Uses WinInet;
...
begin
InternetAutoDial (INTERNET_AUTODIAL_FORCE_ONLINE, Form1.Handle);
end;


А это не работает - возможно просто из за ХР-винды... smile
  Вверх
Poseidon
Дата 15.2.2005, 04:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 4
Всего: 133



Не могу сказать, что это работает (не проверял), но в принципе должно

Вариант: 1

Код
{  Try to establish RAS connection with specified name. EntryName -
  an entry in default phonebook to be used for dial-up. Notes:
a) This call is synchronous (i.e. will not return until the connection
  is established or failed) and hence, may take some time
  (sometimes tens of seconds).
b) The function uses no dial extension, and uses default phonebook.  }

function RasMakeDialupConnection(const EntryName: string): Boolean;
var
 dwRet: Dword;
 DialParams: TRasDialParams;
 hRas: HRASCONN;
 bPwd: Boolean; // was the password retrieved
begin
 uLastErr := 0; // Prepare dial parameters
 FillChar(DialParams, SizeOf(DialParams), 0);
 DialParams.dwSize := SizeOf(DialParams);
 StrPLCopy(@(DialParams.szEntryName[0]), EntryName,
   SizeOf(DialParams.szEntryName));
 hRas := 0; // must do that before calling RasDial
 // Try to retrieve user name/passowrd.
 // We continue even if RasGetEntryDialParams returns error, because
 // in next call RasDial will just try with empty user name/password
 bPwd := False;
 RasGetEntryDialParams(nil, @DialParams, bPwd);
 // Call RAS API. In this particular case RasDial will not return until
 // the connections is established or failed to establish.
 dwRet := RasDial(nil, nil, // no dial extensions, default phonebook
   @DialParams,
   0, // ignored here
   nil, // do not use callback - the call is synch
   hRas); // receives connection handle
 Result := dwRet = 0; // Connection failed... if not Result then begin
 // In some cases hRas may be non-zero and the connection port
 // is still opened. It is a Windows semi-bug/semi-feature.
 // So I must try to close
 if hRas <> 0 then
   RasHangupConnection(hRas);
 // RasHangup may reset uLastErr, but we need the value // returned from RasDial
 uLastErr := dwRet;
end;
end;



Вариант: 2

Код
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. Если его нет, то нужно скачать (посмотри здесь www.torry.net) и конечно прописать RAS в uses.

В принципе первая функция должна вызвать то, что нужно. Но, повторю, не проверял smile


--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
Гость_Alexander
Дата 15.2.2005, 19:03 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











В принципе работает и тот и другой код. Однако, к сожалению, это все не то - эти подпрограммы устанавливают связь по номеру, а мне надо стандартное окно для установки связи... Все равно спасибо, попробую приспособить то что есть...
  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.4034 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.