c语言自动安装软件,(c语言)电脑控制手机,手机端不需要安装软件

编译环境

devc++(需要下载)

ege图形库(需要自己配置到devc++)

adb指令(已提供在tool文件夹下)

手机端要打开手机调试

主要原理

利用adb的input指令,使用c语言

演示图

802a3ee26dd2

演示.gif

基本功能

已实现功能:

– 1.鼠标左击为触点事件,

支持长按 ,支持滑动,

但是未实现拖拽

– 2.鼠标右点击为返回,

长按唤醒和睡眠,

– 3.滚轮up向上滑动,

滚轮down向下滑动

– 4.滚轮单点为home,

可长按home

– 5.可实时更新屏幕

– 6.可自动获取屏幕参数构建

对应比例屏幕

存在缺点:

– 1.延时长

操作提示

1.鼠标左击为触点事件

2.支持长按,滑动

3.但是未实现拖拽

4.鼠标右点击为返回,

5.右键长按为唤醒和睡眠,

6.滚轮up向上滑动,

7.滚轮down向下滑动

8.滚轮单点为home,

9.可长按home

任意键继续…

部分核心源码解析

1.适配屏幕大小,先获取手机屏幕信息,然后和电脑的高度进行对比,决定缩放倍数(默认是2倍)

//获取电脑高度,一般电脑的高度是比较小(短板效应),所以这里考虑高

int win_height=GetSystemMetrics(SM_CYFULLSCREEN);

bool repareDeviceWidthAndHeight(int &width,int &height)

{

//用于获取手机屏幕尺寸,一般为高通机型

if(system(“.\tool\adb shell wm size >.\res\phone.info”)!=0)

return false;

FILE *f=fopen(“.\res\phone.info”,”r”);

if(f==NULL) {

return false;

}

fseek(f,0L,SEEK_SET);

char c,w[5],h[5];

bool flags=false;

int index=0;//寻址索引

while((c=fgetc(f))!=EOF) {

if(c>=’0’&&c<=’9′) {

if(!flags) {

w[index++]=c;

} else {

h[index++]=c;

}

}

if(c==’x’) {

flags=true;

index=0;

}

}

width=atoi(w);

height=atoi(h);

fclose(f);

if(width==0||height==0) {

//第一次无法获取屏幕参数的情况下的方式

if(system(“.\tool\adb shell “dumpsys window | grep mUnrestrictedScreen”” >.\res\phone.info””)==0) {

f=fopen(“”.\res\phone.info””

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年4月15日
下一篇 2021年4月15日

相关推荐