首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在wpf中使用简单的wifi连接到wifi?

如何在wpf中使用简单的wifi连接到wifi?
EN

Stack Overflow用户
提问于 2017-07-10 18:47:05
回答 2查看 4.3K关注 0票数 1

我正在尝试使用simplewifi连接wifi。目前,我已经尝试了:

代码语言:javascript
复制
Wifi wifi = new Wifi();

// get list of access points
IEnumerable<AccessPoint> accessPoints = wifi.GetAccessPoints();

// for each access point from the list
foreach (AccessPoint ap in accessPoints)
{
    Console.WriteLine("ap: {0}\r\n", ap.Name);
    //check if SSID is desired
    if (ap.Name.StartsWith("z"))
    {
        //verify connection to desired SSID
        Console.WriteLine("connected: {0}, password needed: {1}, has profile: {2}\r\n", ap.Name, ap.IsConnected, ap.HasProfile);
        if (!ap.IsConnected)
        {
            //connect if not connected
            Console.WriteLine("\r\n{0}\r\n", ap.ToString());
            Console.WriteLine("Trying to connect..\r\n");

            AuthRequest authRequest = new AuthRequest(ap);
            authRequest.Password = "123456789";
            var x=ap.Connect(authRequest);

        }
    }
}

在这里,如果我硬编码了密码,我就不能传递密码

代码语言:javascript
复制
var password="abc123"

如何传递密码并进行连接?

此外,connect方法总是返回false,即使我必须在没有密码的情况下连接到wifi。

EN

回答 2

Stack Overflow用户

发布于 2017-07-10 19:03:43

您需要设置authRequest.Password = "yourpassword";

在你的ap.connect(authRequest);之前

https://github.com/DigiExam/simplewifi添加以下console.write()

放在文件的顶部

代码语言:javascript
复制
using SimpleWifi;

然后在你的函数中

代码语言:javascript
复制
// Wifi object
Wifi wifi = new Wifi();

// get list of access points
IEnumerable<AccessPoint> accessPoints = wifi.GetAccessPoints();

    // for each access point from list
foreach (AccessPoint ap in accessPoints){
    Console.WriteLine("ap: {0}\r\n", ap.Name);
    //check if SSID is desired
    if (ap.Name.StartsWith("ardrone_")){
        //verify connection to desired SSID
        Console.WriteLine("connected: {0}, password needed: {1}, has profile: {2}\r\n", ap.Name, ap.IsConnected, ap.HasProfile);
        if (!ap.IsConnected){
            //connect if not connected
            Console.WriteLine("\r\n{0}\r\n", ap.ToString());
            Console.WriteLine("Trying to connect..\r\n");
            AuthRequest authRequest = new AuthRequest(ap);
            ap.Connect(authRequest);
        }
    }
}
票数 4
EN

Stack Overflow用户

发布于 2020-04-16 03:38:59

向AccessPoint.Connect方法的参数添加设置为"true“的overwriteProfile为我解决了这个问题。

F#示例:

代码语言:javascript
复制
open SimpleWifi

[<EntryPoint>]
let main argv =
    let wifi = Wifi()
    let accessPoint = wifi.GetAccessPoints() 
                      |> Seq.find (fun (i:AccessPoint) -> i.Name = "Tpkl6" )

    let try1 = accessPoint.Connect( AuthRequest(accessPoint, Password="12345678"), true )
    let try2 = accessPoint.Connect( AuthRequest(accessPoint, Password="markvirchenko20"), true )

    printfn "%b\n%b" try1 try2
    0 // return an integer exit code

顺便说一下,您在评论中询问了ispasswordvalid函数:

我断开了所有互联网的连接并尝试连接,ispasswordvalid有效验证为真,但连接失败

ispasswordvalid实际上并不检查密码是否正确,即是否与wifi上设置的密码匹配。它只是检查密码是否具有有效的结构,例如至少8个符号长度。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45010062

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档