WinCE控制面板添加应用程序+WinCE开始菜单中添加应用程序+WinCE桌面墙纸及图标更换+WinCE文件目录定制及内存调整
2010-10-12 18:33
459 查看
1.WinCE控制面板添加应用程序
WinCE
系统中的控制面板和
Windows
系统中的控制面板原理是一样的,里面就是包含了一些应用程序。
WinCE
系统的控制面板由
Ctlpnl.exe
,
Control.exe
和一些
.cpl
文件组成
,其中
Ctlpnl.exe
和
Control.exe
用于控制控制面板的文件夹显示和架构,而
.cpl
文件和控制面板中的实际应用程序相对应。
WinCE
的控制面板中的每个应用程序都由两部分组成:应用程序本身和所对应的
.cpl
文件。实际上
.cpl
文件就是一个
dll
,在该
dll
中会导出
CPLApplet
函数,该函数会处理来自控制面板的消息
(CPL_INIT, CPL_DBCLK, CPL_STOP
等
)
,然后根据相应的消息来调用应用程序。
先来看一下
CPlApplet
函数,如下:
LONG CPlApplet(HWND hwndCPl, UINT msg, LPARAM lParam1, LPARAM lParam2)
hwndCPl
:控制面板窗口的句柄
msg
:发给控制面应用程序的消息
lParam1
:消息参数
1
lParam2
:消息参数
2
http://blog.csdn.net/nanjianhui/archive/2009/07/10/4336897.aspx
2.WinCE开始菜单中添加应用程序
添加应用程序到
WinCE
的开始菜单中应该是一个比较常用的功能,在产品定制的时候,添加本产品的应用到
StartMenu
中,让用户可以方便启动程序,下面就来介绍一下:
先说一下原理,其实在
WinCE
启动以后,点击
Start
,然后点击
Programs
,里面所能看到的应用其实也都是以文件的形式存放的,它们存放在
/Windows/Programs
目录下面,都是一些快捷方式文件,这些快捷方式文件连接了真正的应用程序
,就这么简单。
http://blog.csdn.net/nanjianhui/archive/2009/07/01/4313044.aspx
3.WinCE桌面墙纸及图标更换
关于
WinCE
的墙纸,是在注册表中设置的,编译完
WinCE
工程以后,所有的
reg
文件中的内容都会被合并为
reginit.ini
文件
。打开这个文件,可以找到如下内容:
[HKEY_CURRENT_USER/ControlPanel/Desktop]
"wallpaper"=//Windows//WindowsCE.bmp
默认情况下,显示的是
WindowsCE.bmp
文件,但是被编译工程的
release
目录下并没有
WindowsCE.bmp
文件,倒是可以看到
windowsce_qvgap.bmp
和
windowsce_vgal.bmp
两个文件。这里需要看一下
/WINCE600/public/shell/files/shell.bib
文件中的定义就明白了。
说白了,更换墙纸就是改注册表设置。最简单的方法就是修改
project.bib
和
project.reg
文件
。首先在
project.bib
文件中添加如下内容:
kungfuPanda.bmp
d:/WINCE600/OSDesigns/Emulator/Emulator/RelDir/DeviceEmulator_ARMV4I_Release/wall.bmp NK S
然后在
project.reg
文件添加如下内容:
[HKEY_CURRENT_USER/ControlPanel/Desktop]
"wallpaper"="//Windows//kungfuPanda.bmp"
最后将这两个文件拷贝到工程编译的
release
目录下面,重新
Makeimg
就可以了。在
WinCE
启动以后,我们会看到墙纸已经被更换,同样还能看到桌面上的
”My Device”
和
”Recycle Bin”
,现在我想把他们的图标和名字也更换了,当然还要从注册表入手..................
4.
WinCE文件目录定制及内存调整
这个说起来比较简单,
WinCE
的文件目录结构以及文件的位置都是在
DAT
文件中定义的。所有的
dat
文件会在
WinCE
编译时合并成
initobj.dat
文件,
WinCE
会根据
DAT
中的描述生成相应目录。
关于
DAT
的格式,可以参考我以前的一片文章:
”WinCE BSP
的
DAT
文件介绍
”
,看了就明白了。
我一般在
project.dat
中定制自己想要的目录结构,举个例子如下:
root:-Directory("Sounds")
root:-Directory("Movies")
Directory("/Movies"):-Directory("Chinese")
Directory("/Movies"):-Directory("English")
Directory("/Sounds"):-File("hello.wav", "/Windows/hello.wav")
应该比较好理解,创建两个根文件夹
Sounds
和
Movies
,在
Movies
中创建两个子文件夹
Chinese
和
English
,将
hello.wav
拷贝到
Sounds
目录下。
编辑完
project.dat
以后,重新
Makeimg
就可以了。启动
WinCE
就可以看到所创建的文件夹了。
接下来说一下
WinCE
内存的定制。
WinCE
系统可使用的内存被分为
Storage Memory
和
Program Memory
两部分。
Storage Memory
用于
Object Store
,而
Program Memory
用于程序内存。
关于
Object Store
,在
WinCE
中是指一个可以永久保存数据的存储空间
,即使在掉电的情况下,数据可以在备份电源的支持下不丢失,达到永久保存的效果。其实就是一块内存,一般包括文件系统,数据库和系统注册表
。
Object Store
的最大空间不能超过
256MB
,其中所能包含的最大文件是
32MB
。
Object Store
中是由很多
Object
组成,这些
Object
可能是一个文件,一个数据库,一条数据库记录,一个注册表键,一个键值等。
在
Object Store
中,
WinCE
系统会分配给每一个
Object
一个
ID
,被称为
CEOID
。每个
Object
的
CEOID
在
Volume
中都是唯一的。同样,在
Object Store
中的每一个
Volume
也有一个
ID
,被称为
CEGUID
,这样使用
CEGUID
和
CEOID
就可以在
Object Store
中找到相应的
Object
了。
顺便介绍个函数:
BOOL CeOidGetInfoEx( PCEGUID pceguid, CEOID oid, CEOIDINFO* poidInfo)
调用该函数可以获得
Object Store
中某个
Object
的信息,
pceguid
和
oid
是要查找对象的
CEGUID
和
CEOID
,
poidInfo
为
Object
的信息。
那么如何获得
CEGUID
和
CEOID
呢?对于不同的
Object
类型,有不同的函数,如下:
Directory or File
:
FindFirstFile(..) / FindNextFile(..) / GetFileInformationByHandler(..)
Database
:
CeCreateDatabaseEx2(..) / CeFindNextDatabaseEx(..)
Database record
:
CeSeekDatabaseEx(..) / CeReadRecordPropsEx(..) / CeWriteRecordPropsEx(..)
Mounted Database volume
:
CeMountDBVol(..) / CeEnumDBVolumes(..)
所以,在
WinCE
系统中,对内存的调节就是在调整
Object Store
和程序内存的大小。默认情况下是
Storage Memory/Program Memory
各占一半。有三种方法可以实现对内存的调整:
1.
在
config.bib
文件中调整
FSRAMPERCENT
,具体如何设置在
BIB
文件的介绍中解释过,这里不多说了。
2.
在
OAL
中调用
pOEMCalcFSPages
函数为
Object Store
分配内存。
3.
在
WinCE
启动以后,进入系统的
control panel
,然后打开
System
,选择
Memory
在界面中进行调整。
4.
通过函数
SetSystemMemoryDivision(..)
来调整。多说一句,可以通过调用
GetSystemMemoryDivision(..)
来获得当前
Object Store
的内存使用情况。
关于
Storage Memory
和
Program Memory
的调整,主要还是看系统的需求,一般情况下
Storage Memory
不需要太大,可以根据自己的需要适当的调整。但是要注意,两部分内存都不能调整的太小,调整的太小会导致数据丢失,甚至是死机,到时候只能重起系统了。
WinCE
系统中的控制面板和
Windows
系统中的控制面板原理是一样的,里面就是包含了一些应用程序。
WinCE
系统的控制面板由
Ctlpnl.exe
,
Control.exe
和一些
.cpl
文件组成
,其中
Ctlpnl.exe
和
Control.exe
用于控制控制面板的文件夹显示和架构,而
.cpl
文件和控制面板中的实际应用程序相对应。
WinCE
的控制面板中的每个应用程序都由两部分组成:应用程序本身和所对应的
.cpl
文件。实际上
.cpl
文件就是一个
dll
,在该
dll
中会导出
CPLApplet
函数,该函数会处理来自控制面板的消息
(CPL_INIT, CPL_DBCLK, CPL_STOP
等
)
,然后根据相应的消息来调用应用程序。
先来看一下
CPlApplet
函数,如下:
LONG CPlApplet(HWND hwndCPl, UINT msg, LPARAM lParam1, LPARAM lParam2)
hwndCPl
:控制面板窗口的句柄
msg
:发给控制面应用程序的消息
lParam1
:消息参数
1
lParam2
:消息参数
2
http://blog.csdn.net/nanjianhui/archive/2009/07/10/4336897.aspx
2.WinCE开始菜单中添加应用程序
添加应用程序到
WinCE
的开始菜单中应该是一个比较常用的功能,在产品定制的时候,添加本产品的应用到
StartMenu
中,让用户可以方便启动程序,下面就来介绍一下:
先说一下原理,其实在
WinCE
启动以后,点击
Start
,然后点击
Programs
,里面所能看到的应用其实也都是以文件的形式存放的,它们存放在
/Windows/Programs
目录下面,都是一些快捷方式文件,这些快捷方式文件连接了真正的应用程序
,就这么简单。
http://blog.csdn.net/nanjianhui/archive/2009/07/01/4313044.aspx
3.WinCE桌面墙纸及图标更换
关于
WinCE
的墙纸,是在注册表中设置的,编译完
WinCE
工程以后,所有的
reg
文件中的内容都会被合并为
reginit.ini
文件
。打开这个文件,可以找到如下内容:
[HKEY_CURRENT_USER/ControlPanel/Desktop]
"wallpaper"=//Windows//WindowsCE.bmp
默认情况下,显示的是
WindowsCE.bmp
文件,但是被编译工程的
release
目录下并没有
WindowsCE.bmp
文件,倒是可以看到
windowsce_qvgap.bmp
和
windowsce_vgal.bmp
两个文件。这里需要看一下
/WINCE600/public/shell/files/shell.bib
文件中的定义就明白了。
说白了,更换墙纸就是改注册表设置。最简单的方法就是修改
project.bib
和
project.reg
文件
。首先在
project.bib
文件中添加如下内容:
kungfuPanda.bmp
d:/WINCE600/OSDesigns/Emulator/Emulator/RelDir/DeviceEmulator_ARMV4I_Release/wall.bmp NK S
然后在
project.reg
文件添加如下内容:
[HKEY_CURRENT_USER/ControlPanel/Desktop]
"wallpaper"="//Windows//kungfuPanda.bmp"
最后将这两个文件拷贝到工程编译的
release
目录下面,重新
Makeimg
就可以了。在
WinCE
启动以后,我们会看到墙纸已经被更换,同样还能看到桌面上的
”My Device”
和
”Recycle Bin”
,现在我想把他们的图标和名字也更换了,当然还要从注册表入手..................
4.
WinCE文件目录定制及内存调整
这个说起来比较简单,
WinCE
的文件目录结构以及文件的位置都是在
DAT
文件中定义的。所有的
dat
文件会在
WinCE
编译时合并成
initobj.dat
文件,
WinCE
会根据
DAT
中的描述生成相应目录。
关于
DAT
的格式,可以参考我以前的一片文章:
”WinCE BSP
的
DAT
文件介绍
”
,看了就明白了。
我一般在
project.dat
中定制自己想要的目录结构,举个例子如下:
root:-Directory("Sounds")
root:-Directory("Movies")
Directory("/Movies"):-Directory("Chinese")
Directory("/Movies"):-Directory("English")
Directory("/Sounds"):-File("hello.wav", "/Windows/hello.wav")
应该比较好理解,创建两个根文件夹
Sounds
和
Movies
,在
Movies
中创建两个子文件夹
Chinese
和
English
,将
hello.wav
拷贝到
Sounds
目录下。
编辑完
project.dat
以后,重新
Makeimg
就可以了。启动
WinCE
就可以看到所创建的文件夹了。
接下来说一下
WinCE
内存的定制。
WinCE
系统可使用的内存被分为
Storage Memory
和
Program Memory
两部分。
Storage Memory
用于
Object Store
,而
Program Memory
用于程序内存。
关于
Object Store
,在
WinCE
中是指一个可以永久保存数据的存储空间
,即使在掉电的情况下,数据可以在备份电源的支持下不丢失,达到永久保存的效果。其实就是一块内存,一般包括文件系统,数据库和系统注册表
。
Object Store
的最大空间不能超过
256MB
,其中所能包含的最大文件是
32MB
。
Object Store
中是由很多
Object
组成,这些
Object
可能是一个文件,一个数据库,一条数据库记录,一个注册表键,一个键值等。
在
Object Store
中,
WinCE
系统会分配给每一个
Object
一个
ID
,被称为
CEOID
。每个
Object
的
CEOID
在
Volume
中都是唯一的。同样,在
Object Store
中的每一个
Volume
也有一个
ID
,被称为
CEGUID
,这样使用
CEGUID
和
CEOID
就可以在
Object Store
中找到相应的
Object
了。
顺便介绍个函数:
BOOL CeOidGetInfoEx( PCEGUID pceguid, CEOID oid, CEOIDINFO* poidInfo)
调用该函数可以获得
Object Store
中某个
Object
的信息,
pceguid
和
oid
是要查找对象的
CEGUID
和
CEOID
,
poidInfo
为
Object
的信息。
那么如何获得
CEGUID
和
CEOID
呢?对于不同的
Object
类型,有不同的函数,如下:
Directory or File
:
FindFirstFile(..) / FindNextFile(..) / GetFileInformationByHandler(..)
Database
:
CeCreateDatabaseEx2(..) / CeFindNextDatabaseEx(..)
Database record
:
CeSeekDatabaseEx(..) / CeReadRecordPropsEx(..) / CeWriteRecordPropsEx(..)
Mounted Database volume
:
CeMountDBVol(..) / CeEnumDBVolumes(..)
所以,在
WinCE
系统中,对内存的调节就是在调整
Object Store
和程序内存的大小。默认情况下是
Storage Memory/Program Memory
各占一半。有三种方法可以实现对内存的调整:
1.
在
config.bib
文件中调整
FSRAMPERCENT
,具体如何设置在
BIB
文件的介绍中解释过,这里不多说了。
2.
在
OAL
中调用
pOEMCalcFSPages
函数为
Object Store
分配内存。
3.
在
WinCE
启动以后,进入系统的
control panel
,然后打开
System
,选择
Memory
在界面中进行调整。
4.
通过函数
SetSystemMemoryDivision(..)
来调整。多说一句,可以通过调用
GetSystemMemoryDivision(..)
来获得当前
Object Store
的内存使用情况。
关于
Storage Memory
和
Program Memory
的调整,主要还是看系统的需求,一般情况下
Storage Memory
不需要太大,可以根据自己的需要适当的调整。但是要注意,两部分内存都不能调整的太小,调整的太小会导致数据丢失,甚至是死机,到时候只能重起系统了。
相关文章推荐
- WinCE桌面墙纸及图标更换
- WinCE实现更换桌面墙纸和图标的代码
- WinCE桌面墙纸及图标更换
- WinCE桌面墙纸及图标更换
- WinCE桌面墙纸及图标更换
- WinCE实现更换桌面墙纸和图标的代码
- WinCE桌面墙纸及图标更换
- WinCE实现更换桌面墙纸和图标的代码
- WinCE桌面墙纸及图标更换
- WinCE桌面墙纸及图标更换
- WinCE桌面墙纸及图标更换
- WinCE桌面添加应用程序的快捷方式
- WinCE开始菜单中添加应用程序
- WinCE文件目录定制及内存调整
- Linux如何把应用程序图标添加到桌面上
- ubuntu-添加桌面应用程序图标
- WinCE文件目录定制及内存调整
- WinCE控制面板添加应用程序----CPL文件格式
- WinCE文件目录定制及内存调整
- WinCE开始菜单中添加应用程序