[已解决]怎样自定义UDF函数
本帖最后由 xlcwxl 于 2010-11-6 08:31 编辑MsgBox(0,0,GetIPi($ip))
Func GetIPi($ip)
Local $IPDown = InetGet("http://tool.115.com/ip",@WindowsDir&"\temp\GetIP.dat", 1, 1)
Do
Sleep(10)
Until InetGetInfo($IPDown, 2);检查下载是否完成.
Local $IPData = InetGetInfo($IPDown);获取所有信息
InetClose($IPDown);关闭句柄, 释放资源.
If $IPData = 0 Then;4 - 下载错误值. 这些值可能是任意的,判断这些值是不是非0来决定是不是发生了错误.
$IPstr = StringRegExp(FileRead(@WindowsDir&"\temp\GetIP.dat"), '<td>([^<]+)</td>\s</tr>\s<tr>',3);提取IP地址
$ip = $IPstr
;~ MsgBox(0,0,$ip)
Else
;~ GUICtrlSetData($BJGSD,'获取本机IP失败')
EndIf
EndFunc以上代码错在什么地方?
答案 3# #include <ie.au3>
Dim $oIE = _IECreate("http://tool.115.com/ip",1,0,1)
$sHTML = _IEDocReadHTML ($oIE)
$IPstr = StringRegExp($sHTML, '<TD>(.+?)</TD></TR>',3);提取IP地址
_IEQuit($oIE)
MsgBox(64,'提示','IP地址: ' & $IPstr & @CRLF & '归属地:' & $IPstr) 本帖最后由 lpxx 于 2010-11-5 23:46 编辑
你看看MsgBox(0, 0, GetIPi())
Func GetIPi()
Local $IPDown = InetGet("http://tool.115.com/ip", @WindowsDir & "\temp\GetIP.dat", 1, 1)
Do
Sleep(10)
Until InetGetInfo($IPDown, 2);检查下载是否完成.
Local $IPData = InetGetInfo($IPDown);获取所有信息
InetClose($IPDown);关闭句柄, 释放资源.
If $IPData = 0 Then;4 - 下载错误值. 这些值可能是任意的,判断这些值是不是非0来决定是不是发生了错误.
$IPstr = StringRegExp(FileRead(@WindowsDir & "\temp\GetIP.dat"), '<td>([^<]+)</td>\s</tr>\s<tr>', 3);提取IP地址
$ip = $IPstr
;~ MsgBox(0,0,$ip)
Return $ip
Else
;~ GUICtrlSetData($BJGSD,'获取本机IP失败')
EndIf
EndFunc ;==>GetIPi 不过最简单的还是帮助中的例子:#include <INet.au3>
MsgBox(0, "", _GetIP())自定义UDF函数,这个貌似需要很多知识的,基础是首选。 谢谢lpxx,少了个 Return $ip 帮助中的获取时有些慢
页:
[1]