C# 如何使用WMI或System.Net.NetworkInformation windows 10在c中获取当前连接的wifi SSID?

C# 如何使用WMI或System.Net.NetworkInformation windows 10在c中获取当前连接的wifi SSID?,c#,wmi,ssid,C#,Wmi,Ssid,我试过两种不同的方法 第一种方法:空异常问题 第二种方式:我正在设置wi-fi,但无法获取SSID 请有人告诉我如何获取连接的wifi SSID。您可以尝试使用下面提到的WMI类。两者都在cimv2中定义 从WiFi_AdapterAssociationInfo中选择* 从WiFi\u AvailableNetwork中选择* 更多详情:我发现一个相当古老的图书馆可以追溯到2014年: Microsoft.WindowsAPICodePack-Core version 1.1.0.2 虽然它不

我试过两种不同的方法

第一种方法:空异常问题 第二种方式:我正在设置wi-fi,但无法获取SSID
请有人告诉我如何获取连接的wifi SSID。您可以尝试使用下面提到的WMI类。两者都在cimv2中定义

从WiFi_AdapterAssociationInfo中选择*

从WiFi\u AvailableNetwork中选择*


更多详情:

我发现一个相当古老的图书馆可以追溯到2014年:

Microsoft.WindowsAPICodePack-Core version 1.1.0.2
虽然它不符合.NET标准,但该库与我的.NET Core 3.0应用程序集成,但显然不是跨平台的

示例代码:

var networks = NetworkListManager.GetNetworks(NetworkConnectivityLevels.Connected);            
foreach (var network in networks) { 
    sConnected = ((network.IsConnected == true) ? " (connected)" : " (disconnected)");
    Console.WriteLine("Network : " + network.Name + " - Category : " + network.Category.ToString() + sConnected);
}

我就想这么做。 有一个nuget包似乎包装了较低级别的API,名为,它对我来说非常有效

请注意,这似乎是对早期库ManagedWifi的修复错误的重新实现,该库为我抛出了无法解决的异常,如下所示:

您好,谢谢您的回答和参考WIFI信息。如果这解决了您的问题,请考虑将答案标记为“向上投票”。如果没有,请共享更多问题。UWP中不支持WMI。提醒一下,我的机器坏了。[wmisearcher]“从WiFi\u AvailableNetwork中选择*。获取结果:枚举集合时出错:无效类。在我的W10x64上也是如此:无效类。我可以在UWP中使用它吗?看起来你无法从UWP运行netsh。只是提醒一下。SimpleWifi确实有效,但自2015年以来一直没有更新过。我成功地使用了最近的一个名为ManagedNativeWifi的nuget包
    // Show SSID and Signal Strength
    private void showConnectedId() {
        System.Diagnostics.Process p = new System.Diagnostics.Process();
        p.StartInfo.FileName = "netsh.exe";
        p.StartInfo.Arguments = "wlan show interfaces";
        p.StartInfo.UseShellExecute = false;
        p.StartInfo.RedirectStandardOutput = true;
        p.Start();

        string s = p.StandardOutput.ReadToEnd();
        string s1 = s.Substring(s.IndexOf("SSID"));
        s1 = s1.Substring(s1.IndexOf(":"));
        s1 = s1.Substring(2, s1.IndexOf("\n")).Trim();

        string s2 = s.Substring(s.IndexOf("Signal"));
        s2 = s2.Substring(s2.IndexOf(":"));
        s2 = s2.Substring(2, s2.IndexOf("\n")).Trim();

        labelStatus.Text = "WIFI connected to " + s1 + "  " + s2;
        p.WaitForExit();
    }
Microsoft.WindowsAPICodePack-Core version 1.1.0.2
var networks = NetworkListManager.GetNetworks(NetworkConnectivityLevels.Connected);            
foreach (var network in networks) { 
    sConnected = ((network.IsConnected == true) ? " (connected)" : " (disconnected)");
    Console.WriteLine("Network : " + network.Name + " - Category : " + network.Category.ToString() + sConnected);
}