电脑强制打开手机usb调试_电脑自动打开关闭手机软件-快来Get最简单便捷的方法...

之前我分享过用JavaScript来写脚本实现电脑自动控制手机的功能。但是很多老铁说我不会用JavaScript,只会易语言、java、python等其他语言怎么办?其实很简单,用 Total Control 提供的REST API 就可以啦!Total Control 的REST API 支持任意脚本语言。今天我来说说,怎样用易语言实现自动打开、关闭手机上的软件。

(一) 易语言实现自动打开手机上的软件(runApp)

函数功能:打开或运行设备上指定的软件

请求方式:POST

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

参数说明:

0cc9c79697679296f3d2b11297eb985c.png

易语言请求实例:打开手机上的 Total Control 软件,Total Control 软件名为 "com.sigma_rt.totalcontrol"

代码如下:

.版本 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=active&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":"U56adwI779838M6F"}}

* 获取的 token 值为: U56adwI779838M6F

* 第二步,获取设备 ID 值,返回值为:{"id":"device@33254183"}

* 获取的设备 ID 值为: device@33254183

* 第三步,运行指定软件,返回值为: {"status":true,"value":"make it active."}

* 恭喜你,成功了!

(二) 易语言实现自动关闭手机上的软件(closeApp)

函数功能:关闭设备上指定的软件

请求方式:POST

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

参数说明:

642f39570dcd0bd116dec53dae785c32.png

易语言实例:关闭手机上的 Total Control 软件,Total Control 软件名为 "com.sigma_rt.totalcontrol"

代码如下:

.版本 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, 文本型

base64 = 到文本 (编码_BASE64编码A (到字节集 (“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.取数据文本 ())

.否则

输出调试文本 (“该 API 执行失败”)

.如果结束

.否则

输出调试文本 (“获取设备 ID 值失败”)

.如果结束

.否则

输出调试文本 (“获取 token 失败”)

.如果结束

易语言代码运行结果:

成功,则返回:

* 将用户名和密码组装成 sigma:3D391497 进行 base64 编码生成的字符串为: c2lnbWE6M0QzOTE0OTc=

* 第一步,获取 token,返回值为:{"status":true,"value":{"token":"m195zZEgY91PMcbo"}}

* 获取的 token 值为: m195zZEgY91PMcbo

* 第二步,获取设备 ID 值,返回值为:{"id":"device@230441652"}

* 获取的设备 ID 值为: device@230441652

* 第三步,关闭手机上指定软件,返回值为: {"status":true,"value":"make it inactive."}

* 恭喜你,成功关闭软件!

(三) 不知道我要卸载的软件的软件包名怎么办?

为了方便用户,Total Control 提供了一个REST API来帮助用户获取应用程序的包名。

函数功能:获取设备上当前运行的软件包名

请求方式:GET

http://IP:8090/TotalControl/v1/devices/:device/apps?token=:token&q=foreground_app

参数说明:

5d67281312669b9f88ae293baf10d09b.png

返回示例:

成功,则返回:

{

"status": true,

"value":"com.sigma_rt.totalcontrol"

}

易语言实例:获取设备上当前运行的软件包名

代码如下:

.版本 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, 逻辑型

.局部变量 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']”)

bool_ret = j_ret.解析 (编码_utf8到gb2312 (到文本 (网页_访问_对象 (“http://localhost:8090/TotalControl/v1/devices/” + device + “/apps?q=foreground_app&token=” + token, 0))))

.如果 (bool_ret)

输出调试文本 (“第三步,获取当前运行的软件包名,返回值为: ” + j_ret.取数据文本 ())

status = j_ret.取属性对象 (“status”)

.如果 (status = “true”)

输出调试文本 (“恭喜你,成功了!”)

.否则

输出调试文本 (“不好意思,失败了!”)

.如果结束

.否则

输出调试文本 (“该 API 执行失败”)

.如果结束

.否则

输出调试文本 (“获取设备 ID 值失败”)

.如果结束

.否则

输出调试文本 (“获取 token 失败”)

.如果结束

易语言代码运行结果:

成功,则返回:

* 将用户名和密码组装成 sigma:3D391497 进行 base64 编码生成的字符串为: c2lnbWE6M0QzOTE0OTc=

* 第一步,获取 token,返回值为:{"status":true,"value":{"token":"U56adwI779838M6F"}}

* 获取的 token 值为: U56adwI779838M6F

* 第二步,获取设备 ID 值,返回值为:{"id":"device@230441652"}

* 第三步,获取当前运行的软件包名,返回值为: {"status":true,"value":"com.sigma_rt.totalcontrol"}

* 恭喜你,成功了!

### 解决USB-Blaster驱动无法更新安装问题 当尝试在新台式电脑上安装Quartus及其配套的USB-Blaster驱动时,如果设备管理器中仍然存在黄色感叹号或者Quartus无法识别USB-Blaster设备,则可能是由于以下几个原因引起的:系统签名策略限制、驱动版本不匹配或硬件连接异常等问题。 以下是针对这些问题的具体分析和解决方案: #### 1. **检查操作系统数字签名设置** 某些Windows系统默认启用了强制数字签名验证功能,这可能导致未通过微软认证的第三方驱动(如USB-Blaster)无法正常加载。可以通过以下方式禁用此功能: - 进入高级启动选项菜单,选择“禁用驱动程序签名强制”模式。 - 如果需要长期禁用该功能,可以修改注册表项`HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecureBoot\Policies`中的相关内容[^3]。 #### 2. **确认驱动版本与Quartus版本一致** 不同版本的Quartus可能对应不同的USB-Blaster驱动版本。建议访问Intel官方支持页面下载最新版驱动文件,并确保所选驱动与当前使用的Quartus软件版本完全兼容[^2]。例如,对于Quartus Prime Lite Edition v20.1,应选用对应的v20.x系列驱动包。 #### 3. **手动卸载旧版驱动并重新安装** 有时残留的历史数据会干扰新版驱动的成功部署。推荐按照如下顺序执行清理工作后再重试: ```bash devmgmt.msc # 打开设备管理器窗口 右键点击目标条目 -> 卸载设备... 勾选【删除与此设备关联的驱动程序】复选框 ``` 完成上述步骤之后再运行解压后的INF脚本进行全新配置[^4]。 #### 4. **排查物理层通信障碍** 即使完成了以上调整仍未能解决问题的话,请进一步核查实际连线状况——包括但不限于更换USB端口位置、测试其他同型号电缆组件等手段来排除潜在接触不良隐患;另外也要留意主板BIOS设定里有关EHCI/XHCI控制器启用状态的规定是否合理恰当[^1]。 #### 5. **调试日志记录审查** 最后一步可利用事件查看器工具定位更深层次的技术细节提示信息以便后续跟进处理: ```powershell Get-WinEvent -FilterHashtable @{LogName='System'; ID=12,13} | Format-List TimeCreated,Message ``` --- ### 提供一段Python代码用于自动化检测已安装驱动情况 下面给出了一段简单的Python脚本用来列举本地计算机上的所有ALTR_USB_BLASTER类别的服务实例名称列表: ```python import wmi def list_usb_blaster_drivers(): c = wmi.WMI() devices = c.Win32_PnPEntity(Name="Altera USB-Blaster") return [device.Name for device in devices] if __name__ == "__main__": drivers = list_usb_blaster_drivers() if not drivers: print("No Altera USB-Blaster driver found.") else: print(f"Detected {len(drivers)} instance(s):", ", ".join(drivers)) ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值