WinCE应用程序自动运行(一)

来源:互联网 发布:中日军力对比2017知乎 编辑:程序博客网 时间:2024/05/25 16:39

让程序在Windows   CE系统启动时自动运行-两种方法     

·快捷方式      

假定Windows   CE.NET目标工程为CEPC类型,目录为E:/Project/MyWinCE  
并且工程已经Build(或者Rebuild)成功;假定Windows   CE.NET的应用为MyApp.exe   

1.MyApp.exe复制到E:/PROJECTS/MyWinCE/RelDir/CEPC_X86Release目录下;       
2.
修改MyWinCE工程的project.bib文件,在FILES   Section添加
 
  MyApp.exe         $(_FLATRELEASEDIR)/MyApp.exe           NK           H       
3.
创建快捷方式文件MyApp.lnk(文本文件),文件内容如下:
    
  10#/Windows/MyApp.exe    
  MyApp.lnk
文件也放入E:/PROJECTS/MyWinCE/RelDir/CEPC_X86Release目录下
   
4.
修改MyWinCE工程的project.bib文件,在FILES   Section添加
 
  MyApp.lnk          $(_FLATRELEASEDIR)/MyApp.lnk           NK           H        
5.
修改MyWinCE工程的project.dat文件,添加如下内容:
   
  Directory("/Windows/Startup"):-File("MyApp.lnk","/Windows/MyApp.lnk")     

6.Platform  Builder  IDE->菜单Build->MakeImage(记得千万不要Build或者Rebuild  
 
否则你就要重新来一遍)
     
 
到此得到的NK.bin就包含了应用程序MyApp.exeMyApp.lnk
 
 
并且MyApp程序会在系统启动时自动运行。    

 

说明:        

I.将自定义的文件打包进NK.bin中的方法有两种:        

第一种是编辑project.bib文件。

FILES   Section描述文件的名称,源文件的路径,文件在目标系统中的属性在上面,MyApp.exe   $(_FLATRELEASEDIR)/MyApp.exe   NK   H    
表示将E:/Project/MyWinCE/RelDir/CEPC_X86Release目录下的文件MyApp.exe文件打包进NK.bin,并且此文件将处在Kernel内存区,文件属性类型为隐藏。       

第二种方法是添加User   Feature      
PlatformBuilder   IDE->FeatureView->
"MyWinCE Features"Right Click鼠标
->  
Insert  User  Feature->
指向想打包的文件。   

无论采用哪种打包方法,在启动的Windows   CE系统中,文件都在/Windows目录下。下一步就是根据需要重新组织文件系统的目录结构。    
  II.
组织文件系统的目录结构的途径在于修改project.dat文件,添加文件目录结构的描述。描述的语法如下:        

root:-Directory("<目录名>")   表示在root目录(/)下创建目录       
Directory("/<
目录名>"):-Directory("<子目录名>")   表示在指定目录下创建子目录    

Directory("/("<目录名>/<子目录名>"):-File("<文件名>.<扩展名>","/Windows/<文件名>.<扩展名>")  表示在指定目录下创建/Windows目录下文件的拷贝,显示名称是<文件名>.<扩展名> (记得上面提到打包的文件在/Windows目录下吗?呵呵,我想你明白了)    

 III.应用程序并不一定需要打包进NK.bin        
 
假定程序在硬盘的某个位置,如/硬盘/MyApp/MyApp.exe,那么只需创建快捷方式文件,链接指向/硬盘/MyApp/MyApp.exe就是了。
     
  IV.
相关PB42帮助主题
       
  Adding   a   File   to   an   Operating   System    
  Creating   a   Shortcut   File   and   Adding   It   to   the   OS    
  Organizing   Files   Within   an   OS    
 
整个过程简单来说就是,
 
 
想清楚应用程序将会出现在哪个目录下,创建正确的快捷方式文件,修改目标系统目录组织配置,
 
 
最后将应用程序和相应的快捷方式文件打包进NK.bin  

·注册表      
  1.
配置project.bib或者添加User   Feature,以将<你的程序>含入
NK.bin    
 
请参考《让程序在Windows CE系统启动时自动运行-快捷方式》
      
  2.
配置platform.reg或者common.reg,在[HKEY_LOCAL_MACHINE/init]段添加如下类似内容
:     
  "LaunchXX"="<
你的程序
>"    
  "DependXX"=hex:YY,ZZ,...    
 
其中XX是十进制的数字,
 
 
表示<你的程序>的启动顺序标识;YY,ZZLeast   Significant的十六进制数字,表示<你的程序>所依赖(先于<你的程序>运行)的程序的启动顺序标识。
      
 
例如
:    
  "Launch80"="MyApp.exe"    
  "Depend80"=hex:1E,00    
 
语意为程序MyApp.exe的启动顺序标识是80,它依赖标识为30(即001E)的程序。
   
 
如果<你的程序>不依赖其他程序,那么不需要添加"DependXX"=hex:YY,zz,...指示;
   
 
如果<你的程序>依赖多个程序,那么在"DependXX"指示中指明;
   
  "Launch80"="MyApp.exe"    
  "Depend80"=hex:0A,00,1E,00    
 
语意为MyApp.exe程序的启动依赖标识为1030的程序。
   
  3.PlatformBuilder   IDE->Build->MakeImage
,生成新的
NK.bin    
 
说明:
      
  1.
如果<你的程序>是别的程序所依赖的程序,那么在<你的程序>的代码中需要添加如下代码
 
  SignalStarted(XX);    
 
以通告操作系统<你的程序>已经运行,否则依赖<你的程序>的程序将不会运行。
     
 
一般SignalStarted加在InitInstance成员函数的最后(MFC/CE)或者while(GetMessage(...))之前(C   SDK
   
  2.
不要重复使用启动顺序标识,依赖方程序的启动顺序标识应大于被依赖方程序。
   
  3.
如果不想让<你的程序>包含在NK.bin中,同时又想让它自动启动,那么请明确指出<你的程序>的路径,同时确保文件系统驱动程序先运行。  

如:   
  "Launch80"="/Hard   Disk/MyApp/MyApp.exe"    
  "Depend80"=hex:...