Есть ли способ получить доступ к netsh
API (например, WIN32 API, WDK)?
Например, я пытаюсь получить информацию о мобильной широкополосной связи через netsh
с помощью следующей команды:
netsh mbn show interfaces
Поэтому я думаю, что реальный вопрос заключается в следующем: каково реальное программное представление netsh mbn show interfaces
используя методы Windows SDK?
Пример в псевдокод:
MBN_DEVICE mbn;
GetMbnDev(&mbn);
char* Name = mbn.Name;
char* IMEI = mbn.IMEI;
char* DeviceId = mbn.DevId;
float signal = mbn.Signal;
Какие API (Win32 / .Net / .Core) мне нужно вызывать, чтобы получить тот же результат в структура данных как с командой выше?
Некоторые инструменты Microsoft используют внутренние / недокументированные API-интерфейсы для выполнения своей работы, поэтому для их клонирования часто требуется небольшое исследование.
Первый шаг — скачать Зависимость Уокер и взгляните на функции импорта netsh. В этом случае он не выглядит так, как будто он импортирует много вещей, связанных с сетью (на моем компьютере с Windows 8), но он импортирует CoCreateInstance
а также GetProcAddress
так что вы можете установить точку останова на обоих в вашем отладчике, это должно позволить вам определить функции / интерфейсы, которые он в конечном итоге вызывает.
Даже до того, как вы доберетесь до этого места, вы можете просто использовать Google «Мобильный широкополосный API», это должно привести вас к эта страница MSDN. Вы должны взглянуть на эти интерфейсы и посмотреть, предоставляют ли они информацию, которую вы ищете …
Я нашел ответ прямо по этой ссылке: https://social.msdn.microsoft.com/Forums/vstudio/en-US/2d810752-f647-41f6-9299-27b6adddd536/how-to-get-the-signal-strength-from-a-mobile-broadband- сетевой адаптер-в-окна-7-использования-с? форум = csharpgeneral