c7540634 发表于 2009-4-20 17:52:02

AU3自动判断MAC地址来实现填写正确的编号!我头都要炸了。

我看了很多文章。
都没有一个很好的答案。。
麻烦你了。

if not WinActivate("iKeeper网络安全管理系统 网吧版 计费客户端 安装程序","输入网吧编码") Then WinActivate("iKeeper网络安全管理系统 网吧版 计费客户端 安装程序","输入网吧编码")
WinActivate("iKeeper网络安全管理系统 网吧版 计费客户端 安装程序","输入网吧编码")
ControlSetText("iKeeper网络安全管理系统 网吧版 计费客户端 安装程序","输入网吧编码","Edit1","")
ControlSetText("iKeeper网络安全管理系统 网吧版 计费客户端 安装程序","输入网吧编码","Edit2","00-21-85-6F-ED-09")
ControlSetText("iKeeper网络安全管理系统 网吧版 计费客户端 安装程序","输入网吧编码","Edit3","")
ControlSend("iKeeper网络安全管理系统 网吧版 计费客户端 安装程序","输入网吧编码","Edit1","5104020002")
ControlSend("iKeeper网络安全管理系统 网吧版 计费客户端 安装程序","输入网吧编码","Edit2","120")
ControlSend("iKeeper网络安全管理系统 网吧版 计费客户端 安装程序","输入网吧编码","Edit3","192.168.5.199")

中间红色这段如何让AU3自动判断MAC地址来实现填写正确的编号呢?

帮帮我嘛!

小包乖兔兔 发表于 2009-4-20 18:42:42

根据IP地址使用API得到网卡MAC地址.



_API_Get_NetworkAdapterMAC ($sIP)




参数

$sIP 您要查询网卡MAC地址的IP.

返回值

成功: 返回指定IP的网卡MAC地址
失败: 返回 00:00:00:00:00:00

注意/说明

此函数是采用发送ARP方式,如果有错误的路由绑定或交换机绑定.可能得到错误的MAC.


Func _API_Get_NetworkAdapterMAC($sIP)
        Local $MAC, $MACSize
        Local $i, $s, $r, $iIP

        $MAC = DllStructCreate("byte")
        $MACSize = DllStructCreate("int")

        DllStructSetData($MACSize, 1, 6)
        $r = DllCall("Ws2_32.dll", "int", "inet_addr", "str", $sIP)
        $iIP = $r
        $r = DllCall("iphlpapi.dll", "int", "SendARP", "int", $iIP, "int", 0, "ptr", DllStructGetPtr($MAC), "ptr", DllStructGetPtr($MACSize))
        $s = ""
        For $i = 0 To 5
                If $i Then $s = $s & ":"
                $s = $s & Hex(DllStructGetData($MAC, 1, $i + 1), 2)
        Next
        Return $s
EndFunc   ;==>_API_Get_NetworkAdapterMAC

[ 本帖最后由 小包乖兔兔 于 2009-4-20 18:45 编辑 ]

lixiang 发表于 2009-5-16 17:32:25

请问如果网络还没有连通怎样可以获取本机的MAC?

lynfr8 发表于 2009-5-16 17:50:39

请问如果网络还没有连通怎样可以获取本机的MAC?
lixiang 发表于 2009-5-16 17:32 http://www.autoitx.com/images/common/back.gif

老兄,别到处开贴,你前面那个帖子不是有人给出解决方法了嘛
http://www.autoitx.com/forum.php?mod=viewthread&tid=6554&extra=page%3D1


$sip=@IPAddress1;获取本机ip
If $sip="0.0.0.0" Then $sip=@IPAddress2;获取本机ip
If $sip="0.0.0.0" Then $sip=@IPAddress3
If $sip="0.0.0.0" Then $sip=@IPAddress4
If $sip="0.0.0.0" Then MsgBox(0,"IP怎么是 0.0.0.0 ?","貌似没有发现网卡,难道我脑子出问题了?")
$MAC = _GetMAC($sip);通过IP获取地址


MsgBox(0,"IP地址:"&$sip,"MAC地址:"&$MAC)

Func _GetMAC($sIP)
      Local $MAC, $MACSize
      Local $i, $s, $r, $iIP
      $MAC = DllStructCreate("byte")
      $MACSize = DllStructCreate("int")
      DllStructSetData($MACSize, 1, 6)
      $r = DllCall("Ws2_32.dll", "int", "inet_addr", "str", $sIP)
      $iIP = $r
      $r = DllCall("iphlpapi.dll", "int", "SendARP", "int", $iIP, "int", 0, "ptr", DllStructGetPtr($MAC), "ptr", DllStructGetPtr($MACSize))
      $s = ""
      For $i = 0 To 5
                If $i Then $s = $s & "-"
                $s = $s & Hex(DllStructGetData($MAC, 1, $i + 1), 2)
      Next
      Return $s
EndFunc   
验证过,即使无网络也可顺利获取mac地址

qinguofang 发表于 2009-5-29 23:30:40

那怎么可以自动获取IP地址呢
我意思就是说自动改IP呢
页: [1]
查看完整版本: AU3自动判断MAC地址来实现填写正确的编号!我头都要炸了。