在S60v和v5上探测正在运行的widget和关闭widget

来源:互联网 发布:主题投资知乎 编辑:程序博客网 时间:2024/06/14 06:06

(这个方法在v3上也测试过了。)

 

首先需要去Symbian.org下载开源的Symbian3

 

至少要下到binaries_epoc.zip,binaries_winscw.zip,binaries_armv5.zip,src_oss_app.zip

 

解压缩,得到epoc32目录

 

复制epoc32/include/platform到v5模拟器里的epoc32/include/platform里

 

复制epoc32/release/armv5/lib/widget* 到模拟器的 epoc32/release/armv5/lib

同样要复制wincw里的widget库到模拟器

 

在src_oss_app.zip里找源文件

tsfswidgetlist.h

tsfswidgetlist.cpp

 

得到CTsFsWidgetList

 

这个类可以得到当前的widget运行列表

先通过CTsFsWidgetList::InitializeWidgetListL()刷新列表。

再通过CTsFsWidgetList::RunningWidgets()访问列表

 

--------------------------------------------------------------------------------------------------------------------

 

关闭widget

 

 

关闭widget的方法比较诡异。

在程序列表里看不到widget的名称,只能看到WidgetUI的程序。

每个widget都有一个widgetUI作为容器。

要关闭widget,必须向widgetUI发送消息。

 

首先通过CApaWindowGroupName获得一个WidgetUI的window group id。

根据前面的widgetlist我们知道那些widget在运行,并能得到uid。

 

假设关闭UID

 

 

 

 

这样就关闭了

原创粉丝点击