Symbian捕获全局按键的解决方案
2010-02-06 20:55:00 来源:WEB开发网整个工程是一个控制台程序。需要安装到手机上,然后使用ExeLauncher,或者System Explorer之类的第三方软件启动起来才能看到效果。
基本的效果是,捕获手机的"左方向键",连续捕获3次,第三次的时候捕获程序会退出。
这里还顺便展示了可以在切换窗口隐藏程序的小技巧,用心的朋友可以从中找到很多有用的东西。
使用的时候,可以分为以下几步来检验效果:
(1)编译源代码包,需要注意的是bld.inf中编译方式。
(2)修改.pkg文件,这个不用多说了,只是路径和平台版本号改一下,就可以通过蓝牙或者数据线拷贝到手机上安装了。
(3)通过ExeLauncher或者System Explorer之类的软件在手机上找到该软件,并启动它。
(4)可以开始测试了,需要先按一下手机的“菜单键”(也有人叫它“花”键)三秒钟,会看到一个当前运行的任务列表,其中一个叫做“Console”的运行程序,就是这个demo生成的输出窗口,此时窗口中应该显示出“Starting key capturing”的字样。
(5)再次按下“菜单键”三秒钟,选择电话模样的图标,它就是让手机切换到正常的电话模式,同时又保证了globalkeycapture这个exe仍然在后台运行着。
(6)现在按一下左方向键,然后按住“菜单键”三秒钟,然后选择“Console”切换回“Console”输出窗口,现在应该就可以看到如下的输出“Captured correct key press for the 1 time”
(7)重复(5)和(6)的操作,会发现“Captured correct key press for the 2 time”
(8)然后再次重复(5)和(6)的时候,会发现“Console”这个程序已经退出(这是正常的,在程序中只设置了截获3次而已)。
这里是global key capture的头文件,
#ifndef __GLOBALKEYCAPTURE_H__
#define __GLOBALKEYCAPTURE_H__
// Include Files
#include
#include
//symbian体系结构中,广泛地采用了C/S结构的模式,所有的客户端需要连接服务器的时候,都需要建立一个
//session,通过该session进行连接以及数据的收发。
//这里我们目的是连接全局的窗口服务器,所以必须借助于RWsSession来建立与窗口服务器的连接。
// Forward declarations
class RWindowGroup;
更多精彩
赞助商链接