WINCE启动界面完全定制

 

一、             EBOOT启动界面LOGO

a)         可供备选方案有1. 将图像数据写入NANDFLASH固定位置,优点是图像数据大,不会占用EBOOT大小;2. 直接将图像数据写成头文件,包含到工程中编译,优点是方式容易理解,但按目前的EBOOT大小,能放入320*240的二值图,也就是320*240/8=960Byte。最后选择第二种方案

b)         生成一幅LOGO位图,采用PYTHON的图像库将图像变为二值图,再将二值图转为头文件。

c)         更改%PLATFORM%/SRC/boot/display下的bsp_logo.c文件,在其中加入新的显示LOGO函数,写法可以参考原ShowLogo函数,但注意的是g_dwLogoPosXg_dwLogoPosYg_dwLogoWidthg_dwLogoHeight必须保持为00640480,不可以更改为新的LOGO位置。在%PLATFORM%/SRC/INC/bsp_logo.h中添加新的函数声明。

d)         更改%PLATFORM%/SRC/boot/eboot下的nandsdmemory下的cfg.c文件中的BLShowLogo函数,将原调用ShowLogo函数改为调用新显示LOGO的函数。

二、             修改启动后的背景界面

替换%PLATFORM%/FILES/omaphand.jpg为自己想要的背景图片,以便在后台长驻的辅助程序在进行与主软件相互切换时不露出破绽。

三、             关闭任务栏

备选方案有:1. 修改taskbar.cppexplorer.cpp,以从根本上去掉taskbar,但在实践中发现后台辅助程序会死,而且桌面无法响应鼠标消息。2. 在启动程序时不断查找名为“HHTaskBar”的窗口,然后调用ShowWindow函数将其隐藏,HWND hWnd = ::FindWindow(_T("HHTaskBar"), NULL); ::ShowWindow(hWnd, SW_HIDE);缺点是任务栏会在用户面前一闪而过,存在一定瑕疵,但尚可接受,也不会引起任何依赖任务栏的功能无法使用。

四、             去除桌面“我的电脑”“回收站”的图标

代码%_winceroot%/public/shell/oak/files

shell.reg文件中找到这两个键值,它们对应着桌面上的我的电脑和回收站,删除这两个键值:

[HKEY_LOCAL_MACHINE/Explorer/Desktop]

"{000214A0-0000-0000-C000-000000000046}"="My Computer"

"{000214A1-0000-0000-C000-000000000046}"="Recycle Bin"

五、             设置桌面背景色

在背景图片不够大或者无法确定分辨率的时候,为了背景能与桌面壁纸图片融合,可以使用SetSysColors函数将桌面背景(索引为COLOR_BACKGROUND)改为需要的纯色,此函数可在explorer并未完全加载时调用(修改注册表中的”Launch80”值设置启动程序即可),用户不会看到你调用SetSysColors之前的颜色,但是此方法弊端在于,用户如果更改了主题,颜色就回去了,桌面上的壁纸破绽就被看见了。

六、             设置启动程序

开机自启动有三种方案:1.  将应用程序和应用程序快捷方式添加到映像里,再将快捷方式添加到StartUp目录下,这样当系统运行后应用程序就能自动运行;2 直接替换WinceSHELL,即修改注册表:

 

[HKEY_LOCAL_MACHINE/init]

"Launch50"="explorer.exe"

"Depend50"=hex:14,00, 1e,00

把这个explorer.exe改成你的应用程序(比如:MyApp.exe);

 

3 把应用程序加入到映像,修改注册表:

[HKEY_LOCAL_MACHINE/init]

"Launch80"="MyApp.exe"

"Depend80"=hex:1E,00

可以设置启动顺序和依赖程序;

我们最后采用的方案为第三种。但由于这个程序必须直接存储在NK.bin中,所以如果需要升级此文件就必须重新烧制NK,因此我们并不直接设置为主程序,而专门写了一个启动加载程序,用来间接加载不在NK中的主程序,同时以便系统升级。

七、             主软件加载程序

B超软件加载程序的流程为:

 

本文参考了多处网络文章,其中一处为http://blog.csdn.net/91program/archive/2008/05/08/2415352.aspx

 

你可能感兴趣的:(嵌入式开发)