[General]
SyntaxVersion=2
MacroID=a1c52b4e-dc44-4ded-887c-ff94144acf68
[Comment]
命令库是按键精灵8.0版推出的全新功能
您可以把自己常用的函数和子程序写在命令库里让很多个脚本去调用
命令库最大的优势是让多个脚本共享一个命令，修改一处就等于修改多处
目前命令库功能还在测试当中，有任何建议可以在按键精灵论坛提出，网址：http://bbs.ajjl.cn
******注意！这是官方提供的命令库，请勿修改！避免以后按键精灵升级时覆盖您的修改。******//
******          如需新增命令库，可在命令库点击右键选择“新建”命令库            ******//

[Script]
Function 获得网页源文件(网页地址)
    //说明：支持远程获取文本内容，如：
    '自动识别编码：
    '     MsgBox Lib.网络.获得网页源文件("http://www.anjian.com")
    '自定义编码： 
    '     参数格式：BM=编码类型
    '     编码类型：GB2312、GBK、GB18030、UTF-8、ANSI、Unicode ……
    '     MsgBox Lib.网络.获得网页源文件("http://www.anjian.com/test.txt?BM=UTF-8")
    '除去HTML标签代码： 
    '     参数格式：TQ=1
    '     MsgBox Lib.网络.获得网页源文件("http://www.anjian.com/?TQ=1")
    '     MsgBox Lib.网络.获得网页源文件("http://www.anjian.com/test.txt?BM=UTF-8&TQ=1")
    Dim xmlHttp, xmlBody, xmlUrl, URL头, 网页编码, 分割编码
    Dim ThisCharCode, NextCharCode, BytesToBstr
    Dim rep, MatchEs
    Set rep = New RegExp
    rep.IgnoreCase = True 
    rep.[Global] = True
    URL头 = Left(网页地址, 7)
    Select Case URL头
    Case "https:/", "http://"
        xmlUrl = 网页地址
    Case Else
        xmlUrl = "http://" & 网页地址
    End Select
    If InStr(1, xmlUrl, "BM=", 1) > 0 Then 
        rep.Pattern = "(?:\?|&)BM=([^\&]+)"
        Set MatchEs = rep.Execute(xmlUrl)
        网页编码 = MatchEs(0).SubMatches.Item(0)
        rep.Pattern = "(\?|&)BM=[^\&]+&?"
        xmlUrl = rep.Replace(xmlUrl, "$1")
    End If
    If InStr(1, xmlUrl, "TQ=", 1) > 0 Then 
        rep.Pattern = "(\?|&)TQ=[^\&]+&?"
        xmlUrl = rep.Replace(xmlUrl, "$1")
    End if
    rep.Pattern = "\?$"
    If rep.test(xmlUrl) Then xmlUrl = rep.Replace(xmlUrl, "")
    Set xmlHttp = CreateObject("WinHttp.WinHttpRequest.5.1")
    xmlHttp.Open "Get", xmlUrl, False
    xmlHttp.Send
    获得网页源文件 = ""
    If Len(XmlHttp.ResponseText) = 0 Then Set xmlHttp = Nothing : Exit Function
    If InStr(1, XmlHttp.ResponseText, "charset", 1) > 0 Then 
        rep.Pattern = "content=""text/html;[\s]*charset=([^<>""]+)""|[\s]*charset=([^<>""]+)"""
        Set MatchEs = rep.Execute(XmlHttp.ResponseText)
        If rep.test(XmlHttp.ResponseText) Then
            网页编码 = MatchEs(0).SubMatches.Item(0)
        Else
            If 网页编码 = "" Then 网页编码 = "GB2312"
        End If
    Else 
        If 网页编码 = "" Then 网页编码 = "GB2312"
    End If
    xmlBody = xmlHttp.ResponseBody
    Set xmlHttp = Nothing
    If Len(xmlBody) = 0 Then Exit Function 
    Set ObjStream = CreateObject("Adodb.Stream")
    With ObjStream
        .Type = 1
        .Mode = 3
        .Open
        .Write xmlBody
        .Position = 0
        .Type = 2
        .Charset = 网页编码
        BytesToBstr = .ReadText
        .Close
    End With
    Set ObjStream = Nothing
    If InStr(1, 网页地址, "TQ=1", 1) > 0 Then 
        rep.Pattern = "(<script[\s\S]*?</script>)|(<[^<>]*?>)|(&nbsp;)"
        BytesToBstr = rep.Replace(BytesToBstr, "")
    End If
    获得网页源文件 = BytesToBstr
End Function
