ueiayz 发表于 2009-5-22 12:14:49

帮忙解决一个奇怪的问题

编辑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”呢?百思不得其解

ueiayz 发表于 2009-5-22 12:40:56

期待能找出这里面问题的人快点出现

kisslinwei 发表于 2009-5-22 13:05:40

应该是跟定义函数有关系`

你查一下帮助文件

pcbar 发表于 2009-5-22 15:30:48

$mymac=mac()
MsgBox(0,"你的mac地址:   ",$mymac )
$number = IniRead ("config.ini","MacIp",StringStripWS($mymac,8), 0)
MsgBox(0,"本机机器编号为:",$number )
至于原因,楼主试一下IniWrite("config.ini","MacIp",$mymac,'053')就知道了

ueiayz 发表于 2009-5-24 17:49:53

4# pcbar

pcbar
你太帅啦

lynfr8 发表于 2009-5-24 20:13:54

本帖最后由 lynfr8 于 2009-5-25 04:52 编辑

      $Output1 = $Output & "" & $objItem.MACAddress & @CRLF改成      $Output1 = $Output & "" & $objItem.MACAddress 是另一种更直接的解决方法
至于无法读取原因正如pcbar所讲
是因为Return $Output1里面有一个换行符号
这样用iniread就不符合语法
当然无法返回正确值了
有时候别怀疑是函数问题,回头检查下自己的整个代码逻辑是否有问题

sxd 发表于 2009-5-25 01:31:24

pcbar <> psbar
{:2_71:}

lynfr8 发表于 2009-5-25 04:50:43

厉害
这样的笔误都让你看到
果然细心

hhasee 发表于 2009-5-25 08:05:19

:face (29):不错的帖子先顶一下

ly587027 发表于 2009-5-27 08:00:41

不错,但目前还看不太懂。

ly587027 发表于 2009-5-27 08:01:12

是我还看不懂,水平有限,刚学的。呵呵。
页: [1]
查看完整版本: 帮忙解决一个奇怪的问题