易语言如何编写获取qq昵称程序?

2025-11-17 11:47:58

1、此经验因为腾讯的原因,可能已经失效.

目前可以通过: 图片框1.图片 = HTTP读文件 (“http://q2.qlogo.cn/headimg_dl?bs=” + qqNumber + “&dst_uin=” + qqNumber + “&src_uin=” + qqNumber + “&fid=” + qqNumber + “&spec=100&url_enc=0&referer=bu_interface&term_type=PC”)

这种方式来获取, 把qqNumber换成QQ号即可!

打开易语言,新建一个Windows窗口程序,如图所示,添加2个标签,2个编辑框和一个按钮。

标签1命名为QQ,标签2命名为昵称,编辑框1用来输入QQ号码,编辑框2则用来接收获取到的QQ昵称。按钮命名为”获取昵称“。这里我编辑框1输入的qq为10001。

易语言如何编写获取qq昵称程序?

2、我们双击 按钮,进入代码编写,这时候自动为我们创建了“_按钮1_被单击”子程序。

添加三个变量,一个文本型 两个整数型,这里文本型我写的是 name 两个整数型写的是m和n,具体大家自己命名。

易语言如何编写获取qq昵称程序?

3、我们先写上这行代码。

name = 到文本 (HTTP读文件 (“http://r.qzone.qq.com/cgi-bin/user/cgi_personal_card?uin=” + 编辑框1.内容))

”http://r.qzone.qq.com/cgi-bin/user/cgi_personal_card?uin=10001“这个网址的uin=后面就是你要获取昵称的QQ号码。而这里我们用编辑框1来接收用户输入自定义的QQ

http读文件就是读取网页的数据文件,可以理解为源码。我们访问

”http://r.qzone.qq.com/cgi-bin/user/cgi_personal_card?uin=10001“ 可以看到

_Callback(

{"uin":10001,

"qzone":0,

"intimacyScore":0,

"nickname":"pony",

"realname":"",

"smartname":"",

"friendship":0,

"isFriend":0,

"bitmap":"1a51d5c4082ed301",

"avatarUrl":"http://qlogo2.store.qq.com/qzone/10001/10001/100"});

易语言如何编写获取qq昵称程序?

4、上面的内容,其中"nickname":"pony",这一行中的pony就是QQ昵称。

可是我们要怎么取出其中的qq昵称呢?

我们可以用 取文本中间这条命令来获取。

再写上下面的代码。

m = 寻找文本 (name, “nickname”, , 真)

我们寻找nickname 看他首先出现的位置,把位置赋给m

再用如果命令来判断 寻找文本的返回结果  如果等于-1说明没有找到 我们也就没有继续的必要。

如果 (m = -1)

如果不等于=-1就是说明存在

易语言如何编写获取qq昵称程序?

5、再在如果命令的另一分支(否则的条件时)下写上代码

n = 寻找文本 (name, “,”, m, 真)

这条代码的意思就是从m所在位置开始寻找最先出来的“,”

也就是"nickname":"pony",最后面的“,”符号

找到位置后再赋值给n

然后再用 取文本中间 (name, m + 10, n - m - 10

取文本中间命令来取出 n和m之间的内容(这个内容就是网名所在的位置并占的字符数)从m加10的地方也就是 网名所在那一行,要取的长度就是写为n-m-10。为什么m要加10呢? 我们来看 "nickname":"pony", 和取文本中间的命令用法。

   调用格式: 〈文本型〉 取文本中间 (文本型 欲取其部分的文本,整数型 起始取出位置,整数型 欲取出字符的数目) - 系统核心支持库->文本操作

    英文名称:mid

    返回一个文本,其中包含指定文本中从指定位置算起指定数量的字符。本命令为初级命令。

    参数<1>的名称为“欲取其部分的文本”,类型为“文本型(text)”。

    参数<2>的名称为“起始取出位置”,类型为“整数型(int)”。1为首位置,2为第2个位置,如此类推。

    参数<3>的名称为“欲取出字符的数目”,类型为“整数型(int)”。

”起始取出位置“就是 m变量 最先出现的位置,最新出现的位置什么意思?就是nickanme的首字母n的位置而不要误解为最后字母e的位置,加上10就是定位的网名所在位置前面的那个引号那里。

后面的n-m-10 就是要取出的字符数目了,由于之前m加了10所以这里再减去 不然取出的字符数会多10个。

易语言如何编写获取qq昵称程序?

6、由于涉及到网页编码问题,所以我们这里还需要转换下编码。

编码转换 (到字节集 (取文本中间 (name, m + 10, n - m - 10)), #编码_UTF_8, #编码_GB18030, )

再把转换过后的结果转换文本  以便用于后面的子文本替换

到文本 (编码转换 (到字节集 (取文本中间 (name, m + 10, n - m - 10)), #编码_UTF_8, #编码_GB18030, ))

这时候的文本是"pony"

7、再用子文本替换命令 把左右两边的引号替换为空白即可。

子文本替换 (到文本 (编码转换 (到字节集 (取文本中间 (name, m + 10, n - m - 10)), #编码_UTF_8, #编码_GB18030, )), #引号, 取空白文本 (0), , , 真)

8、再赋值给编辑框2.内容即可

编辑框2.内容 = 子文本替换 (到文本 (编码转换 (到字节集 (取文本中间 (name, m + 10, n - m - 10), #编码_UTF_8, #编码_GB18030, )), #引号, 取空白文本 (0), , , 真)

9、最终结果

.版本 2

.程序集 窗口程序集1

.子程序 _按钮1_被单击

.局部变量 name, 文本型

.局部变量 m, 整数型

.局部变量 n, 整数型

name = 到文本 (HTTP读文件 (“http://r.qzone.qq.com/cgi-bin/user/cgi_personal_card?uin=” + 编辑框1.内容))

m = 寻找文本 (name, “nickname”, , 真)

.如果 (m = -1)

    编辑框2.内容 = “无法获取qq昵称”

.否则

    n = 寻找文本 (name, “,”, m, 真)

    编辑框2.内容 = 子文本替换 (到文本 (编码转换 (到字节集 (取文本中间 (name, m + 10, n - m - 10)), #编码_UTF_8, #编码_GB18030, )), #引号, 取空白文本 (0), , , 真)

.如果结束

易语言如何编写获取qq昵称程序?

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢