![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Trash_s |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 15.7.2002 Репутация: нет Всего: нет |
Есть задача и выбрано средство разработки (C++ Builder 5).
Помогите дозвониться - установить "Удаленное соединение" и закрыть его любым способом, но программно. |
|||
|
||||
| Vyacheslav |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 9 Всего: 59 |
Меню Help -> Windows SDK Набираешь RasDial и смотришь.
Ну и пример . Может немного поможет. Реализация метода Dial в моем компоненте TRasDial void fastcall TpmRasDial::Dial(TComponent* Control) { //TODO: Add your source code here HangUp(); FControl = dynamic_cast<TWinControl*>(Control); if (!FControl) throw(Exception(" Owner is not WinControl component.\n" "Use Dial(TComponent*) and WinControl component as parmeter")); if (!ComponentState.Contains(csDesigning)) { ControlWndProc = FControl->WindowProc; FControl->WindowProc = WndProc; } if (WM_RASDIAL == 0) { WM_RASDIAL = RegisterWindowMessageA( RASDIALEVENT ); if (TpmRasDial::WM_RASDIAL == 0) TpmRasDial::WM_RASDIAL = WM_RASDIALEVENT; } RASDIALPARAMS RasDialParam; ZeroMemory((void*)&RasDialParam,sizeof(RASDIALPARAMS)); strcpy(RasDialParam.szEntryName, ConnectionName.c_str()); FillPhoneNumber(&RasDialParam); FillCallbackNumber(&RasDialParam); FillUserName(&RasDialParam); FillPassword(&RasDialParam); FillDomain(&RasDialParam); RasDialParam.dwSize=sizeof(RASDIALPARAMS); RasDial(NULL,NULL,&RasDialParam,0xFFFFFFFF, dynamic_cast<TWinControl*>(FControl)->Handle , &FRasConn); } и HangUp void fastcall TpmRasDial::HangUp(void) { //TODO: Add your source code here if(FRasConn) { RASCONNSTATUS RasConnStatus; ZeroMemory((void*)&RasConnStatus,sizeof(RASCONNSTATUS)); RasConnStatus.dwSize=sizeof(RASCONNSTATUS); ::RasHangUp(FRasConn); //while(RasGetConnectStatus(FRasConn,&RasConnStatus)!=ERROR_INVALID_HANDLE) Application->ProcessMessages(); FRasConn=NULL; if ( !ComponentState.Contains(csDesigning) && FControl && ControlWndProc && FControl->WindowProc == WndProc) { FControl->WindowProc = ControlWndProc; FControl = NULL; ControlWndProc = NULL; } } } Если не очень торопишься, после выходных могу выслать компонент -------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
| Trash_s |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 15.7.2002 Репутация: нет Всего: нет |
С дозвоном примерно разобрался, но опять прошу о подсказке,
где и как можно выбрать модем. И, Vyacheslav, если не в напряг, вышли компонент. |
|||
|
||||
| NetBird |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 19.7.2002 Репутация: нет Всего: нет |
А может кто попутно раскажет как програмно запустить сервак удаленного доступа, и есть ли API финкции для работы с ним?
|
|||
|
||||
| Vyacheslav |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 9 Всего: 59 |
В общем случае модем задается в соединении. Выбрав соединение автоматически выбирается модем.
[/QUOTE] С компонентом небольшая задержка. Для С++Builder 6 готов и демо сделал. Для С++Builder 5 внес изменения и не успел проверить. И хелп не готов. -------------------- С уважением, Вячеслав Ермолаев |
||||
|
|||||
| Vyacheslav |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 9 Всего: 59 |
Здесь проект запуска-останова сервера -------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
| Trash_s |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 15.7.2002 Репутация: нет Всего: нет |
[quote=Trash_s,22.7.2002,17:23]В общем случае модем задается в соединении. Выбрав соединение автоматически выбирается модем. Я не не совсем точно сформулировал вопрос. В общем случае понятно, но использовать соединение неудобно и нежелательно. Хотелось бы в программе задать параметры - телефон, префиксы, тоновый/импульсный, логин, громкость спикера... и выбрать модем, и прога дозванивается. |
|||
|
||||
| Vyacheslav |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 9 Всего: 59 |
Параметры - телефон, префиксы, тоновый/импульсный, логин и пароль - могут задаваться через RasDial. При этом уже неважно, какие они были у соединения.
Если имя соединения в параметрерах не задано, дозваниваться будет по первому в списке модемному Com - порту. -------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
| NetBird |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 19.7.2002 Репутация: нет Всего: нет |
Большое спасибо Вячеслав за ссылку !
|
|||
|
||||
| Vyacheslav |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 9 Всего: 59 |
Для С++Builder 5 выложил компонет TRasDial с демопримером на bcdev.narod.ru. Хелп та к и не сделал Версия для С++Builder 6 будет чуть позже. Если будут какие либо трудности - сообщи -------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
| Гость_Виктор |
|
|||
|
Unregistered |
Vyacheslav
я написал программку для соединения через Dial-Up все программки задаются в программе... и пашет в 98 а попробовали в XP она ломится узнать какое соединение исп. хотя все параметры я переопределяю.... а потом говорит что неправельный пароль и логин Login = UserName; Pass = Password; strcpy(params.szEntryName, ""); //PBEntry.c_str()); strcpy(params.szPhoneNumber, phNum.c_str()); strcpy(params.szCallbackNumber, ""); strcpy(params.szUserName, Login.c_str()); strcpy(params.szPassword, Pass.c_str()); strcpy(params.szDomain, "*"); params.dwSize = sizeof(params); // Dial. DWORD res = fRasDial(0, 0, ¶ms, 1, RasCallback, &hRas); как видите я не использую PBEntry.c_str() что сделать? подскажите пожалуйста. |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |