找回密码
 加入
搜索
查看: 6640|回复: 29

[网络通信] [已解决]请教如何判断存在无线网卡则执行?(感谢chzj58和raeast)

[复制链接]
发表于 2019-10-5 04:16:55 | 显示全部楼层 |阅读模式
本帖最后由 令狐大虾 于 2019-10-11 20:19 编辑

Win7系统下自动创建Wifi热点,检测到无线网卡则创建否则退出。
搜索论坛代码特别是lixiaolong的代码只是识别全机网卡而木有执行动作功能
发表于 2019-10-5 23:04:35 | 显示全部楼层
加个判断
If Not @error Then
        GUICtrlSetData($Input1, "发现无线网卡:  " & $wk)
Else
        GUICtrlSetData($Input1, "未发现无线网卡")
EndIf
 楼主| 发表于 2019-10-6 18:44:05 | 显示全部楼层
chzj589 发表于 2019-10-5 23:04
加个判断
If Not @error Then
        GUICtrlSetData($Input1, "发现无线网卡:  " & $wk)

谢谢回复,代码前部分呢?
发表于 2019-10-7 09:56:07 | 显示全部楼层
扬帆技术论坛的令狐大侠?以前用过你的系统,很不错的系统。
发表于 2019-10-7 10:16:54 | 显示全部楼层
通过CMD返回值做个判断,或者通过wmi查询。
发表于 2019-10-7 10:27:54 | 显示全部楼层
API或读注册表都可以,WMI有些慢,看自己需求
 楼主| 发表于 2019-10-7 12:48:08 | 显示全部楼层
本帖最后由 令狐大虾 于 2019-10-7 12:49 编辑
lpxx 发表于 2019-10-7 10:16
通过CMD返回值做个判断,或者通过wmi查询。

鄙人正是,见笑了。
 楼主| 发表于 2019-10-7 12:49:30 | 显示全部楼层
afan 发表于 2019-10-7 10:27
API或读注册表都可以,WMI有些慢,看自己需求

没达到这个技术水平,只能用别人的代码修修补补
发表于 2019-10-7 17:09:14 | 显示全部楼层
令狐大虾 发表于 2019-10-7 12:48
鄙人正是,见笑了。

以前收集代码,供参考。
#include <Constants.au3>

While 1
        Sleep(1000)
        $sString = _CMDRead_WiFi_Signal("netsh wlan show networks mode=bssid >> " & @ScriptDir & "\temp.txt")
        ConsoleWrite($sString & @CRLF)
WEnd

Func send_cmd($CMD)
         RunWait(@ComSpec & " /c " & $CMD, @SystemDir, @SW_HIDE, $STDOUT_CHILD)
EndFunc   ;==>send_cmd

Func _CMDRead_WiFi_Signal($command)
        send_cmd($command)
        $sFilePath = "temp.txt"
        Local $hFileOpen = FileOpen($sFilePath, $FO_READ)
        If $hFileOpen = -1 Then
                MsgBox($MB_SYSTEMMODAL, "", "读取文件时发生错误.")
                Return False
        EndIf
        Local $sFileRead = FileRead($hFileOpen)
        FileClose($hFileOpen)
        $CMDRead_Start = StringInStr($sFileRead, "信号             :") 
        $sFileRead = StringMid($sFileRead, $CMDRead_Start + 20, 4) 
        Return SetError(@error, @extended, $sFileRead)
EndFunc   ;==>_CMDRead_WiFi_Signal
有无线网卡即有信号显示
接口名称 : 无线网络连接 
当前有 8 个网络可见。 

SSID 1 : E5BCA0E6B19DE99D92
    Network type            : 结构
    身份验证                : WPA2 - 个人
    加密                    : CCMP 
    BSSID 1               : dc:fe:18:6b:28:3a
         信号               : 30%
         无线电类型         : 802.11n
         频道               : 1 
         基本速率(Mbps)     : 1 2 5.5 11
         其他速率(Mbps)     : 6 9 12 18 24 36 48 54

SSID 2 : CMCC-FAPi
............................
没有无线网卡显示
系统上没有无线接口。
系统上没有无线接口。
系统上没有无线接口。
...................

 楼主| 发表于 2019-10-7 23:24:42 | 显示全部楼层
lpxx 发表于 2019-10-7 17:09
以前收集代码,供参考。
有无线网卡即有信号显示
没有无线网卡显示

谢谢提供的代码,但是并不适合我提出的要求。
我要的是检测到无线网卡则执行动作(例如创建移动热点)
发表于 2019-10-7 23:48:29 | 显示全部楼层
API udf https://www.autoitscript.com/for ... ive-wifi-functions/
#AutoIt3Wrapper_UseX64=n
#include <nativewifi.au3>
If IsArray(_Wlan_StartSession()) Then MsgBox(0, '', '执行你的代码')
 楼主| 发表于 2019-10-8 13:21:13 | 显示全部楼层
繁星 发表于 2019-10-7 23:48
API udf https://www.autoitscript.com/forum/topic/91018-native-wifi-functions/


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2019-10-9 10:29:09 | 显示全部楼层


#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
Global $wk
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1 (" & @ScriptName & ")", 515, 138, 192, 124)
$GLabel1 = GUICtrlCreateLabel("无线网卡 :", 20, 20, 80, 22)
GUICtrlSetFont(-1, 11, 400, 0, "微软雅黑")
GUICtrlSetColor(-1, 0x990000)
$Input1 = GUICtrlCreateLabel("", 95, 20, 375, 22);, $WS_VSCROLL)
GUICtrlSetFont(-1, 11, 400, 0, "微软雅黑")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
Local $wmi = _wxwk()
If Not @error Then
        GUICtrlSetData($Input1,  $wk);"无线网卡:  " &
        GUICtrlSetColor($Input1, 0x009900)
        RunWait(@ScriptDir & "\获取网卡MAC地址.exe")
Else
        GUICtrlSetData($Input1, "未发现无线网卡")
        GUICtrlSetColor($Input1, 0x990000)
EndIf

While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit

        EndSwitch
WEnd

Func _wxwk();获取网卡信息
        $rootCIMV2 = ObjGet("winmgmts:\\.\root\cimv2");检索对象
        $jbxxwk = $rootCIMV2.ExecQuery("Select * from Win32_NetworkAdapter Where NetConnectionStatus =2");网卡
        For $object In $jbxxwk
                $wk = StringStripWS($object.Name, 1)
        Next
EndFunc   ;==>_wxwk
 楼主| 发表于 2019-10-9 10:56:04 | 显示全部楼层
chzj589 发表于 2019-10-9 10:29
[au3]
#include
#include

谢谢回复,但是识别错误:
还有下面图片红线处这玩意哪来的?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2019-10-9 11:41:05 | 显示全部楼层
本帖最后由 chzj589 于 2019-10-9 12:05 编辑
令狐大虾 发表于 2019-10-9 10:56
谢谢回复,但是识别错误:
还有下面图片红线处这玩意哪来的?

那是判断发现无线网卡,运行程序。
我测试用的,你可改或注消
测试环境:WIN764位,AutoIt3\autoit3_x64.exe(3.3.14.2)
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-23 16:38 , Processed in 0.080722 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表