我目前正在尝试使用.Net CF 2.0编写的应用程序在Windows CE 5.0设备启动期间自动启动。
基于这篇文章:http://blogs.msdn.com/b/cenet/archive/2004/12/03/274661.aspx我尝试在Windows目录的Startup文件夹中放置我的应用程序的快捷方式,或者将注册表值添加到HKLM \ init,如“Launch77”=“app.exe”无法正常工作,因为设备的存储和注册表是易失性的,并在设备关闭时重置。
然后我尝试使用注册表配置单元并创建了一个system.hv来使注册表更改持久,但在HKLM \ init \ BootVars中,SystemHive设置为驻留在易失性存储上的文件夹。
还有其他方法可以启动应用程序吗?我可以强制设备使用存储卡备份/恢复注册表吗?
答案 0 :(得分:4)
答案实际上取决于设备的配置。如果设备上没有任何内容,包括注册表,除非OEM提供一些专有的" startup"否则将很难使其工作。序列(很多,但它是特定于OEM的)。
通常,如果您有永久文件系统,则可以在\ Windows \ Startup文件夹中放置应用程序的快捷方式。如果文件系统不是持久的,那么这将不起作用。
如果您有一个持久注册表(您可能必须在进行更改后调用RegFlushKey以使其保持不变),那么使用HKLM\Init
键应该有效(assuming you wait until all of the proper APIs are ready to launch the CLR)。
如果这些都不可用,请咨询OEM。我使用的几乎所有设备都有一些从存储启动应用程序的机制(内部闪存,USB,SD等),但它又是特定于设备的,所以我无法指出你任何具体的方向。
答案 1 :(得分:1)
您可以制作.cpy文件。
将您的应用程序保存在Wince(或子文件夹)的/ application文件夹中。因此,在/ application文件夹中创建一个名为 somename.cpy 的文件,其中包含:
\Application\Yoursubfolder\yourapp.exe > \Windows\StartUp\yourapp.exe
每次Wince启动(热启动或冷启动)时,它都会将您的应用程序复制到Windows启动文件夹,然后启动它。