易语言酷我音乐三种格式无损下载地址解析源码

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)
    返回 ()
  .如果真结束
.如果真结束

运行结果:

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。如果你想了解更多相关内容请查看下面相关链接

(0)

相关推荐

  • 易语言通过解析免费下载QQ付费音乐的代码

    常量数据表 .版本 2 .常量 链接1, "<文本长度: 9>" .常量 链接2, "<文本长度: 2>" QQ付费音乐下载器 此功能配合精易模块5.6使用,需要加载模块. .版本 2 .支持库 downlib .支持库 iext .支持库 spec .支持库 shell .程序集 窗口程序集_启动窗口 .程序集变量 任务, 任务参数 .程序集变量 下载限速, 整数型 .程序集变量 下载对象, 下载对象 .子程序 _按钮1_被单击 .如果 (

  • 易语言播放指定的音乐文件

    播放音乐命令 英文命令:PlayMusic 操作系统支持:Windows     所属类别:媒体播放 可以播放 .WAV..MID 声音文件或相应格式的字节集声音数据.声音资源.成功返回真,失败返回假. 语法:  逻辑型  播放音乐 (欲播放的音乐,[是否循环播放]) 例程: 说明: 选择一个以  .WAV  .MID 为后缀的文件,并将文件路径显示在编辑框中.通过返回值的判断弹出不同信息框. 运行结果: 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价

  • 易语言通过计算替换字节实现酷狗音乐缓存文件转MP3的代码

    DLL命令表 .版本 2 .DLL命令 创建线程_, 整数型, "kernel32", "CreateThread", , CreateThread建立新的线索 .参数 lpThreadAttributes, 整数型, , 0 .参数 dwStackSize, 整数型, , 0 .参数 lpStartAddress, 子程序指针 .参数 lpParameter, 整数型 .参数 dwCreationFlags, 整数型, , 0 .参数 lpThreadId, 整数

  • 易语言添加软件背景音乐的方法

    易语言软件如何添加背景音乐?计算机软件产业的蓬勃发展,造就了一批又一批的优秀程序猿(当然,笔者也在为了这个理想奋斗着).很多时候,看到别人的优秀软件,就想摩拳擦掌跃跃欲试的模仿一下.毕竟嘛,学会模仿,才能更好的创新.在使用软件的时候,有些软件运行以后,会自动播放音乐.这是怎么回事呢?也许别人和我们用的开发环境不同,但原理基本上都差不多! 1.首先,准备一下今天的"主角"-背景音乐.这里有必要给大家提个醒,易语言Windows窗口程序的背景音乐格式只支持wav.mid格式.因此像mp3.

  • 易语言通过算法计算出酷狗音乐下载地址的代码

    酷狗直链计算的代码 此功能需要加载精易模块5.6 .版本 2 .支持库 RegEx .支持库 iext3 .支持库 dp1 .程序集 窗口程序集_启动窗口 .子程序 JSON转义字符解码, 文本型 .参数 解密文本, 文本型 .局部变量 正则表达, 正则表达式 .局部变量 搜索结果, 搜索结果, , "0" .局部变量 转换结果, 文本型 .局部变量 文本, 文本型 .局部变量 i, 整数型 文本 = 解密文本 .如果真 (文本 ≠ "") 正则表达.创建 (&qu

  • 易语言制作酷狗付费音乐解析下载工具

    常量数据表 .版本 2 .常量 常量2, "<文本长度: 7>", , "url":" .常量 常量1, "<文本长度: 1>", , " 酷狗音乐直链解析 歌曲哈希值在酷狗音乐属性里可以找到. .版本 2 .支持库 internet .程序集 窗口程序集1 .子程序 _解析按钮_被单击 编辑框_直链.内容 = 获取MP3地址 (编辑框_哈希值.内容) .子程序 获取MP3地址, 文本型 .参数 has

  • 易语言酷我音乐三种格式无损下载地址解析源码

    DLL命令表 .版本 2 .DLL命令 CoInitialize, 整数型, "ole32.dll", , 公开, 初始化对象开始 .参数 pvReserved, 整数型, , 0 .DLL命令 CoUninitialize, 整数型, "ole32.dll", , 公开, 初始化对象结束 .DLL命令 ShellExecute, 整数型, "shell32.dll", "ShellExecuteA" .参数 hwnd, 整数

  • 零基础易语言入门教程(三)之了解控制台程序

    易语言简介: 易语言是一门以中文作为程序代码编程语言.以"易"著称.创始人为吴涛.早期版本的名字为E语言.易语言最早的版本的发布可追溯至2000年9月11日.创造易语言的初衷是进行用中文来编写程序的实践.从2000年至今,易语言已经发展到一定的规模,功能上.用户数量上都十分可观. 易语言和其它编程语言一样都有后台程序,它也不一定必须是窗口程序的了,下面小编带大家了解易语言的控制台程序. 方法和步骤如下所示: 1.延时命令: 首先学习一个第一个命令,该命令可将其脚本界面延时.1000毫秒

  • 详解Bootstrap创建表单的三种格式(一)

    在本章中,我们将学习如何使用 Bootstrap 创建表单.Bootstrap 通过一些简单的 HTML 标签和扩展的类即可创建出不同样式的表单.  Bootstrap表单类型分为三种格式:垂直或基本表单.内联表单.水平表单. 垂直或基本表单(display:block;) 基本的表单结构是 Bootstrap 自带的,个别的表单控件自动接收一些全局样式.下面列出了创建基本表单的步骤: 向父 <form> 元素添加 role="form". 把标签和控件放在一个带有 cla

  • 详解C语言-二级指针三种内存模型

    二级指针相对于一级指针,显得更难,难在于指针和数组的混合,定义不同类型的二级指针,在使用的时候有着很大的区别 第一种内存模型char *arr[] 若有如下定义 char *arr[] = {"abc", "def", "ghi"}; 这种模型为二级指针的第一种内存模型,在理解的时候应该这样理解:定义了一个指针数组(char * []),数组的每个元素都是一个地址. 在使用的时候,若要使用中间量操作元素,那么此时中间量应该定义为 char *tm

  • C语言中的三种循环语句

    目录 一.while循环 二.do while 循环 三.for 循环 一.while循环 while即:首先检查启动循环的条件是否满足,当条件满足时,不断地重复循环体内的语句,直到不满足条件就退出. while循环基本形式: while(条件) { <循环体>; <循环体>; } eg: 1 //输入任意个int型,整数并判断其位数#include int main() { int x; intn=0; scanf("%d",&x); n++; x /

  • C语言函数调用的三种实现方法实例

    目录 C语言函数 第一种方法 第二种方法 第三种方法 总结 C语言函数 1.概念:函数是一组一起执行一个任务的语句,每个c程序都必须有一个main函数,程序员可以把代码划分到不同的函数当中去,在逻辑上,划分通常是根据每个函数执行一个特定的任务来进行的.c标准库提供了可以大量调用的库函数,比如,printf,strcmp等. 2.函数的定义 c语言中函数的一般定义如下: return_type Function_name(Parameter List) { The function body }

  • MyBatis-Plus实现条件查询的三种格式例举详解

    目录 常规格式 链式编程格式 lambda格式(推荐) 条件查询null判定 常规格式 常规格式即创建一个Wrapper的实现类QueryWrapper对象,将其传给selectList方法内部 QueryWrapper qw = new QueryWrapper(); //lt是小于,id小于5 qw.lt("id",5); List<User> users = userDao.selectList(qw); System.out.println(users); qw中的

  • 易语言免费免登陆不限次数下载千图网图片的代码

     免费免登陆下载千图网贴图,不限下载次数. 此功能配合精易模块5.6使用,需要加载模块. .版本 2 .支持库 internet .程序集 窗口程序集_启动窗口 .子程序 _按钮1_被单击 .局部变量 文件序号, 文本型 .局部变量 网页源码, 文本型 .局部变量 图片地址, 文本型 .局部变量 网址中间, 文本型 .局部变量 图片数据, 字节集 .局部变量 格式, 文本型 网页源码 = 网页_访问S (编辑框1.内容) 网址中间 = 取中间文本 (网页源码, "src=" + #引号

  • C# 两种方式反编译修改源码(dnspy,ildasm & ilasm)

    一:背景 1. 讲故事 周五下午运营反馈了一个紧急bug,说客户那边一个信息列表打不开,急需解决,附带的日志文件也发过来了,看了下日志大概是这样的: 日期:2020-11-13 12:25:45,923 线程ID:[3924] 日志级别:INFO 错误类:xxx property:[(null)] - 错误描述:应用程序出现了未捕获的异常,Message:该字符串未被识别为有效的 DateTime.; StackTrace: 在 System.DateTimeParse.Parse(String

  • C语言二叉树的三种遍历方式的实现及原理

    二叉树遍历分为三种:前序.中序.后序,其中序遍历最为重要.为啥叫这个名字?是根据根节点的顺序命名的. 比如上图正常的一个满节点,A:根节点.B:左节点.C:右节点,前序顺序是ABC(根节点排最先,然后同级先左后右):中序顺序是BAC(先左后根最后右):后序顺序是BCA(先左后右最后根). 比如上图二叉树遍历结果 前序遍历:ABCDEFGHK 中序遍历:BDCAEHGKF 后序遍历:DCBHKGFEA 分析中序遍历如下图,中序比较重要(java很多树排序是基于中序,后面讲解分析) 下面介绍一下,二

随机推荐