1

我目前正在尝试在 Windows CE 5.0 设备启动期间自动启动用 .Net CF 2.0 编写的应用程序。

基于这篇文章: http: //blogs.msdn.com/b/cenet/archive/2004/12/03/274661.aspx我尝试将我的应用程序的快捷方式放在 Windows 目录的 Startup 文件夹中或添加注册表值像 "Launch77"="app.exe" 这样的 HKLM\init 都不起作用,因为设备的存储和注册表是易失的,并且在设备关闭时会重置。

然后我尝试使用注册表配置单元并制作了一个 system.hv 以使注册表更改持久化,但在 HKLM\init\BootVars 中,SystemHive 设置为驻留在易失性存储上的文件夹。

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

4

2 回答 2

4

答案实际上取决于设备的配置。如果设备上没有保留任何内容,包括注册表,那么除非 OEM 提供一些专有的“启动”序列(很多都提供,但它是 OEM 特定的),否则很难让它工作。

通常,如果您有一个持久文件系统,您可以将应用程序的快捷方式放在 \Windows\Startup 文件夹中。如果文件系统不是持久的,这将不起作用。

如果您有一个持久注册表(您可能必须在进行更改后调用 RegFlushKey 才能使其持久),那么使用该HKLM\Init密钥应该可以工作(假设您等到所有适当的 API 都准备好启动 CLR)。

如果这些都不可用,请与 OEM 联系。我用过的几乎所有设备都有一些从存储中启动应用程序的机制(内部闪存、USB、SD 等),但它又是非常特定于设备的,所以我无法为您指明任何特定的方向。

于 2012-11-06T15:06:48.217 回答
1

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

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

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

每次 Wince 启动(热启动或冷启动)时,它都会将您的应用程序复制到 Windows 启动文件夹,然后启动它。

于 2015-02-03T13:31:43.633 回答