无忧启动论坛

标题: 求教:无线驱动安装及联网状态判断问题 [打印本页]

作者: lhc0688    时间: 2022-5-7 11:29
标题: 求教:无线驱动安装及联网状态判断问题
本帖最后由 lhc0688 于 2022-5-9 00:26 编辑

想法是:通过判断无线驱动安装情况,来执行扩展驱动安装;并根据无线联网状态,运行自动连接(wireless.exe);

几个技术问题想咨询坛友:

1、如何判断当前无线驱动是否正常安装?或当前无线状态是否可用?

2、如需用 Drvindex.exe 安装扩展驱动,如何判断是否安装成功?

3、执行 EXEC Drvindex.exe 的一个疑问:测试发现如果成功安装了驱动,会自动删掉对应的驱动包文件,这个不知是 Drvindex.exe 默认的,还是用了参数 (比如 -t)?

以上问题,恳请高手不吝赐教,感谢!

作者: 826773297    时间: 2022-5-7 11:45
//这里写安装驱动命令,根据自己的驱动包路径和驱动安装工具自己写
WAIT 555
//最好等待一下
ADSL-wlan ,,query,无线网卡
FIND ! $%无线网卡%=,
{*
//无线网卡已经驱动,这里写无线连接命令
ADSL-wlan 无线名称,无线密码
}
作者: lhc0688    时间: 2022-5-7 11:49
以上想法是基于PE已经内置了微软基本无线驱动,内置驱动不成功情况下,再安装外置扩展驱动。不知这样的想法是否合理、有必要?请指正。
作者: 826773297    时间: 2022-5-7 11:55
ADSL-wlan ,,query,无线网卡
FIND $%无线网卡%=,
{*
//没安装无线网卡
//这里写安装驱动命令,根据自己的驱动包路径和驱动安装工具自己写
WAIT 555
//最好等待一下
ADSL-wlan ,,query,无线网卡
FIND ! $%无线网卡%=,
{*
//无线网卡已经驱动,这里写无线连接命令
ADSL-wlan 无线名称,无线密码
}
}!
{*
//已安装无线网卡,执行连接wifi命令
ADSL-wlan 无线名称,无线密码
}
作者: lhc0688    时间: 2022-5-7 11:55
826773297 发表于 2022-5-7 11:45
//这里写安装驱动命令,根据自己的驱动包路径和驱动安装工具自己写
WAIT 555
//最好等待一下

谢谢826773297老师,每次都得到您第一时间指点,感激不尽!
我现在测试下先。

作者: lianmeng    时间: 2022-5-7 12:03
我印象中好像配置文件中好像有这么一条://FILE X:\Program Files\DeviceDriver\WLAN.7z,不运行就不会删除了。
作者: lhc0688    时间: 2022-5-7 12:12
//启动网络服务
EXEC -hide "%ProgramFiles%\WinXShell\WinXShell.exe" -luacode "wxsUI('UI_WIFI',nil,' -theme blue -hidewindow')"
REGI HKLM\SYSTEM\Setup\SystemSetupInProgress=#0
EXEC !SC Start netprofm
SERV Wlansvc

//清除桌面多余文件
TEAM FILE %public%\Desktop\desktop.ini| FILE %Desktop%\desktop.ini

//装入PESOFT.INI
LOAD %ProgramFiles%\PETOOLS.INI

kill explorer.exe

//检测无线网络状态并根据返回结果加载外置扩展驱动(放在任意盘符根目录下的 PETOOLS\DeviceDriver\内)
ADSL-wlan ,,query,无线网卡
FIND $%无线网卡%=,
{*
//没安装无线网卡,则查找并安装外置扩展驱动
FORX !\PETOOLS\DeviceDriver\Drv.ini,Mydrv,1,LOAD %Mydrv%

//最好等待一下
WAIT 555
}

//尝试启动 wifi 连接器
EXEC !%ProgramFiles%\SOFT\wireless.exe

// ------------------------ Drv.ini 内执行:EXEC =Drvindex.exe -h -t -hide

在pecmd.ini中这样写,看是不是合理。我现在启动测试看下。
作者: lhc0688    时间: 2022-5-7 12:19
实测结果,总是会执行外部扩展驱动,我已经在检测前也加了WAIT 555,不知道是判断不准,还是等待时间不够?这个有没办法测试?
作者: 826773297    时间: 2022-5-7 12:31
lhc0688 发表于 2022-5-7 12:19
实测结果,总是会执行外部扩展驱动,我已经在检测前也加了WAIT 555,不知道是判断不准,还是等待时间不够? ...

你把代码分离出来,进桌面后单独执行试一下,可能是刚进桌面还没装好驱动
作者: 2012jiashanni    时间: 2022-5-7 12:40
不用判断驱动是安装正常  使用这个安装驱动 然后判断有无无线网卡 有就调用你那个程序
https://github.com/EdgelessPE/DriverIndexer
作者: lhc0688    时间: 2022-5-7 12:42
在pecmd里测试,第一遍仍安装扩展,第二遍不安装;

网络图标出现那个地球状态,就不安装,这样看来应该是网络状态未完成导致。

这样的话,那这种方法确实存在问题:须等待较长时间(而且不确定),这样反倒比不判断直接安装时间更长。
作者: lhc0688    时间: 2022-5-7 12:43
能否不去检测网络状态,而是直接检测驱动是否已安装呢?
作者: 826773297    时间: 2022-5-7 12:46
lhc0688 发表于 2022-5-7 12:42
在pecmd里测试,第一遍仍安装扩展,第二遍不安装;

网络图标出现那个地球状态,就不安装,这样看来应该 ...

//等待三秒再判断
WAIT 3000
ADSL-wlan ,,query,无线网卡
FIND $%无线网卡%=,
{*
//没安装无线网卡,则查找并安装外置扩展驱动
FORX !\PETOOLS\DeviceDriver\Drv.ini,Mydrv,1,LOAD %Mydrv%

//最好等待一下
WAIT 555
}

//尝试启动 wifi 连接器
EXEC !%ProgramFiles%\SOFT\wireless.exe

// ------------------------ Drv.ini 内执行:EXEC =Drvindex.exe -h -t -hide
作者: 826773297    时间: 2022-5-7 12:48
lhc0688 发表于 2022-5-7 12:43
能否不去检测网络状态,而是直接检测驱动是否已安装呢?

我这个代码是判断无线网卡是否存在,如果不存在肯定是没安装驱动或者没安装完全设备没就绪
作者: 826773297    时间: 2022-5-7 12:51
826773297 发表于 2022-5-7 12:46
//等待三秒再判断
WAIT 3000
ADSL-wlan ,,query,无线网卡

把这段代码写到pecmd最后,确保所有工作都完成再判断,无线都没驱动你就开始判断
作者: 826773297    时间: 2022-5-7 12:52
这种代码都是简简单单,不知道为什么到你这有这么多问题,随便写就行
作者: lhc0688    时间: 2022-5-7 13:10
lhc0688 发表于 2022-5-7 12:42
在pecmd里测试,第一遍仍安装扩展,第二遍不安装;

网络图标出现那个地球状态,就不安装,这样看来应该 ...

好的,我觉得应该可以把这段代码放在最后,并且多等待一会儿,这样的话,使用者不会感觉到。
作者: slore    时间: 2022-5-7 13:15
lhc0688 发表于 2022-5-7 13:10
好的,我觉得应该可以把这段代码放在最后,并且多等待一会儿,这样的话,使用者不会感觉到。

单独一个脚本,不等待执行。
后台自动循环识别驱动就行了。不影响主流程。
作者: lhc0688    时间: 2022-5-7 13:30
826773297 发表于 2022-5-7 12:52
这种代码都是简简单单,不知道为什么到你这有这么多问题,随便写就行

测试可以了,问题好像是需要先运行一次wifi连接程序:

启动 wifi 连接器
EXEC !%ProgramFiles%\SOFT\wireless.exe

//最后检测无线网络是否已正常驱动,如未驱动,则尝试搜索安装外置驱动
WAIT 5000
ADSL-wlan ,,query,无线网卡
FIND $%无线网卡%=,
{*
//未驱动,查找并安装外置扩展驱动
FORX !\PETOOLS\DeviceDriver\Drv.ini,Mydrv,1,LOAD %Mydrv%
//重新尝试启动 wifi 连接器
EXEC !%ProgramFiles%\SOFT\wireless.exe
}
作者: 826773297    时间: 2022-5-7 13:34
lhc0688 发表于 2022-5-7 13:30
测试可以了,问题好像是需要先运行一次wifi连接程序:

启动 wifi 连接器

那就是pecmd前面没启动无线服务导致的,加一行命令:
SERV WLANSVC
作者: lhc0688    时间: 2022-5-7 13:49
826773297 发表于 2022-5-7 13:34
那就是pecmd前面没启动无线服务导致的,加一行命令:
SERV WLANSVC

//启动网络服务
EXEC -hide "%ProgramFiles%\WinXShell\WinXShell.exe" -luacode "wxsUI('UI_WIFI',nil,' -theme blue -hidewindow')"
REGI HKLM\SYSTEM\Setup\SystemSetupInProgress=#0
EXEC !SC Start netprofm
SERV Wlansvc
-------------------------
前面已经有这个命令,可能还是等待时间不足吧。
作者: lhc0688    时间: 2022-5-7 14:19
真是惭愧,又遇到奇怪问题:

上面检测判断代码已经正常,FORX !\PETOOLS\DeviceDriver\Drv.ini,Mydrv,1,LOAD %Mydrv% 这段代码也能看到已经执行安装扩展驱动,但wifi状态仍不能用;换手动直接运行Drvindex.exe马上就可以。
作者: Lightning    时间: 2022-5-8 09:14
lhc0688 发表于 2022-5-7 14:19
真是惭愧,又遇到奇怪问题:

上面检测判断代码已经正常,FORX !\PETOOLS\DeviceDriver\Drv.ini,Mydrv,1, ...

新版Drvindex.exe已经内置WIFI自动连接,无线网卡正常驱动后就自动连接了。
作者: zyy    时间: 2022-7-17 21:46
谢谢分享,学习中




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3