來自
http://jkflyfox.spaces.live.com/?_c11_blogpart_blogpart=blogview&_c=blogpart&partqs=cat%3d%25e7%25a8%258b%25e5%25ba%258f%25e6%258a%2580%25e5%25b7%25a7其實讓一個程序在wince里啟動和windows里差不多,直接設(shè)置其為啟動項,這個有幾個方法。一個就是制作一個快捷方式,指向我們的應(yīng)用程序如app.exe,然后將快捷方式放到\windows\startup下面。
??? 步驟如下:(假設(shè)app.exe已經(jīng)拷貝到windows下面)?
????1 在pb中創(chuàng)建一個文件,文件類型選txt,然后命名為.lnk后綴,假設(shè)名字為test.lnk?
????2 編輯其內(nèi)容為: 16#\windows\app.exe。備注:前面的16是# 后面所有字符的總和,包括空格。Wince的幫助文檔上說這么定義就行,但是我嘗試后,最后down到目標機上面時提示找不到文件,在wince里查看這么創(chuàng)建的test.lnk的屬性,發(fā)現(xiàn)其指向\windows\app.exe后面還有兩個方框,因此不對,我的解決方法是修改test.lnk的內(nèi)容為16#"\Windows\app.exe"?
????3 編輯好lnk文件內(nèi)容后在pb中修改project.bib。在files段后面添加下面一行:(和添加別的文件到image中類似,見我的《WinCE中如何向image中添加文件》,也要在pb的flatform菜單的setting下添加build語句,不再贅述)
?????? ?test.lnk $(_FLATRELEASEDIR)\test.lnk NK S
??? 在project.dat中增加下面一行:
???????? Directory("\Windows\startup"):-File("test.lnk","\Windows\test.lnk")
??? 這樣后系統(tǒng)啟動后就會自動啟動我們的程序了。
???
??? 另外一種方法是編輯注冊表:在project.reg中添加如下內(nèi)容
??????? [HKEY_LOCAL_MACHINE\init]
??????? "Launch80"="app.exe"
??????? "Depend80"=hex:14,00,1e,00
??? 這個是設(shè)定啟動順序,launch后面的數(shù)字越大的越是后啟動,Depend80后面的指定依賴項,為16進制,上面的語句表明依賴項為launch20定義的device.exe和launch30中定義的gwes.exe, 注意Launch后面的數(shù)字范圍為0到99 ,此范圍之外的將不會有效果。
??? 這樣兩種方法的效果都是系統(tǒng)都是系統(tǒng)先啟動資源管理器explorer.exe(就是看到的默認桌面),然后啟動我們的程序,(如果利用taskman shell然后去掉任務(wù)欄那么效果更好)但是這樣還不夠,我們?nèi)绾尾伙@示桌面,直接顯示我們的程序呢?
??? 網(wǎng)上有人介紹的方法是去掉standard shell,但是我編譯總是報錯。我采用的方法是替換注冊表中l(wèi)auch50中的explorer.exe為我的app.exe,即搞定。
??? 修改注冊表的方法:先把帶KITL的系統(tǒng)跑起來,在PB的TOOLS->Remote registry editor里修改,驗證有效后,再去修改platfrom.reg, 或者自己寫個REG文件,然后在platform.reg里INCLUDE進來 SYSGEN后確認PBWORKSPACE里相關(guān)項目的REL目錄里reginit.ini文件里包含了自己做的修改后make image然后DOWNLOAD下去就OK了。
??? 值得補充的是,我們前面介紹的步驟中那個修改平臺setting,添加語句的,是因為我每次都是重新sysgen和build,如果只是簡單的make image的話(都是pb中的build OS菜單下的命令),那么將直接用release中的內(nèi)容,因此也可以直接將文件放到release文件夾,然后改project.bib等實現(xiàn)往image中添加文件。 同樣,也可以直接修改release中的shell.reg中的launch50值為我們自己的程序(或者類似修改reginit.ini文件,reginit.ini文件存放有所有wince的靜態(tài)注冊表,來達到去掉桌面,直接啟動我們程序的效果)。
注意,這么啟動的程序,如果點擊關(guān)閉,就會死機的,因為沒有窗口運行了。實際運用中,當然不會讓用戶關(guān)閉我們的程序,除非他一起關(guān)閉系統(tǒng)。
如果也需要build的話,可以通過往image中添加文件的方法將我們改好的shell.reg添加到release目錄。?