真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

android按鍵精靈。C++編寫。-創(chuàng)新互聯(lián)

可以記錄屏幕鍵盤等傳感器對(duì)系統(tǒng)的輸入。android按鍵精靈。C++編
寫。

上一篇文章做的那個(gè)稍微有點(diǎn)復(fù)雜了,還需要把板子的輸出拿回電腦處理再倒回去。這個(gè)就簡(jiǎn)單多了用法如下

建網(wǎng)站原本是網(wǎng)站策劃師、網(wǎng)絡(luò)程序員、網(wǎng)頁(yè)設(shè)計(jì)師等,應(yīng)用各種網(wǎng)絡(luò)程序開發(fā)技術(shù)和網(wǎng)頁(yè)設(shè)計(jì)技術(shù)配合操作的協(xié)同工作。創(chuàng)新互聯(lián)專業(yè)提供成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、成都外貿(mào)網(wǎng)站建設(shè)公司,網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站制作(企業(yè)站、響應(yīng)式網(wǎng)站建設(shè)、電商門戶網(wǎng)站)等服務(wù),從網(wǎng)站深度策劃、搜索引擎友好度優(yōu)化到用戶體驗(yàn)的提升,我們力求做到極致!

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

給我女友寫的程序直接搬過來(lái)了,所以注釋有些冗余。

"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字節(jié)的數(shù)據(jù)結(jié)構(gòu),添加了一個(gè)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"http://#define DEBUGint timedif(timeval& a,timeval& b)
//這是個(gè)計(jì)算時(shí)間差的函數(shù),對(duì)于一個(gè)timeval的數(shù)據(jù)結(jié)構(gòu),前面4字節(jié)秒,后面4字節(jié)微秒
//這個(gè)函數(shù)接受兩個(gè)這樣的結(jié)構(gòu),返回一個(gè)微秒單位的時(shí)間差{
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)
//這個(gè)比較函數(shù)為了之后排序用,因?yàn)閮蓚€(gè)自定義的數(shù)據(jù)結(jié)構(gòu),你用標(biāo)準(zhǔn)排序函數(shù),排序肯定不知道你這倆結(jié)構(gòu)應(yīng)該怎么比大小
//定義了我的數(shù)據(jù)結(jié)構(gòu)之間如果做小于比較時(shí),時(shí)間小就算小。
//這樣就可以采用標(biāo)準(zhǔn)排序函數(shù)對(duì)事件進(jìn)行排序了。{
if(a.time.tv_secb.time.tv_sec)
return 0;
if(a.time.tv_usec AllRecordedEvent;
//這里有個(gè)數(shù)組,用來(lái)添加所有錄制到的eventchar fn[200];
void afterstop(int x)
//按下ctrl+c和回車之后,錄制停止,做數(shù)據(jù)整理和保存工作
//主要是按時(shí)間順序?qū)κ录判颍缓蟊4鎨
#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里存儲(chǔ)了大量16字節(jié)的event,所以讓指針p是數(shù)據(jù)結(jié)構(gòu)指針,然后16字節(jié)16字節(jié)的挪動(dòng)
//我有一個(gè)自己的數(shù)據(jù)結(jié)構(gòu)叫myinputevent,比這個(gè)16字節(jié)來(lái)說,尾部添加了一個(gè)4字節(jié)的int,存儲(chǔ)設(shè)備的event號(hào)
//你可以在stdafx.h中看到這些數(shù)據(jù)結(jié)構(gòu)
//把那16字節(jié)的原封不動(dòng)的放到我的數(shù)據(jù)結(jié)構(gòu)中,再把我自己的設(shè)備號(hào)賦值,就完成了這一個(gè)事件的錄制。
//然后就存儲(chǔ)到AllRecordedEvent里面去。                }
            }
        }
    }

}

分享文章:android按鍵精靈。C++編寫。-創(chuàng)新互聯(lián)
分享URL:http://weahome.cn/article/iiipo.html

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部