Windows 小工具之 Wifi 固定器

一、信息

开发框架:WPF

运行环境:net6.0-windows10.0.22000.0

主要依赖:ManagedNativeWifi(2.3.0)、TaskScheduler(2.10.1)

软件作者:独立观察员(dlgcy.com).

推荐系统:Windows11

下载地址:https://gitee.com/dlgcy/DLGCY_FixedWifi/releases

开源地址:https://gitee.com/dlgcy/DLGCY_FixedWifi

二、前言

不知道大家在 Windows 上连接使用 Wifi 时有没有以下烦恼:进入系统后,不会自动连接想要的 Wifi;或者因为种种原因,本来连接了某个 Wifi,突然就断开了,或者连上了另一个 Wifi;等等类似情况。

如果我们在工作或生活时一定要连接指定 Wifi,那么产生这种种意外情况就很耽误事儿了。

有人就说了,Windows 有自动连接指定 Wifi 的功能呀,我想你说的是下面这个开关吧:

Windows 小工具之 Wifi 固定器

这个开关,怎么说呢,还是有点作用的,但是不多。它有它自己的想法,比如你明明勾上了,但是它最终就是没有自动连接,原因可能是:你连接了有线网络、此 Wifi 信号不好、此 Wifi 没有外网、等等。

总之,本人开发此软件,就是为了解决需要固定连接指定 Wifi 的痛点,所以取名 “Wifi 固定器”。而且,自认为,比系统自带的这个 “自动连接” 开关更靠谱。

三、软件使用介绍

3.1 下载运行

从 https://gitee.com/dlgcy/DLGCY_FixedWifi/releases 页面下载最新的发行版,目前打包为单文件:

Windows 小工具之 Wifi 固定器

如果下载下来发现运行不了,可能是缺少运行环境,从页面上列出的运行环境下载地址中下载安装 .NET 运行环境:

Windows 小工具之 Wifi 固定器

第一次打开会自动创建配置文件,第一次打开会提示需要先选择固定一个 Wifi:

Windows 小工具之 Wifi 固定器

3.2 查看 Wifi 信息

可以使用 “刷新” 按钮刷新 Wifi 列表,然后在列表中选择某个 Wifi,下方的 选中项详情 和 选中项 Profile 就会自动变化,展示出当前选择的 Wifi 的详细信息:

Windows 小工具之 Wifi 固定器

特别说一下这个 Profile,它代表了 Wifi 的连接信息,所以,如果你没有连接过那个 Wifi,那么就没有 Profile,比如这个 “麻薯君”:

Windows 小工具之 Wifi 固定器

对于没有 Profile 的 Wifi,本软件是不支持的。本软件的功能,依赖于你在系统中正确连接过你要固定的 Wifi,也就是系统生成过该 Wifi 的正确 Profile 才行。

3.3 选择固定 Wifi

选择好需要固定的 Wifi 之后,点击 “固定 Wifi” 按钮,信息区中提示固定成功,并自动展开配置区,提示进行保存配置,以便在下次开启软件时仍记住固定的是哪个 Wifi:

Windows 小工具之 Wifi 固定器

强烈建议保存配置,当然,如果只是临时使用,不保存也可以。

Windows 小工具之 Wifi 固定器

3.4 开启监控

固定好 Wifi 后点击 “开启监控” 即可(这里将检测时间间隔设置为 10 秒):

Windows 小工具之 Wifi 固定器

可以看到,开启监控后,本软件将指定的 Wifi【DLGCY】连上了,然后中途我手动断开该 Wifi,本软件又将其连上了,满足需求。可以使用动图展示一下(动图):

Windows 小工具之 Wifi 固定器

点击 “停止监控” 就停止了功能。

3.5 开机自启

Windows 小工具之 Wifi 固定器

先来说第一项 “是否自动开启监控?”,勾上的话,打开本软件的时候,如果配置合适(已固定了可用的 Wifi),那么就会自动开启监控,不用等使用者去手动点击 “开启监控”。如果要开启第三项开机自启,应该把这个也勾上,不然开机自启就没什么意义了。

然后是第三项 “是否在登陆前启动?”,这个其实是对第二项 “是否跟随系统启动?” 勾上时的配置,但是要在后者勾上前进行操作,后者勾上了,此项就禁用了。为什么会有此一项呢?因为本软件实现了两种开机自启的时机,一个是在电脑启动好了,但是还没有任何用户登陆时启动,也可以理解为在输入密码前就启动;那么第二种自然就是在用户输入密码进入桌面后才启动。

最后是第二项 “是否跟随系统启动?”,这个顾名思义,就是是否开机自启。本软件使用的是任务计划方案来实现开机自启,需要管理员权限。

比如我现在勾上登陆前启动,然后勾上开机自启,提示成功:

Windows 小工具之 Wifi 固定器

然后我们就可以在任务计划(此电脑 --> 右键 --> 管理 --> 任务计划程序)列表中看到新增了一项 “DLGCY_WifiFixator_v1.0.0_Startup” 任务计划(本程序中设置了任务计划名称为 {exe 程序名}_Startup):

Windows 小工具之 Wifi 固定器

注意看上图中的 安全选项 区域,用户账户为 SYSTEM,勾上了 “不管用户是否登陆都要运行”,这些就代表了,此项任务将在系统启动后就运行,即使用户还没有登陆。

我们再取消勾选开机自启,提示关闭成功:

Windows 小工具之 Wifi 固定器

此时刷新一下任务计划列表,发现刚才添加的那项也被移除了:

Windows 小工具之 Wifi 固定器

我们现在取消勾选 “是否在登陆前启动?”,也就是打算让它在登陆后再启动,此项修改会自动保存所有配置:

Windows 小工具之 Wifi 固定器

然后我们再勾上开机自启:

Windows 小工具之 Wifi 固定器

此时再来看任务计划程序库,我们的任务又回来了,只不过这次用户账户变成了 “dlgcy”(当前登陆的用户),勾选项也变成了 “只在用户登陆时运行”:

Windows 小工具之 Wifi 固定器

可以看看其它选项卡中的内容(动图):

Windows 小工具之 Wifi 固定器

实际上你也可以自己编辑,只需要点击右边的 “属性” 即可打开编辑窗口:

Windows 小工具之 Wifi 固定器

那么这两种启动方式有什么区别呢?

1、登陆前启动:比如有这样一个使用场景,该电脑可以通电自启,但是你需要它连上某个 Wifi 你才能远程使用,这样就必须要让本软件在登陆前就启动了。不过这个启动方式,上面也看到了,使用的是 SYSTEM 账号,实际上是当作系统服务来的,所以由于系统限制,你将看不到也调不出本软件的 UI 界面,只能在任务管理器中看到它默默运行的身影,所以要求先配置正确。

2、登陆后启动:这个就没什么好说的了,其实没有太大必要,用的时候打开就行,不过如果每次都要用的话,开机自启会方便点。当然,这个模式下,UI 界面是正常显示的。

3.6 日志记录

在信息区设置中有一个 “是否同时记录到日志?” 配置项,默认是关闭的,我刚才演示上一节内容时打开了:

Windows 小工具之 Wifi 固定器

这样就会记录运行信息到日志文件中了,比如那种登陆前启动的情况下,看不到界面,有个日志也算一种弥补吧:

Windows 小工具之 Wifi 固定器

四、后记

本来还想写一节 “代码浅析” 的,谁曾想,写到这里,一个下午就过去了,所以说原创不易呀,大家多多支持哟。“代码浅析” 以后再写吧,当然也可能不写了,哈哈,大家可以在第一节的开源地址中自行查看。

不过可以推几篇我的相关文章,哈哈哈:

1、写此软件时遇到一个定时器延迟的问题,后来网友 @谣言似山 帮我解决了,见文章《【问题】为什么 System.Timers.Timer 更改间隔时间后的第一次触发时间是设定时间的三倍?- 独立观察员 (dlgcy.com)》。(不过刚才演示断线重连时发现好像还有点问题,之后看看。)

2、上一节 日志记录,使用的是本人创建的 “简易日志” NuGet 包:

Windows 小工具之 Wifi 固定器

见文章《『简易日志』NuGet 日志包 SimpleLogger - 独立观察员 (dlgcy.com)》

3、本软件使用的弹窗见文章《WPF MVVM 模式下的弹窗 - 独立观察员 (dlgcy.com)》

4、本软件构建于我的项目 WPFTemplate:WPFTemplate: 自用 WPF 模板项目 (gitee.com)(https://gitee.com/dlgcy/WPFTemplate)