帮忙解决一个奇怪的问题
编辑config.ini的内容为:00:E0:A0:1D:68:DE=053
;事先准备的MAC和机器编号对应表
上面的00:E0:A0:1D:68:DE 是我用的本机MAC
然后用AU3 获取本机MAC 然后到config.ini里查找相应的机器编号$mymac=mac()
MsgBox(0,"你的mac地址: ",$mymac )
$number = IniRead ("config.ini","MacIp",$mymac, 0)
MsgBox(0,"本机机器编号为:",$number )
Func mac()
$wbemFlagReturnImmediately = 0x10
$wbemFlagForwardOnly = 0x20
$colItems = ""
$strComputer = "localhost"
$Output=""
$objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\CIMV2")
$colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled != 0", "WQL", _
$wbemFlagReturnImmediately + $wbemFlagForwardOnly)
If IsObj($colItems) then
For $objItem In $colItems
$Output1 = $Output & "" & $objItem.MACAddress & @CRLF
Next
Return $Output1
Else
Endif
EndFunc第一个MsgBox 能显示出我的MAC(00:E0:A0:1D:68:DE)
但是第二个MsgBox 显示的机器编号是 “0”呢?百思不得其解 期待能找出这里面问题的人快点出现 应该是跟定义函数有关系`
你查一下帮助文件 $mymac=mac()
MsgBox(0,"你的mac地址: ",$mymac )
$number = IniRead ("config.ini","MacIp",StringStripWS($mymac,8), 0)
MsgBox(0,"本机机器编号为:",$number )
至于原因,楼主试一下IniWrite("config.ini","MacIp",$mymac,'053')就知道了 4# pcbar
pcbar
你太帅啦 本帖最后由 lynfr8 于 2009-5-25 04:52 编辑
$Output1 = $Output & "" & $objItem.MACAddress & @CRLF改成 $Output1 = $Output & "" & $objItem.MACAddress 是另一种更直接的解决方法
至于无法读取原因正如pcbar所讲
是因为Return $Output1里面有一个换行符号
这样用iniread就不符合语法
当然无法返回正确值了
有时候别怀疑是函数问题,回头检查下自己的整个代码逻辑是否有问题 pcbar <> psbar
{:2_71:} 厉害
这样的笔误都让你看到
果然细心 :face (29):不错的帖子先顶一下 不错,但目前还看不太懂。 是我还看不懂,水平有限,刚学的。呵呵。
页:
[1]