powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Создание VPN подкючение
5 сообщений из 5, страница 1 из 1
Создание VPN подкючение
    #39485304
Yus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Yus
Гость
Доброго времени суток!!!
Пытаюсь написать утилиту, которая бы создавала VPN соединение и запускала бы его, затем устанавливала подключение к удаленному рабочему столу.
Перерыл много всего. Нашел файл ras.pas. Удалось создать соединение, НО. Модуль очень старый, часть структур в нем не описана.
Пытаюсь доописать структуры, после добавления в структуру каких-либо параметров перестает создавать соединение, причем молча(((

Например добавляю(в конце структуры) параметр dwfOptions2: LongInt;

Как только добавил - сразу же перестает создаваться соединение

Может я изобретаю велосипед и все давно уже придумано....

Если есть к-л альтернативные варианты, или у кого современные готовые модули - буду признателен з помощь?

Среда разработки XE3, Windows 8.1


Вот код процедуры создания соединения.


Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
procedure TForm1.Button1Click(Sender: TObject);
 VAR
  RE: TRasEntry;
  DEV: array[1..100] of TRasDevInfo;
  i, j,cnt: integer;
begin
 j := sizeof(DEV)*100;
DEV[1].dwSize := sizeof(TRASDEVINFO);


Fillchar(RE, sizeof(TRasEntry), 0);
RE.dwSize := sizeof(TRasEntry);

RE.dwCountryID := 7;
RE.dwCountryCode := 7;
RE.szAreaCode := '';
RE.szLocalPhoneNumber := 'ххх.ххх.хх.ххх';

RE.dwfNetProtocols := RASNP_Ip;
RE.dwFramingProtocol := RASFP_Ppp;
RE.szDeviceType := 'Vpn';


RE.szDeviceName := 'WAN Miniport (L2PTP)';

try
i := RasSetEntryPropertiesA(nil, 'DV TEST', @RE, sizeof(TRasEntry), nil, 0);
if i = ERROR_BUFFER_INVALID then Memo1.Lines.Add('The address or buffer specified by lpRasEntry is invalid');
if i = ERROR_CANNOT_OPEN_PHONEBOOK then Memo1.Lines.Add('The phone book is corrupted or missing components');
except
Memo1.Lines.Add('Ошибка');
end;

end;

Это код структуры, в которую пытаюсь добавить параметр

 (* A RAS phonebook entry.
*)
  LPRasEntryA = ^TRasEntryA;
  TRasEntryA = record
    dwSize,
    dwfOptions,
    //
    // Location/phone number.
    //
    dwCountryID,
    dwCountryCode: Longint;
    szAreaCode: array[0.. RAS_MaxAreaCode] of AnsiChar;
    szLocalPhoneNumber: array[0..RAS_MaxPhoneNumber] of AnsiChar;
    dwAlternatesOffset: Longint;
    //
    // PPP/Ip
    //
    ipaddr,
    ipaddrDns,
    ipaddrDnsAlt,
    ipaddrWins,
    ipaddrWinsAlt: TRasIPAddr;
    //
    // Framing
    //
    dwFrameSize,
    dwfNetProtocols,
    dwFramingProtocol: Longint;
    //
    // Scripting
    //
    szScript: Array[0..MAX_PATH - 1] of AnsiChar;
    //
    // AutoDial
    //
    szAutodialDll: Array [0..MAX_PATH - 1] of AnsiChar;
    szAutodialFunc: Array [0..MAX_PATH - 1] of AnsiChar;
    //
    // Device
    //
    szDeviceType: Array [0..RAS_MaxDeviceType] of AnsiChar;
    szDeviceName: Array [0..RAS_MaxDeviceName] of AnsiChar;
    //
    // X.25
    //
    szX25PadType: Array [0..RAS_MaxPadType] of AnsiChar;
    szX25Address: Array [0..RAS_MaxX25Address] of AnsiChar;
    szX25Facilities: Array [0..RAS_MaxFacilities] of AnsiChar;
    szX25UserData: Array [0..RAS_MaxUserData] of AnsiChar;
    dwChannels: Longint;

    //
    // Reserved
    //
    dwReserved1,
    dwReserved2: Longint;
    //Fabrika

    //dwVpnStrategy: Longint;

{$IFDEF WINVER41}
    //
    // Multilink
    //
    dwSubEntries,
    dwDialMode,
    dwDialExtraPercent,
    dwDialExtraSampleSeconds,
    dwHangUpExtraPercent,
    dwHangUpExtraSampleSeconds: Longint;
    //
    // Idle timeout
    //
    dwIdleDisconnectSeconds: Longint;

{$ENDIF}
 //+ МОЕ
 {$IFDEF  WINVER51}
    dwType           : Longint;
    dwEncryptionType : Longint;
    dwCustomAuthKey  : Longint;
    guidId           : string;
    szCustomDialDll  : Array [0..MAX_PATH - 1] of AnsiChar;
    dwVpnStrategy    : Longint;
    dwIPv6InterfaceMetric: boolean;
 {$ENDIF}

   dwfOptions2: LongInt;



Модератор: Как мне оформить свое сообщение?
...
Рейтинг: 0 / 0
Создание VPN подкючение
    #39485335
asutp2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yus, посмотрите свой e-mail
...
Рейтинг: 0 / 0
Создание VPN подкючение
    #39485374
Yus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Yus
Гость
Не совсем то, что нужно
...
Рейтинг: 0 / 0
Создание VPN подкючение
    #39485390
asutp2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yus ,

ну почему же, как раз решаются ваши проблемы. Есть разные версии структур при работе с соединениями, в зависимости от версии ОС и в зависимости от ее разрядности. Посмотрите MSDN, там все подробно описано
...
Рейтинг: 0 / 0
Создание VPN подкючение
    #39485403
Yus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Yus
Гость
Спасибо, буду разбираться. По задаче осталась разобраться как проставить галку "Протокол интернета версии 6" и принудительно выбрать протокол PPTP. Для того и нужны были доп. параметры. структуры.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Создание VPN подкючение
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]