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

来源: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

  1. #define TASKBAR_HEIGHT        26
  2. 改为
  3. #define TASKBAR_HEIGHT        0
复制代码

这个改动大家一看也就明白,把taskbar高度置为0,即不显示了,这样任务栏就解决

2 修改X:/WINCE500/PUBLIC/SHELL/OAK/HPC/EXPLORER/MAIN/desktop.cpp

  1. SetRect(&rc, 0, 0, GetSystemMetrics(SM_CXVIRTUALSCREEN), GetSystemMetrics(SM_CYVIRTUALSCREEN));
  2. 改为
  3. SetRect(&rc, 0, 0, 0, 0);
复制代码

干掉了桌面

3 修改X:/WINCE500/PUBLIC/SHELL/OAK/HPC/EXPLORER/MAIN/explorer.cpp

  1. sndPlaySound(c_szSystemStart, SND_ALIAS|SND_ASYNC|SND_NODEFAULT);
  2.     bInitialized = TRUE;
  3. 下面加入
  4.     PROCESS_INFORMATION pi;
  5.     BOOL ret = CreateProcess(_T("你的程序的路径,如//windows//abc.exe"), NULL, NULL, NULL, FALSE,
  6.                 0, NULL, NULL, NULL, &pi);
复制代码

这样就可以开机启动你的程序abc.exe,这个程序建议做成一个loader程序,你以后想开机做任何事情就直接修改这个程序(比如开机校准屏幕),这个程序再来引导你的主shell程序
如果直接写成启动你的主shell程序,以后加功能就要改你的成品shell了


大家也看到了,explorer的源码在public下,所以尽量少修改,所以定义一个loader程序可以减少频繁修改explorer的机会

最后大家编译,然后sysgen系统,生成新的explorer.exe
建议先备份原始explorer.exe以备不时之需

你可能感兴趣的:(c,shell,null,mfc,任务,WinCE)