Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.01.2009, 09:48   #1
MadMas
Новичок
Джуниор
 
Регистрация: 12.01.2009
Сообщений: 1
Вопрос RAS API. Проблемы с типом соединения

Задача - создать vpn соединение. Возникла проблема с типом соединения - почему-то автоматом ставится L2TP, в то время когда нужно PPTP.

Пробовала просто через szDeviceName:='WAN Miniport (PPTP)' и через построение списка устройств и выбор нужного. Результат один и тот же.

Если же выставляю свойство dwVpnStrategy в любое из значений - соединение вообще перестает создаваться. Помогите, пожалуйста..

Код:
Код:
Fillchar(RasEntry, sizeof(TRasEntry), 0);

{find device with pptp and type=vpn}
devs := 0;
devices := nil;
NeedBytes := SizeOf(TRasDevInfo);
GetMem(devices, NeedBytes);
Fillchar(devices^, sizeof(TRasDevInfo), 0);

 try
   devices^.dwSize := NeedBytes;
   dwError := RasEnumDevices(devices, NeedBytes, devs);

   if dwError=603 then //ERROR_BUFFER_TOO_SMALL
   begin
      NeedBytes:=sizeof(TRasDevInfo)*devs;

      FreeMem(devices, NeedBytes);
      GetMem(devices, NeedBytes);
      if devices <> nil then
      begin
      Fillchar(devices^, NeedBytes, 0);
      devices^.dwSize := sizeof(TRasDevInfo);
      dwError := RasEnumDevices(devices, NeedBytes, devs);
      end;

      if dwError=0 then
      begin
      while devs > 0 do
        begin
        if ((pos('PPTP',devices^.szDeviceName)>0) AND (devices^.szDeviceType='vpn'))
        then
         StrPCopy(RasEntry.szDeviceName, devices^.szDeviceName);
        Inc(devices);
        Dec(devs);
        end;
      end;
      end;

   finally;
   end;

with RasEntry do
begin
dwSize := sizeof(TRasEntry);
dwCountryID := 7;
dwCountryCode := 7;
szAreaCode := '';
szLocalPhoneNumber:=ip_VPN;
szDeviceType:= RASDT_Vpn;
dwfNetProtocols := RASNP_Ip;
dwFramingProtocol := RASFP_Ppp;
//dwVpnStrategy := 1;
dwfOptions := RASEO_PreviewUserPw;
end;


RasSetEntryPropertiesA(nil,
                      PChar(name_of_connection),
                      @RasEntry,
                      sizeof(TRasEntry),
                      nil,
                      0);
end;
MadMas вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
DBGrid и поля с типом MEMO doncova1 БД в Delphi 4 27.03.2009 01:20
помогите с решением программ с перечисляемым типом Alex@ndra Помощь студентам 1 14.12.2008 11:36
Отображение поля с БД типом float СУБД InterBase slips БД в Delphi 5 07.12.2008 00:30
Ассоциирование программы с типом файлов ZhekON Общие вопросы Delphi 7 01.06.2007 18:33
Работа с типом Record TheNovice Помощь студентам 4 28.02.2007 17:52