1. 假定Windows CE.NET目標工程目錄爲D:\WINCE420\PUBLIC\MyWinCE,並且工程已經Build成功,假定Windows CE.NET的應用程序爲MyApp.exe;
2. 將MyApp.exe複製到D:\WINCE420\PUBLIC\MyWinCE\SAMSUNG_SMDK2410_ARMV4Release目錄下;
3. 修改MyWinCE工程的project.bib文件,在FILES Section添加如下內容:
MyApp.exe $(_FLATRELEASEDIR)\MyApp.exe NK H
4. 創建快捷方式文件MyApp.lnk,文件內容如下:
10#\Windows\MyApp.exe
MyApp.lnk文件也放入D:\WINCE420\PUBLIC\MyWinCE\SAMSUNG_SMDK2410_ARMV4Release目錄下;
5. 修改MyWinCE工程的project.bib文件,在FILES Section添加如下內容:
MyApp.lnk $(_FLATRELEASEDIR)\MyApp.lnk NK H
6. 修改MyWinCE工程的project.dat文件,添加如下內容:
Directory("\Windows\Startup"):-File("MyApp.lnk","\Windows\MyApp.lnk")
7. 修改MyWinCE工程的platform.bib文件,在FILES Section添加如下內容:
MyApp.exe $(_FLATRELEASEDIR)\MyApp.exe NK H
MyApp.lnk $(_FLATRELEASEDIR)\MyApp.lnk NK H
8. Platform Builder IDE:【Build】->【Make Image】(記得千萬不要Build或者Rebuild)
9. 成功後,得到的NK.bin(或NK.nb0)就包含了應用程序MyApp.exe和MyApp.lnk,當把相應的內核燒入開發板MyApp程序就會在系統啓動時自動運行。
雖然MyApp可以自己啓動了,但每次啓動的時候,總是微軟的桌面先出來,再啓動我們的程序,感覺還是不倫不類。對此,我們可以使用startup的快捷方式再加上隱藏任務欄的方法,效果非常的好,具體操作是:1) 首先新建工程,把你的應用程序放到內核裏面去(前面介紹瞭如何做);
2) 編譯平臺;
3) 修改shell.reg的文件:在文件中有這樣一行:
[HKEY_LOCAL_MACHINE\init]
"Launch50"="explorer.exe"
"Depend50"=hex:14,00, 1e,00
把這個explorer.exe改成你的應用程序(比如:MyApp.exe)就可以了;
4) Platform Builder IDE:【Build】->【Make Image】(記得千萬不要Build或者Rebuild)
5) 成功後,得到的NK.bin(或NK.nb0)就包含了應用程序MyApp.exe和MyApp.lnk,當把相應的內核燒入開發板MyApp程序就會在系統啓動時自動運行。
增加一篇參考文章:
其實讓一個程序在wince裏啓動和windows裏差不多,直接設置其爲啓動項,這個有幾個方法。一個就是製作一個快捷方式,指向我們的應用程序如app.exe,然後將快捷方式放到\windows\startup下面。
步驟如下:(假設app.exe已經拷貝到windows下面)
1 在pb中創建一個文件,文件類型選txt,然後命名爲.lnk後綴,假設名字爲test.lnk
2 編輯其內容爲: 16#\windows\app.exe。備註:前面的16是# 後面所有字符的總和,包括空格。Wince的幫助文檔上說這麼定義就行,但是我嘗試後,最後down到目標機上面時提示找不到文件,在wince裏查看這麼創建的test.lnk的屬性,發現其指向\windows\app.exe後面還有兩個方框,因此不對,我的解決方法是修改test.lnk的內容爲16#"\Windows\app.exe"
3 編輯好lnk文件內容後在pb中修改project.bib。在files段後面添加下面一行:(和添加別的文件到p_w_picpath中類似,見我的《WinCE中如何向p_w_picpath中添加文件》,也要在pb的flatform菜單的setting下添加build語句,不再贅述)
test.lnk $(_FLATRELEASEDIR)\test.lnk NK S
在project.dat中增加下面一行:
Directory("\Windows\startup"):-File("test.lnk","\Windows\test.lnk")
這樣後系統啓動後就會自動啓動我們的程序了。
另外一種方法是編輯註冊表:在project.reg中添加如下內容
[HKEY_LOCAL_MACHINE\init]
"Launch80"="app.exe"
"Depend80"=hex:14,00,1e,00
這個是設定啓動順序,launch後面的數字越大的越是後啓動,Depend80後面的指定依賴項,爲16進制,上面的語句表明依賴項爲launch20定義的device.exe和launch30中定義的gwes.exe, 注意Launch後面的數字範圍爲0到99 ,此範圍之外的將不會有效果。
這樣兩種方法的效果都是系統都是系統先啓動資源管理器explorer.exe(就是看到的默認桌面),然後啓動我們的程序,(如果利用taskman shell然後去掉任務欄那麼效果更好)但是這樣還不夠,我們如何不顯示桌面,直接顯示我們的程序呢?
網上有人介紹的方法是去掉standard shell,但是我編譯總是報錯。我採用的方法是替換註冊表中lauch50中的explorer.exe爲我的app.exe,即搞定。
修改註冊表的方法:先把帶KITL的系統跑起來,在PB的TOOLS->Remote registry editor裏修改,驗證有效後,再去修改platfrom.reg, 或者自己寫個REG文件,然後在platform.reg裏INCLUDE進來 SYSGEN後確認PBWORKSPACE裏相關項目的REL目錄裏reginit.ini文件裏包含了自己做的修改後make p_w_picpath然後DOWNLOAD下去就OK了。
值得補充的是,我們前面介紹的步驟中那個修改平臺setting,添加語句的,是因爲我每次都是重新sysgen和build,如果只是簡單的make p_w_picpath的話(都是pb中的build OS菜單下的命令),那麼將直接用release中的內容,因此也可以直接將文件放到release文件夾,然後改project.bib等實現往p_w_picpath中添加文件。 同樣,也可以直接修改release中的shell.reg中的launch50值爲我們自己的程序(或者類似修改reginit.ini文件,reginit.ini文件存放有所有wince的靜態註冊表,來達到去掉桌面,直接啓動我們程序的效果)。
注意,這麼啓動的程序,如果點擊關閉,就會死機的,因爲沒有窗口運行了。實際運用中,當然不會讓用戶關閉我們的程序,除非他一起關閉系統。
如果也需要build的話,可以通過往p_w_picpath中添加文件的方法將我們改好的shell.reg添加到release目錄。
WINCE系統啓動直接運行自己的程序
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
Linux基本操作命令
wbzjacky
2019-02-24 13:12:38
真實的模擬***綜合實驗
wbzjacky
2019-02-24 13:12:37
三層交換機的HSRP、vlan、端口聚合
wbzjacky
2019-02-24 13:12:37
HSRP和二層交換機的端口聚合、vlan
wbzjacky
2019-02-24 13:12:37
如果同事暗中傷害你,應該怎麼辦?
這個饅頭有餡
2019-02-24 13:59:08
職場中,抱怨越多的員工,越被領導瞧不起!
這個饅頭有餡
2019-02-24 13:59:08
老程序員被裁,應屆生卻能月薪 1.3 萬?這你能忍?
前端高達
2019-02-24 13:48:04
遇到到處蹭吃卻從不請客吃飯的主怎麼辦?
樑軍年
2019-02-24 13:26:35
高標準機房綜合配線安裝
wbzjacky
2019-02-24 13:12:38
IPsec ***實驗
wbzjacky
2019-02-24 13:12:37
CISCO路由AAA的Easy ***
wbzjacky
2019-02-24 13:12:37
CISCO訪問控制列表 企業網絡管理的必殺技
wbzjacky
2019-02-24 13:12:37