当获得第1块网卡信息后,对这句重新调整网卡的数量不是很理解:
$AdaptersInfo[$AdaptersInfo[0][0]][0] += $AdaptersInfo[0][0] ;网卡的数量?
大家能帮助讲解一下吗?#cs
编写本脚本收获:
对有”教训“的要特别注意
1.原作者没有使用$KeyValue变量表示注册表键名,书写繁琐且不易于代码版面清晰;
2.掌握了用RegEnumKey()枚举指定键;
#ce
#include <Array.au3>
$AdaptersInfo = _RegNetworkAdapterInfo();用_RegNetworkAdapterInfo()函数将所有网卡信息读到一个数组里
_ArrayDisplay($AdaptersInfo);将数组中的网卡信息用列表视图显示出来
Func _RegNetworkAdapterInfo()
Local $AdaptersInfo[10][5];定义一个数组变量
$AdaptersInfo[0][0] = 0;定义网卡初始信息为空
Dim $KeyValue="HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces"
For $i = 1 To 50
$Adapters = RegEnumKey($KeyValue, $i)
;读取指定子键的名称,语法为RegEnumKey ( "键名", 序数 )
If @error <> 0 Then ExitLoop;读取出错退出循环
$IPAddress = RegRead($KeyValue & "" & $Adapters, "IPAddress")
;静态IP的地址
$SubnetMask = RegRead($KeyValue & "" & $Adapters, "SubnetMask")
;静态IP的子网掩码
$AdaptersInfo[0][0] += 1 ;网卡的数量
ReDim $AdaptersInfo[UBound($AdaptersInfo) + 1][5]
;ReDim是调整已经存在数组的大小,网卡信息位于1维
;UBound是返回数组纬度的大小,语法为UBound ( 数组 [, 维度] )
$AdaptersInfo[$AdaptersInfo[0][0]][0] += $AdaptersInfo[0][0] ;网卡的数量
;以上可不可以理解为$AdaptersInfo[$i][0]=$AdaptersInfo[$i][0]+$AdaptersInfo[0][0]
;$AdaptersInfo[$AdaptersInfo[0][0]][0]=$AdaptersInfo[$AdaptersInfo[0][0]][0]+$AdaptersInfo[0][0]
$AdaptersInfo[$AdaptersInfo[0][0]][1] = $IPAddress ;IP的地址
$AdaptersInfo[$AdaptersInfo[0][0]][2] = $SubnetMask ;IP的掩码
Next
Return $AdaptersInfo
EndFunc ;==>_RegNetworkAdapterInfo
|