令狐大虾 发表于 2019-10-5 04:16:55

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

本帖最后由 令狐大虾 于 2019-10-11 20:19 编辑

Win7系统下自动创建Wifi热点,检测到无线网卡则创建否则退出。
搜索论坛代码特别是lixiaolong的代码只是识别全机网卡而木有执行动作功能

chzj589 发表于 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)


谢谢回复,代码前部分呢?

lpxx 发表于 2019-10-7 09:56:07

扬帆技术论坛的令狐大侠?以前用过你的系统,很不错的系统。

lpxx 发表于 2019-10-7 10:16:54

通过CMD返回值做个判断,或者通过wmi查询。

afan 发表于 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有些慢,看自己需求

没达到这个技术水平,只能用别人的代码修修补补:face (7):

lpxx 发表于 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/forum/topic/91018-native-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/


chzj589 发表于 2019-10-9 10:29:09

令狐大虾 发表于 2019-10-8 13:21



#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

#include
#include


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

chzj589 发表于 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)
页: [1] 2
查看完整版本: [已解决]请教如何判断存在无线网卡则执行?(感谢chzj58和raeast)