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

Embedded 在Windows CE 5.0中启动时运行应用程序,embedded,compact-framework,windows-ce,c#-2.0,Embedded,Compact Framework,Windows Ce,C# 2.0,我目前正在尝试使一个用.Net CF 2.0编写的应用程序在Windows CE 5.0设备启动期间自动启动 基于本文:我尝试将我的应用程序的快捷方式放在windows目录的启动文件夹中,或向HKLM\init添加注册表值,如“Launch77”=“app.exe”,但这两种方法都不起作用,因为设备的存储和注册表不稳定,在设备关闭时会重置 然后,我尝试使用registry配置单元,并使用system.hv使注册表更改持久化,但在HKLM\init\BootVars中,系统配置单元设置为驻留在易失

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

基于本文:我尝试将我的应用程序的快捷方式放在windows目录的启动文件夹中,或向HKLM\init添加注册表值,如“Launch77”=“app.exe”,但这两种方法都不起作用,因为设备的存储和注册表不稳定,在设备关闭时会重置

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


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

答案取决于设备的配置。如果设备(包括注册表)上没有保存任何内容,则除非OEM提供一些专有的“启动”序列(很多都是这样,但这是特定于OEM的),否则很难使其正常工作

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

如果您有一个持久注册表(在进行更改后可能需要调用RegFlushKey以使其持久化),那么使用
HKLM\Init
键应该可以工作()


如果两者都不可用,请与OEM联系。我使用过的几乎所有设备都有某种机制可以在存储设备之外启动应用程序(内部闪存、USB、SD等),但它又是非常特定于设备的,因此我无法向您指出任何特定的方向。

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

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

如果您有一个持久注册表(在进行更改后可能需要调用RegFlushKey以使其持久化),那么使用
HKLM\Init
键应该可以工作()


如果两者都不可用,请与OEM联系。我使用过的几乎所有设备都有某种机制可以在存储设备之外启动应用程序(内部闪存、USB、SD等),但它又是非常特定于设备的,因此我无法为您指出任何特定的方向。

您可以创建一个.cpy文件

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

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

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

您可以创建一个.cpy文件

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

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

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

大多数CE设备供应商都提供了自己的(专有)解决方案。您使用的是哪家供应商?这是Motia iMDT5000大多数CE设备供应商都提供了自己的(专有)解决方案。您使用的是哪家供应商?这是Motia iMDT5000。我联系了该供应商,发现将名为“mlaunch.exe”的应用程序放在设备的闪存中就可以了。在我们的CE 5.0和6.0板上,该应用程序可以从HKLM\init启动(例如Launch120=“APP-NAME”)或者在HKLM\System\Explorer\Shell Folders\Startup中指定的启动文件夹中放置快捷方式。这两种方法都可以正常工作,但通电后通过HKLM\init启动更“即时”,而通过启动文件夹启动会延迟几秒钟,您可以看到Windows桌面。这可能是问题,也可能不是问题。我联系了供应商,发现将名为“mlaunch.exe”的应用程序放在设备的闪存中就可以了。在我们的CE 5.0和6.0板上,应用程序可以从HKLM\init启动(例如Launch120=“APP-NAME”)或者在HKLM\System\Explorer\Shell Folders\Startup中指定的启动文件夹中放置快捷方式。这两种方法都可以正常工作,但通电后通过HKLM\init启动更“即时”,而通过启动文件夹启动会延迟几秒钟,您可以看到Windows桌面。这可能是问题,也可能不是问题。