易语言酷我音乐三种格式无损下载地址解析源码
作者:易语言源码教程
今天小编就为大家分享一篇关于易语言酷我音乐三种格式无损下载地址解析源码,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
DLL命令表
.版本 2 .DLL命令 CoInitialize, 整数型, "ole32.dll", , 公开, 初始化对象开始 .参数 pvReserved, 整数型, , 0 .DLL命令 CoUninitialize, 整数型, "ole32.dll", , 公开, 初始化对象结束 .DLL命令 ShellExecute, 整数型, "shell32.dll", "ShellExecuteA" .参数 hwnd, 整数型, , 指定一个窗口的句柄,有时候,windows程序有必要在创建自己的主窗口前显示一个消息框 .参数 lpOperation, 文本型, , 指定字串“open”来打开lpFlie文档,或指定“Print”来打印它 .参数 lpFile, 文本型, , 想用关联程序打印或打开一个程序名或文件名 .参数 lpParameters, 文本型, , 如lpszFlie是可执行文件,则这个字串包含传递给执行程序的参数 .参数 lpDirectory, 文本型, , 想使用的完整路径 .参数 nShowCmd, 整数型, , 定义了如何显示启动程序的常数值。参考ShowWindow函数的nCmdShow参数
自定义数据类型表
.版本 2 .数据类型 _kuwoSong, 公开 .成员 music_id, 文本型 .成员 name, 文本型 .成员 song_url, 文本型 .成员 singer, 文本型 .成员 mp3size, 文本型 .成员 path, 文本型 .成员 mp3path, 文本型 .成员 aacpath, 文本型 .成员 wmadl, 文本型 .成员 mp3dl, 文本型 .成员 aacdl, 文本型 .成员 lyric, 文本型 .成员 lyric_zz, 文本型
酷我音乐下载地址解析源码
.版本 2 .支持库 internet .支持库 EThread .支持库 iext .程序集 窗口程序集_窗口1 .程序集变量 kuwoSong, _kuwoSong .程序集变量 开始解析, 逻辑型 .子程序 __启动窗口_创建完毕 .子程序 GetSongInfo, 逻辑型 .参数 music_id, 文本型 .局部变量 bin, 字节集 .局部变量 str, 文本型 bin = HTTP读文件 (“http://www.kuwo.cn/webmusic/st/getMuiseByRid?rid=MUSIC_” + music_id + “&flag=3&r=” + Random ()) str = 到文本 (CCharset (bin)) kuwoSong.name = GetStr (str, “<name>”, “</name>”) kuwoSong.path = GetStr (str, “<path>”, “</path>”) kuwoSong.wmadl = GetStr (str, “<wmadl>”, “</wmadl>”) kuwoSong.mp3dl = GetStr (str, “<mp3dl>”, “</mp3dl>”) kuwoSong.aacdl = GetStr (str, “<aacdl>”, “</aacdl>”) kuwoSong.lyric = GetStr (str, “<lyric>”, “</lyric>”) kuwoSong.singer = GetStr (str, “<singer>”, “</singer>”) kuwoSong.mp3size = GetStr (str, “<mp3size>”, “</mp3size>”) kuwoSong.mp3path = GetStr (str, “<mp3path>”, “</mp3path>”) kuwoSong.aacpath = GetStr (str, “<aacpath>”, “</aacpath>”) kuwoSong.music_id = GetStr (str, “<music_id>”, “</music_id>”) kuwoSong.song_url = GetStr (str, “<song_url>”, “</song_url>”) kuwoSong.lyric_zz = GetStr (str, “<lyric_zz>”, “</lyric_zz>”) .如果 (kuwoSong.music_id = “”) 返回 (假) .否则 返回 (真) .如果结束 .子程序 Random, 文本型, 公开 .局部变量 VBScript, 对象 .局部变量 值, 双精度小数型 .局部变量 文本值, 文本型 VBScript.创建 (“ScriptControl”, ) VBScript.写属性 (“Language”, “JScript”) VBScript.数值方法 (“ExecuteStatement”, “function random(){return Math.random()}”) 值 = VBScript.通用方法 (“Run”, “random”, ).取数值 () 文本值 = 到文本 (值) 返回 (文本值) .子程序 CCharset, 字节集, 公开, 改变编码 .参数 待转换数据, 字节集 .参数 转换前编码, 文本型, 可空, 默认UTF-8,utf-8;unicode;GBK 等 .参数 转换后编码, 文本型, 可空, 默认GBK,utf-8;unicode;GBK 等 .参数 转换后数据开始位置, 整数型, 可空, 位置从0开始。unicode编码标识占2个字节,utf-8编码标识占3个字节 .局部变量 文本, 文本型 .局部变量 变体型, 变体型 .局部变量 this, 对象 .局部变量 返回值, 字节集 .如果真 (是否为空 (转换前编码) = 真) 转换前编码 = “UTF-8” .如果真结束 .如果真 (是否为空 (转换后编码) = 真) 转换后编码 = “GBK” .如果真结束 this.创建 (“Adodb.Stream”, ) this.写属性 (“Type”, 1) this.方法 (“Open”, ) 变体型.创建数组 (#字节型, 取字节集长度 (待转换数据)) 变体型.赋值 (待转换数据, ) this.方法 (“Write”, 变体型) this.写属性 (“Position”, 0) this.写属性 (“Type”, 2) this.写属性 (“Charset”, 转换前编码) 文本 = this.文本方法 (“ReadText”, -1) this.方法 (“Close”, ) this.方法 (“Open”, ) this.写属性 (“Charset”, 转换后编码) this.方法 (“WriteText”, 文本, ) this.写属性 (“Position”, 0) this.写属性 (“Type”, 1) .如果真 (是否为空 (转换后数据开始位置) = 假) this.写属性 (“Position”, 转换后数据开始位置) .如果真结束 变体型 = this.通用方法 (“Read”, -1) 返回值 = 变体型.取字节集 () 返回 (返回值) .子程序 GetStr, 文本型, 公开 .参数 内容, 文本型 .参数 头, 文本型 .参数 尾, 文本型 .参数 返回数组, 文本型, 可空 数组 .局部变量 开始, 整数型 .局部变量 结束, 整数型 .局部变量 长度, 整数型 .局部变量 结果内容, 文本型, , "0" .判断循环首 (寻找文本 (内容, 头, 开始, 真) ≠ -1) 开始 = 寻找文本 (内容, 头, 开始, 真) + 取文本长度 (头) 结束 = 寻找文本 (内容, 尾, 开始, 真) .如果真 (开始 = -1 或 结束 = -1) 到循环尾 () .如果真结束 长度 = 结束 - 开始 加入成员 (结果内容, 取文本中间 (内容, 开始, 长度)) .判断循环尾 () 返回数组 = 结果内容 .如果 (取数组成员数 (返回数组) > 0) 返回 (返回数组 [1]) .否则 返回 (“”) .如果结束 .子程序 _按钮1_被单击 .如果 (开始解析) 信息框 (“请稍等片刻,上次操作还在处理中......”, 0, “提示”) .否则 启动线程 (&子程序2, , ) .如果结束 .子程序 子程序2 .局部变量 music_id, 文本型 CoInitialize (0) 开始解析 = 真 kuwoSong.music_id = “” 超级列表框1.置标题 (0, 1, “”) 超级列表框1.置标题 (1, 1, “”) 超级列表框1.置标题 (2, 1, “”) 超级列表框1.置标题 (3, 1, “”) 超级列表框1.置标题 (4, 1, “”) 超级列表框1.置标题 (5, 1, “”) music_id = GetStr (编辑框1.内容 + “/”, “/yinyue/”, “/”) .如果 (GetSongInfo (music_id)) 加入列表框 () .否则 信息框 (“获取失败,请检查地址是否正确或工具已失效......”, 0, “提示”) .如果结束 开始解析 = 假 CoUninitialize () .子程序 加入列表框 超级列表框1.置标题 (0, 1, kuwoSong.name) 超级列表框1.置标题 (1, 1, kuwoSong.singer) 超级列表框1.置标题 (2, 1, kuwoSong.mp3size) 超级列表框1.置标题 (3, 1, “http://” + kuwoSong.mp3dl + kuwoSong.mp3path) .如果真 (kuwoSong.wmadl ≠ “”) 超级列表框1.置标题 (4, 1, “http://” + kuwoSong.wmadl + kuwoSong.path) .如果真结束 .如果真 (kuwoSong.aacdl ≠ “”) 超级列表框1.置标题 (5, 1, “http://” + kuwoSong.aacdl + kuwoSong.aacpath) .如果真结束 .子程序 _超级列表框1_被双击, 逻辑型 .参数 横向位置, 整数型 .参数 纵向位置, 整数型 .参数 功能键状态, 整数型 .局部变量 下载地址, 文本型 .如果真 (超级列表框1.现行选中项 = 3 或 超级列表框1.现行选中项 = 4 或 超级列表框1.现行选中项 = 5) 下载地址 = 超级列表框1.取标题 (超级列表框1.现行选中项, 1) .如果真 (取文本长度 (下载地址) > 10) ShellExecute (0, “open”, 下载地址, “”, “”, 1) 返回 () .如果真结束 .如果真结束
运行结果:
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接