读书人

iPhone怎么模拟触屏输入等事件

发布时间: 2012-09-27 11:11:17 作者: rapoo

iPhone如何模拟触屏,输入等事件
目前又有了一个想在iPhone上做协助调试的设想,当然控制权什么的是别说了,就是做一些协助方在自己屏幕上点点划划,被协助方也要有同样的操作,因为被调试程序的不确定性,那只能做成发送各种针对屏幕的模拟事件了。

因为apple没有放出直接发送触屏事件等的API,所以用的都是越狱的iPhone加上PrivateFramework,根本没指望上市,反正就是为了内部调试。

首先在kennytm的网站拔下私有framework的头文件,就本应用而言,只需要GrapicsServices文件夹以及Availability2.h即可。然后导入Xcode目录下Platforms下对应的GraphicsService.framework,准备工作就OK了。

发送事件消息,主要是构造GSEventRecord,简单的事件可能只需要填充GSEventRecord里面的type类型参数,再复杂一些的就需要在结构的后面继续填充,填充大小必须在infoSize参数里指定

    GSEventRecord header;    GSHardwareKeyInfo key = {0,0,0,0,1,{'a'},1,{'a'},0,0,0,0};    memset(&header, 0, sizeof(header));        header.type = kGSEventKeyDown;    header.infoSize = sizeof(GSHardwareKeyInfo);    header.timestamp = mach_absolute_time();        struct    {        GSEventRecord header1;        GSHardwareKeyInfo key1;    }fuck = {header, key};    GSSendEvent(&fuck, GSGetPurpleApplicationPort());

这样就可以输入一个a了,前提是光标必须在输入框内。

当然后续问题还有很多,这实际上不过是自己的程序向自己的发送事件而已,后面需要做的是程序运行到后台时向前台程序甚至是主界面发事件,能否做到,我也不敢肯定。

文章主要参考这里 1 楼 qiangzi611 2012-03-31 你好,能请教你几个关于 iphone 手机触屏的问题么 非常着急~~~ 谢谢
我已经能够实现 软件盘输入,可是无法再屏幕上点击坐标 请指教...815608542@qq.com
非常感谢

读书人网 >Iphone

热点推荐