现在情况是这样的
我没有BSP,没有NK工程,想在现有的CE系统下自启动我的程序,我在注册表中添加了
[HKEY_LOCAL_MACHINE\init]
"Launch70"="\NandFlash\application\execstart.exe"
发现可以自启动,但是,系统先进入CE的界面,然后又才进入我的UI界面
我又把Launch提前到Launch50(Launch50原来是StartUp,即CE桌面程序)
[HKEY_LOCAL_MACHINE\init]
"Launch50"="\NandFlash\application\execstart.exe"
发现系统开机就直接进入到我的UI界面,但是操作我的UI程序,系统提示:“找不到系统什么外壳程序....”,然后就出现了一个非法操作提示
然后就死机了
后来我又在launch50中启动我的程序,在我的程序中启动startup.exe(原来在launch50处的CE桌面)。
发现这下开机可以马上启动我的UI,并且操作不会报错,但是!!!我的UI启动后,又跳出CE的桌面来
我又在我的程序中调用startup.exe之后马上隐藏桌面,发现TMD我的程序启动之后闪了一下CE的桌面,又进入我的UI界面
请问各位高手:怎么能让这个CE界面别出来吓唬人呢???
在Platform.reg加上:
[HKEY_LOCAL_MACHINE\Software\Microsoft\Shell\SlideTaskBar]
"Default"="0"
[HKEY_LOCAL_MACHINE\Software\Microsoft\Shell\AutoHide]
"Default"=dword:1
[HKEY_LOCAL_MACHINE\Software\Microsoft\Shell\OnTop]
"Default"="0"
这样启动explorer之后会在程序的下端多出来一小条灰色,再点击一下应用程序界面才能去掉,其实和任务栏效果一样,只是看不到那么大的条了
建议用WIN32或ATL.
看看这里吧,应该对你有点帮助。
http://www.cnblogs.com/we-hjb/archive/2008/12/28/1364070.html
想法是,依然启动explorer.exe,只不过是自己编译的explorer.exe,没有界面显示,
这样既不影响你程序的运行,也不会有界面的闪烁。
我觉得应该可以修改定制的SHEEL,但是楼主没有BSP那就没办法了
只能按上面说的设置TOPMOST了,不过这样的程序容易出BUG的,特别是还有子窗口跑出来的程序。
先把你的程序加载到CE内核中,在project.bib中添加);
然后修改shell.reg 文件(与NK 在同目录下),把[HKEY_LOCAL_MACHINE\init]下 的"Launch50"="explorer.exe"
改为
"Launch50"="DEMO.EXE"
在WInce下面添加应用程序,并且自动运行
1、复制可执行文件到BSP的file目录中,在目录中创建连接文件.lnk
创建.lnk的方法:新建.txt文件,在文件中添加21#/windows/*.exe,然后保存,重新命名为.lnk就可以了
2、在Platform.bib中添加
.exe $(_FLATRELEASEDIR)\.exe NK U
.lnk $(_FLATRELEASEDIR)\.lnk NK U
3、在Platform.dat中添加:
Directory(LOC_DIRWINDOWSSTARTUP):-File(".lnk", "\windows\.lnk")
还可以修改注册表:
Windows CE启动时分别执行[HKEY_LOCAL_MACHINE\init]键下所有子键列出的程序。例如:
[HKEY_LOCAL_MACHINE\init] "Launch20"="device.exe" "Launch30"="gwes.exe" "Depend30"=hex:14,00
一般的按上面第二种方法将注册表中的 "Launch50"="explore.exe"中的explore.exe改成你自己的应用程序就可以了,这样就能够不进入CE的那个桌面,而直接进入你的应用~注意一下你的应用程序的路径就可以了!
Launch50"="explore.exe是在shell.reg中
程序可以不要放到內核中,直接放到windows目錄下就可以,或者在Launch150="將程序的存放路徑完整寫進來"