学写第一个易语言程序

第一步:我们新建一个windows窗口程序

首先,我们打开易语言软件。
点击左上角菜单栏的"程序"-->"新建"按钮,会弹出新建对话框,如下图所示,

然后选中上图中的"windows窗口程序",点击“确定”,一个windows窗口程序就创建成功了,如下图所示,

第二步:添加模块引用

首先我们在官网上下载精易模块,点击"模块下载",获取精易模块下载链接。

精易模块下载成功后,解压下载的文件,我们会看到两个文件,如下图所示,"精易模块[6.9.1].ec"是我们需要的文件。

选中"模块应用表",点击鼠标右键,在弹出菜单中单击"添加模块引用",如下图所示,

然后在弹出的"请选中欲加入的易模块文件"窗口中,将之前下载的精易模块文件"精易模块[6.9.1].ec"添加进去,成功添加模块,会在"模块应用表"中显示,如下图所示,

第三步:开始编辑代码

双击上图中的windows窗口程序,进入代码编辑区,如下图所示,

开始写代码之前,我们首先要定义变量,你可以定义局部变量,也可以定义全局变量,这里我们定义局部变量,点击菜单栏的"插入"-->"局部变量"菜单项,就可以得到下图红色框中的局部变量定义框,现在我们就可以开始定义程序中需要用的变量啦!

我们学习用易语言实现关闭手机上的 Total Control 软件,Total Control 软件名为 "com.sigma_rt.totalcontrol"

根据需要,对于我们要实现的这个功能,我定义了如下变量,如图所示,

Total Control REST API

关闭指定包名的 app

请求方法:

POST

请求路径:

http://IP:8090/TotalControl/v1/devices/:device/apps/:packageName?state=inactive&token=:token

使用 Total Control REST API 的一般步骤:
1、获取 Total Control 脚本开发所用的开发 token
2、获取设备 ID 值
3、使用 API 对第二步获取的设备操作,比如关闭指定应用程序,发送短信等。

当我们用易语言使用 Total Control 关闭指定软件的 REST API,会用到下列易语言的子程序,下面做一些简单介绍,

  • 子程序名:编码_BASE64编码
    BASE64编码处理;成功返回编码后的文本;
  • 子程序名:网页_访问_对象
    使用WinHttp的对象方式访问网页,返回值类型:字节集
  • 子程序名:解析
    返回值类型:逻辑型;解析json的文本数据
  • 子程序名:编码_utf8到gb2312
    返回值类型:文本型

下面是代码截图:

代码说明:
(可能你需要参考文档Total Control 控制界面 REST API 参数简介Total Control REST API 快速入门
首先我们要用"编码_BASE64编码"将 REST API 用户名和密码进行 base64 编码。
再用"网页_访问_对象"发送 HTTP 请求,比如,获取 token ,返回示例{"status":true,"value":{"token":"7G96L23Zp48JFxC3"}}。
用"json.解析"来解析"网页_访问_对象"返回的 json 数据。
用"json.取通用属性"来获取 HTTP 请求返回数据中我们需要的具体值,比如,我们需要的 token 具体值 "7G96L23Zp48JFxC3"

运行脚本

点击下图中的箭头指向的三角形按钮是运行脚本,点击图中箭头指向的正方形按钮是终止脚本执行,下图内下面的红色框是脚本运行结果。

完整代码(文本格式)

.版本 2

.程序集 窗口程序集_启动窗口

.子程序 __启动窗口_创建完毕
.局部变量 base64, 文本型
.局部变量 token, 文本型
.局部变量 device, 文本型
.局部变量 j_token, 类_json, , , 用来解析获取 token 的 json
.局部变量 j_dev, 类_json, , , 用来解析获取设备ID 值的 json
.局部变量 j_ret, 类_json, , , 用来解析 REST API 接口的json
.局部变量 bool, 逻辑型
.局部变量 bool_dev, 逻辑型
.局部变量 bool_ret, 逻辑型
.局部变量 AppName, 文本型
.局部变量 status, 文本型


base64 = 到文本 (编码_BASE64编码 (到字节集 (“sigma:3D391497”)))
输出调试文本 (“将用户名和密码组装成 sigma:3D391497 进行 base64 编码生成的字符串为: ” + base64)
bool = j_token.解析 (到文本 (网页_访问_对象 (“http://localhost:8090/TotalControl/v1/login”, 0, , , , “Authorization:” + base64, , , , , , , , , )))
.如果 (bool)
    输出调试文本 (“第一步,获取 token,返回值为:” + j_token.取数据文本 ())
    token = j_token.取通用属性 (“['value'].token”)
    输出调试文本 (“获取的 token 值为: ” + token)
    bool_dev = j_dev.解析 (编码_utf8到gb2312 (到文本 (网页_访问_对象 (“http://localhost:8090/TotalControl/v1/devices/main?token=” + token, 0))))
    .如果 (bool_dev)
        输出调试文本 (“第二步,获取设备 ID 值,返回值为:” + j_dev.取数据文本 ())
        device = j_dev.取通用属性 (“['id']”)
        输出调试文本 (“获取的设备 ID 值为: ” + device)
        AppName = “com.sigma_rt.totalcontrol”
        bool_ret = j_ret.解析 (编码_utf8到gb2312 (到文本 (网页_访问_对象 (“http://localhost:8090/TotalControl/v1/devices/” + device + “/apps/” + AppName + “?state=inactive&token=” + token, 1))))
        .如果 (bool_ret)
            输出调试文本 (“第三步,关闭手机上指定软件,返回值为: ” + j_ret.取数据文本 ())
            status = j_ret.取属性对象 (“status”)
            .如果 (status = “true”)
                输出调试文本 (“恭喜你,成功关闭软件!”)
            .否则
                输出调试文本 (“不好意思,失败了!”)
            .如果结束

        .否则
            输出调试文本 (“该 API 执行失败”)
        .如果结束

    .否则
        输出调试文本 (“获取设备 ID 值失败”)
    .如果结束


.否则
    输出调试文本 (“获取 token 失败”)
.如果结束




运行结果

* 将用户名和密码组装成 sigma:3D391497 进行 base64 编码生成的字符串为: c2lnbWE6M0QzOTE0OTc=
* 第一步,获取 token,返回值为:{"status":true,"value":{"token":"ZEGpMU851z2CR45y"}}
* 获取的 token 值为: ZEGpMU851z2CR45y
* 第二步,获取设备 ID 值,返回值为:{"id":"device@230441652"}
* 获取的设备 ID 值为: device@230441652
* 第三步,关闭手机上指定软件,返回值为: {"status":true,"value":"make it inactive."}
* 恭喜你,成功关闭软件!