找回密码  加入

QQ登录

只需一步,快速开始

AUTOIT CN

搜索
查看: 648|回复: 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
鄙人正是,见笑了。

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

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

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

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

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

  13. SSID 2 : CMCC-FAPi
  14. ............................
复制代码
没有无线网卡显示
  1. 系统上没有无线接口。
  2. 系统上没有无线接口。
  3. 系统上没有无线接口。
  4. ...................
复制代码


 楼主| 发表于 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/
  1. #AutoIt3Wrapper_UseX64=n
  2. #include <nativewifi.au3>
  3. 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/


本帖子中包含更多资源

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

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

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

  23. While 1
  24.         $nMsg = GUIGetMsg()
  25.         Switch $nMsg
  26.                 Case $GUI_EVENT_CLOSE
  27.                         Exit

  28.         EndSwitch
  29. WEnd

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

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

本帖子中包含更多资源

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

x
发表于 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, 2019-11-17 15:31 , Processed in 0.078126 second(s), 20 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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