Как мне получить все соединения RAS? - PullRequest
5 голосов
/ 25 января 2012

Я хочу получить все RAS-соединения (Dial-up, Broadband, VPN и т. Д.), Как они отображаются в моих «Сетевых подключениях» в «Панели управления».Здесь и в Интернете есть некоторые решения для этого, но они все о получении активных (подключенных) соединений .

Как я могу это сделать?Как я могу получить все активные и неактивные RAS-соединения?С или без "DotRas".

Ответы [ 2 ]

5 голосов
/ 28 мая 2012

В составе DotRas SDK есть компонент, который управляет записями телефонной книги. Помните, что в Windows используются две телефонные книги: одна в профиле всех пользователей и в профиле текущих пользователей. Поэтому, если вы пытаетесь получить список всех записей, которые вы там видите, вам нужно получить доступ к обеим телефонным книгам.

using DotRas;

RasPhoneBook pbk = new RasPhoneBook();
pbk.Open(@"C:\PathToYourPhoneBook.pbk");

// NOTE: You can also use RasPhoneBook.GetPhoneBookPath(RasPhoneBookType.AllUsers) to 
// access the path as defined by the Windows SDK rather than having to hard-code it.

foreach (RasEntry entry in pbk.Entries)
{
    // Do something useful.
}

Приведенный выше пример довольно ограничен, поэтому для более полных примеров проверьте примеры, включенные в SDK.

Ссылку для скачивания на вышеупомянутый SDK см. На официальном сайте: http://dotras.codeplex.com

Надеюсь, это поможет!

2 голосов
/ 02 мая 2013

, если вы хотите динамически получить все RAS-соединения без .pbk-файла "path"

using DotRas;

string path = RasPhoneBook.GetPhoneBookPath(RasPhoneBookType.AllUsers);
RasPhoneBook pbk = new RasPhoneBook();
pbk.Open(path);

foreach (RasEntry entry in pbk.Entries)
{
  MessageBox.Show(entry.Name);
}
...