Как мне получить все соединения RAS?

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

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

2 ответа

В составе 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/

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

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

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);
}
Другие вопросы по тегам