控制工程师论坛

嵌入式系统

在wince怎样启动自启动自己写的程序【经典推荐】

jane_liang
jane_liang

2007-06-11

1、注册表  
1.配置project.bib或者添加User  Feature,以将<你的程序>含入NK.bin  
请参考《让程序在Windows  CE系统启动时自动运行-快捷方式》  
2.配置platform.reg或者common.reg,在[HKEY_LOCAL_MACHINEinit]段添加如下类似内容:  
"LaunchXX"="<你的程序>"  
"DependXX"=hex:YY,ZZ,...  
其中XX是十进制的数字,表示<你的程序>的启动顺序标识;YY,ZZ是Least  Significant的十六进制数字,表示<你的程序>所依赖(先于<你的程序>运行)的程序的启动顺序标识。  
例如:  
"Launch80"="MyApp.exe"  
"Depend80"=hex:1E,00  
语意为程序MyApp.exe的启动顺序标识是80,它依赖标识为30(即001E)的程序。  
如果<你的程序>不依赖其他程序,那么不需要添加"DependXX"=hex:YY,zz,...指示;  
如果<你的程序>依赖多个程序,那么在"DependXX"指示中指明;  
eg.  
"Launch80"="MyApp.exe"  
"Depend80"=hex:0A,00,1E,00  
语意为MyApp.exe程序的启动依赖标识为10和30的程序。  
3.PlatformBuilder  IDE->Build->MakeImage,生成新的NK.bin  

说明:  
1.如果<你的程序>是别的程序所依赖的程序,那么在<你的程序>的代码中需要添加如下代码  
SignalStarted(XX);  
以通告操作系统<你的程序>已经运行,否则依赖<你的程序>的程序将不会运行。  
一般SignalStarted加在InitInstance成员函数的最后(MFC  CE)或者while(GetMessage(...))之前(C  SDK)  
2.不要重复使用启动顺序标识,依赖方程序的启动顺序标识应大于被依赖方程序。  
3.如果不想让<你的程序>包含在NK.bin中,同时又想让它自动启动,那么请明确指出<你的程序>的路径,同时确保文件系统驱动程序先运行。  
eg.  
"Launch80"="Hard  DiskMyAppMyApp.exe"  
"Depend80"=hex:...  
4.<你的程序>启动失败不会影响系统  
5.参考《让程序在Windows  CE系统启动时自动运行-快捷方式》  
6.相关PB4.2帮助主题  
Adding  a  File  to  an  Operating  System  
How  to  Configure  the  Registry  to  Run  an  Application  at  Startup
回帖

评论9

总共 , 当前 /
首页 | 登录 | 注册 | 返回顶部↑
手机版 | 电脑版
版权所有 Copyright(C) 2016 CE China