Chinaunix首页 | 论坛 | 博客
  • 博客访问: 326279
  • 博文数量: 88
  • 博客积分: 2051
  • 博客等级: 大尉
  • 技术积分: 950
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-14 23:59
文章分类

全部博文(88)

文章存档

2012年(3)

2011年(2)

2010年(9)

2009年(14)

2008年(60)

我的朋友

分类: C/C++

2008-12-21 15:55:44

这两天开始设计到一些ui的东西!
天天动听那个在待机界面下的歌词显示很不错!
 
然后在网上看到http://discussion.forum.nokia.com/forum/showthread.php?t=98273 这里有个例子可以在其它屏幕上花图。当然也可以在待机界面上画图。
 
 这个给出了如何判断一个ui是否在最上层可以见。
 
常见系统程序的uid,

The UID for some processes (in 3rd Ed. phones).:

- Phone.exe : 0x100058B3
- Idle.exe : 0x101FD64C
- Menu.exe : 0x101F4CD2

从天天动听的程序行为,结合上面几个例子我也许能够这样实现,

1.在任意屏幕上叠加画出东西来

2.程序需要监视那些程序在最上层,我在试验的时候用了HandleViewDeactivation这个函数,但是这个函数只能监听本程序从激活到不激活时候的状态。不能监听本程序从不激活到激活的状态。  并且从天天动听可以看到,它在你激活屏幕待机界面后通常有1-2秒钟的延时才出现这个歌词显示界面,那么可以在后台用一个ao定时器,照着wiki的指示监视那个程序处于最上层,如果是idle process在最上层就画歌词出来。但是这样,还是有个问题,它在你启动别的程序时候,并没有延时,如果用ao肯定有延时;从window server可以获得信息的话就不用ao了!

3.查看了一下ui的function 发现有这样的函数,用这些函数可以获得window server的通知。这样就可以在进入和退出idle screen的时候做操作了

 

阅读(1838) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~