在Windows CE 5.0中启动时运行应用程序

时间:2012-11-06 11:36:39

标签: embedded compact-framework windows-ce c#-2.0

我目前正在尝试使用.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设置为驻留在易失性存储上的文件夹。

还有其他方法可以启动应用程序吗?我可以强制设备使用存储卡备份/恢复注册表吗?

2 个答案:

答案 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启动文件夹,然后启动它。