Как мне получить все соединения 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);
}