很多时候都看到网友想实现这个功能,我在做热键的时候忽然想到的一个解决方法
RWsSession iWsSession;
User::LeaveIfError(iWsSession.Connect());
TInt wgId = iWsSession.GetFocusWindowGroup(); //获取当前界面ID
CApaWindowGroupName* gn = CApaWindowGroupName::NewLC(iWsSession, wgId);
TUid uid = gn->AppUid();
if(uid.iUid == 268458163)
{}
else
{}
这里的268458163究竟是怎么得到的呢?
我在自己的程序中捕捉向左键,然后在捕捉后将该按键事件"还原"发送给当前的界面,这里只要我在隐藏自己的程序后转到桌面,在桌面按几次向左键,记录下此时的uid.iUid ,就得到了桌面的UID,不过此UID不是16进制的,而是和SDK Help中所说的一样:32-bit integer UID
这个是在6680上得到的值,其他型号不清楚