2012-11-06 109 views
1

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

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

+1

大多数CE设备供应商提供他们自己的(专有)解决方案来解决这个问题。你在使用哪个供应商? – tcarvin

+0

这是一个Motia iMDT5000 http://www.motia.co.kr/product/product_06.asp – reticent

回答

4

答案真的取决于设备的配置。如果包括注册表在内的设备上没有任何东西存在,除非OEM提供一些专有的“启动”序列(很多是做的,但它是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

我与供应商联系,发现将名为“mlaunch.exe”的应用程序放入设备的闪存中将执行工作。 – reticent

+1

在我们的CE 5.0和6.0板上,可以从HKLM \ init启动应用程序(例如Launch120 =“APP-NAME”),或者在HKLM \ System \ Explorer \ Shell Folders \ Startup中指定的启动文件夹中放入一个快捷方式。这两种方法都能正常工作,但启动后通过HKLM \ init启动更“立即”,而通过启动文件夹延迟几秒钟,您就可以看到Windows桌面。这可能是也可能不是问题。 – AlainD

1

您可以制作一个.cpy文件。

将您的应用程序保存在Wince(或子文件夹)的/ application文件夹中。因此,在/应用程序文件夹中创建一个名为somename.cpy包含文件:

\Application\Yoursubfolder\yourapp.exe > \Windows\StartUp\yourapp.exe 

每次Wince的开始(暖或冷启动)它会复制你的应用程序到Windows启动文件夹,然后启动它。

相关问题