189 8069 5689

android按键精灵。C++编写。-创新互联

可以记录屏幕键盘等传感器对系统的输入。android按键精灵。C++编
写。

上一篇文章做的那个稍微有点复杂了,还需要把板子的输出拿回电脑处理再倒回去。这个就简单多了用法如下

建网站原本是网站策划师、网络程序员、网页设计师等,应用各种网络程序开发技术和网页设计技术配合操作的协同工作。创新互联专业提供成都网站设计、做网站、成都外贸网站建设公司,网页设计,网站制作(企业站、响应式网站建设、电商门户网站)等服务,从网站深度策划、搜索引擎友好度优化到用户体验的提升,我们力求做到极致!

usage:
event record /path/file1
event replay /path/file1

给我女友写的程序直接搬过来了,所以注释有些冗余。

"stdafx.h"

#include 
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
struct input_event {
    timeval time;
    __u16 type;
    __u16 code;
    __s32 value;
};
struct myinputevent:public input_event
//继承了16字节的数据结构,添加了一个deviceID{
int deviceID;

};

main.cpp

#include "stdafx.h"void record(char* filename);
void replay(char* filename);
int main(int argc, char *argv[])
{
if(argc!=3 || (strcmp(argv[1],"record") & strcmp(argv[1],"replay")))
    {
        std::cout<<

  "usage:"<

replay.cpp

#include "stdafx.h"//#define DEBUGint timedif(timeval& a,timeval& b)
//这是个计算时间差的函数,对于一个timeval的数据结构,前面4字节秒,后面4字节微秒
//这个函数接受两个这样的结构,返回一个微秒单位的时间差{
return (b.tv_sec-a.tv_sec)*1000000+(b.tv_usec-a.tv_usec);
}


void replay(char* filename)
{

int fi = open(filename,O_RDONLY);
if(fi==-1)
    {
        std::cout<

record.cpp

#include "stdafx.h"#define DEBUG
inlinebool eventcmp(const myinputevent& a,const myinputevent& b)
//这个比较函数为了之后排序用,因为两个自定义的数据结构,你用标准排序函数,排序肯定不知道你这俩结构应该怎么比大小
//定义了我的数据结构之间如果做小于比较时,时间小就算小。
//这样就可以采用标准排序函数对事件进行排序了。{
if(a.time.tv_secb.time.tv_sec)
return 0;
if(a.time.tv_usec AllRecordedEvent;
//这里有个数组,用来添加所有录制到的eventchar fn[200];
void afterstop(int x)
//按下ctrl+c和回车之后,录制停止,做数据整理和保存工作
//主要是按时间顺序对事件排序,然后保存{
#ifdef DEBUG
    std::cout<<"Recorded events:"<code;
                    my.type=p->type;
                    my.value=p->value;
                    my.time=p->time;
                    my.deviceID=i;
                    AllRecordedEvent.push_back(my);
//这里可能难理解,buffer里存储了大量16字节的event,所以让指针p是数据结构指针,然后16字节16字节的挪动
//我有一个自己的数据结构叫myinputevent,比这个16字节来说,尾部添加了一个4字节的int,存储设备的event号
//你可以在stdafx.h中看到这些数据结构
//把那16字节的原封不动的放到我的数据结构中,再把我自己的设备号赋值,就完成了这一个事件的录制。
//然后就存储到AllRecordedEvent里面去。                }
            }
        }
    }

}

标题名称:android按键精灵。C++编写。-创新互联
分享链接:http://jkwzsj.com/article/iiipo.html