编译环境
devc++(需要下载)
ege图形库(需要自己配置到devc++)
adb指令(已提供在tool文件夹下)
手机端要打开手机调试
主要原理
利用adb的input指令,使用c语言
演示图

演示.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进行处理,非常感谢!