2012-11-06 110 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啓動文件夾,然後啓動它。

相關問題