来源:http://www.armce.com/bbs/redirect.php?tid=2082&goto=lastpost
根据原始WinCE自定义shell,大家遇到最多的问题就是如何不显示原始桌面,启动自己的程序取代
但是如果拿掉explorer.exe大家会发现自己的MFC程序运行不起来了
这里提供简单的方法修改explorer的源码,来实现去掉桌面/任务栏/支持MFC/支持自定义启动
Explorer的源码在X:/WINCE500/PUBLIC/SHELL/OAK/HPC/EXPLORER
1 修改X:/WINCE500/PUBLIC/SHELL/OAK/HPC/EXPLORER/INC/taskbar.hxx
- #define TASKBAR_HEIGHT 26
- 改为
- #define TASKBAR_HEIGHT 0
这个改动大家一看也就明白,把taskbar高度置为0,即不显示了,这样任务栏就解决了
2 修改X:/WINCE500/PUBLIC/SHELL/OAK/HPC/EXPLORER/MAIN/desktop.cpp
- SetRect(&rc, 0, 0, GetSystemMetrics(SM_CXVIRTUALSCREEN), GetSystemMetrics(SM_CYVIRTUALSCREEN));
- 改为
- SetRect(&rc, 0, 0, 0, 0);
干掉了桌面
3 修改X:/WINCE500/PUBLIC/SHELL/OAK/HPC/EXPLORER/MAIN/explorer.cpp
- sndPlaySound(c_szSystemStart, SND_ALIAS|SND_ASYNC|SND_NODEFAULT);
- bInitialized = TRUE;
- 下面加入
- PROCESS_INFORMATION pi;
- BOOL ret = CreateProcess(_T("你的程序的路径,如//windows//abc.exe"), NULL, NULL, NULL, FALSE,
- 0, NULL, NULL, NULL, &pi);
这样就可以开机启动你的程序abc.exe,这个程序建议做成一个loader程序,你以后想开机做任何事情就直接修改这个程序(比如开机校准屏幕),这个程序再来引导你的主shell程序
如果直接写成启动你的主shell程序,以后加功能就要改你的成品shell了
大家也看到了,explorer的源码在public下,所以尽量少修改,所以定义一个loader程序可以减少频繁修改explorer的机会
最后大家编译,然后sysgen系统,生成新的explorer.exe
建议先备份原始explorer.exe以备不时之需