您的位置:首页 > 运维架构 > Shell

修改explorer.exe去掉桌面/任务栏/支持MFC/支持自定义启动

2010-11-17 22:13 176 查看
来源: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以备不时之需
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  任务 null shell wince mfc c