import win.reg
import process.popen
namespace ld
cmd = function(act){
var path = ldpath()
if(!#path){
return false;
}
var subprocess = ..process.popen(path + "dnconsole.exe",act)
var str = subprocess.read(-1)
subprocess.close();
return str;
}
nmqtype = function(mnq){
if(type(mnq) == type.number){
return " --index "+mnq;
}elseif(type(mnq) == type.string ) {
return " --name "+mnq;
}else {
error("参数类型为数字或字符串")
return false;
}
}
//雷电路径
ldpath = function(){
var reg = ..win.reg("HKEY_CURRENT_USER\SOFTWARE\ChangZhi2\dnplayer")
var path = reg.queryValue("InstallDir");
return path;
}
//启动模拟器
launch = function(mnq){
var mnq = nmqtype(mnq)
if(mnq != false){
return cmd( ..string.format(" launch %s ", mnq ));
}
}
//关闭模拟器
quit = function(mnq){
var mnq = nmqtype(mnq)
if(mnq != false){
return cmd( ..string.format(" quit %s ", mnq ));
}
}
//关闭所有模拟器
quitall = function(){
return cmd(" quitall ");
}
//获取所有模拟器
list = function(){
return cmd(" list2");
}
//运行app
runapp = function(mnq,packagename){
var mnq = nmqtype(mnq)
if(mnq != false){
return cmd( ..string.format(" runapp %s --packagename %s ", mnq , packagename ));
}
}
//关闭app
killapp = function(mnq,packagename){
var mnq = nmqtype(mnq)
if(mnq != false){
return cmd(..string.format(" killapp %s --packagename %s ", mnq , packagename ));
}
}
//模拟点击 模拟器坐标
tap = function(mnq,x = 0 ,y = 0){
var mnq = nmqtype(mnq)
if(mnq != false){
return cmd(..string.format(' adb %s --command "shell input tap %d %d"',mnq,x,y ));
}
}
//模拟滑动 模拟器
swipe = function(mnq,x ,y ,x1 ,y1){
var mnq = nmqtype(mnq)
if(mnq != false){
return cmd(..string.format(' adb %s --command "shell input swipe %d %d %d %d"',mnq,x,y,x1,y1 ));
}
}
//按键码 http://blog.youkuaiyun.com/huiguixian/article/details/8550170
keyboard = function(mnq,keycode){
var mnq = nmqtype(mnq)
if(mnq != false){
return cmd(..string.format(' adb %s --command "shell input keyevent %d"',mnq,keycode));
}
}
//重新启动安卓模拟器 并启动指定程序
reboot = function(mnq , packagename = "null" ){
var mnq = nmqtype(mnq)
if(mnq != false){
return cmd(..string.format(' action %s --key call.reboot --value %s',mnq,packagename));
}
}
//模拟位置
locate = function(mnq,lng ,lat ){
var mnq = nmqtype(mnq)
if(mnq != false){
return cmd(..string.format(' action %s --key call.locate --value %d,%d',mnq,lng,lat));
}
}
//摇一摇
shake = function(mnq){
var mnq = nmqtype(mnq)
if(mnq != false){
return cmd(..string.format(' action %s --key call.shake --value null',mnq ));
}
}
//输入文字
input = function(mnq,value = ""){
var mnq = nmqtype(mnq)
if(mnq != false){
return cmd(..string.format(' action %s --key call.input --value "%s"',mnq,value ));
}
}
//安装APK
installapp = function(mnq , filepath ){
var mnq = nmqtype(mnq)
if(mnq != false){
return cmd(..string.format(' adb %s --command " install %s"',mnq,filepath));
}
}
//卸载APK
uninstallapp = function(mnq , packagename){
var mnq = nmqtype(mnq)
if(mnq != false){
return cmd( ..string.format(" uninstallapp %s --packagename %s ", mnq , packagename ));
}
}
appisfront = function(mnq,packagename){
var mnq = nmqtype(mnq)
if(mnq != false){
var str = cmd(..string.format(' adb %s --command "shell dumpsys activity top | grep TASK"',mnq))
if(..string.indexOf(str,packagename)){
return true;
}else {
return false;
}
}
}
downcpu = function(mnq,num = 0){
var mnq = nmqtype(mnq)
if(mnq != false){
return cmd( ..string.format(" downcpu %s --rate %d ", mnq , num ));
}
}
//adb 不带adb前缀
adb = function(mnq,act){
var mnq = nmqtype(mnq)
if(mnq != false){
return cmd(..string.format(' adb %s --command "%s"',mnq,act ));
}
}
/**intellisense(ld)
ldpath() = 雷电安装路径
launch(0) = 启动指定模拟器\n参数为模拟器序号或模拟器标题 ld.list() 可获取
quit(0) = 关闭指定模拟器\n参数为模拟器序号或模拟器标题 ld.list() 可获取
quitall() = 关闭全部模拟器
list() = 获取已创建模拟器\n 序号,标题,顶层窗口句柄,绑定窗口句柄,是否进入android,进程PID,VBox进程PID
runapp(0,"App包名") = 运行指定App \n @1 参数为模拟器序号或模拟器标题\n @2 App包名
killapp(0,"App包名") = 关闭指定App \n @1 参数为模拟器序号或模拟器标题\n @2 App包名
tap(0,x,y) = 模拟点击 \n @1 参数为模拟器序号或模拟器标题\n @2 x坐标 \n @3 y坐标
swipe(0,x,y,x1,y1) = 模拟滑动 \n @1 参数为模拟器序号或模拟器标题\n @2 起始x坐标 \n @3 起始y坐标\n @4 结束x坐标 \n @5 结束y坐标
keyboard(0,3) = 模拟按键 \n @1 参数为模拟器序号或模拟器标题\n @2 键盘码 \n http://blog.youkuaiyun.com/huiguixian/article/details/8550170 按键码查询
reboot(0,"App包名") = 重启模拟器并启动指定App \n @1 参数为模拟器序号或模拟器标题\n @2 App包名 不填写则不运行程序
locate(0,lng , lat) = 模拟位置 \n @1 参数为模拟器序号或模拟器标题\n @2 lng\n @3 lat
shake(0) = 摇一摇 \n @1 参数为模拟器序号或模拟器标题
input(0,"aardio") = 输入文字 \n @1 参数为模拟器序号或模拟器标题 \n @2 要输入的文字
installapp(0,"文件路径") = 安装App到模拟器 \n @1 参数为模拟器序号或模拟器标题 \n @2 文件全路径
uninstallapp(0,"App包名") = 卸载模拟器App \n @1 参数为模拟器序号或模拟器标题 \n @2 App包名
appisfront(0,"App包名") = 判断App是否前台 \n @1 参数为模拟器序号或模拟器标题 \n @2 App包名
downcpu(0,50) = 降低模拟器cup占用 \n @1 参数为模拟器序号或模拟器标题 \n @2 0-100
adb(0,"shell pm list packages") = 执行ADB命令 \n @1 参数为模拟器序号或模拟器标题 \n @2 ADB命令 如“shell pm list packages”
end intellisense**/