wqlcd_911的個(gè)人空間 http://selenalain.com/space-uid-11638.html [收藏] [復制] [RSS]

博客

WINCE的快捷方式

已有 2172 次閱讀2012-11-12 16:37

WINCE的快捷方式 - wqlcd - wqlcd

 1.WINCE快捷方式結構

WINCE的快捷方式和WIN2K,XP的不同,只是一個(gè)后綴名為.LNK的文本文件.


其格式如下:

數字#路徑

比如,有個(gè)快捷方式寫(xiě)法如下:

23#\Windows\ToolViewer.exe

指的是指向WINDOWS文件夾下的Toolviewer.exe可執行文件.數字究竟代表的是什么意思,我也不太清楚;有一說(shuō)法是#后的ACSII字符 的數量,但如果把上述例子改為1#\Windows\ToolViewer.exe也可正常運行,但去掉數字則系統無(wú)法識別.雖然可以正常使用,但建議還 是按照文檔#之后的ACSII字符數量填寫(xiě).

2.如何把快捷方式加到內核中


假設我們有一快捷方式EnglishExp.lnk,要將其加到內核中.

在PB環(huán)境中打開(kāi)工程,在project.bib文件的FILES字段中添加:

EnglishExp.lnk $(_WINCEROOT)\PLATFORM\MyAPPC\EnglishExp.lnk NK H

其中 $(_WINCEROOT)指的是PC機子上PB安裝的根目錄,H指的是文件屬性,意義代表如下:

S:系統
H:隱藏
R:壓縮的資源文件
C:壓縮文件
U:非壓縮文件

3.如何把快捷方式放到桌面

語(yǔ)法如下:Directory(”欲拷貝至的文件夾”):-File(”更改的名稱(chēng)”,”要拷貝的文件”)

假設我們有一快捷方式EnglishExp.lnk,要將其放到桌面,并把快捷方式的名稱(chēng)改為”英語(yǔ)”
在PB的project.dat文件加入此句:

Directory(”\Windows\LOC_DESKTOP_DIR”):-File(”英語(yǔ).lnk”,”\Windows\CEnglishExp.lnk”)

包含在內核里面的文件全部釋放到”\Windows”文件夾下.

LOC_DESKTOP_DIR指的是本地桌面.在PB中,常用的還有如下宏定義:
LOC_DESKTOP_DIR: 桌面
LOC_MYDOCUMENTS_DIR: My Documents
LOC_PROGRAMFILES_DIR: Program Files
LOC_FAVORITES_DIR: Favorites
LOC_RECENT_DIR: Recent
LOC_MYDOCUMENTS_DIR: My Documents
LOC_HELP_DIR: Help

更多的定義可以在ceshellfe.str文件中找到

4.消除快捷方式的小箭頭

在PC機的操作系統中可以通過(guò)修改注冊表來(lái)取消快捷方式左下角的小箭頭,但在WINCE中注冊表沒(méi)有關(guān)于取消小箭頭的鍵值(可能我沒(méi)找到^_^).在這里我采用的是直接修改資源文件的做法.
打開(kāi)shcore.res文件,其中文的路徑在 $(_WINCEROOT)\PUBLIC\COMMON\OAK\LIB\ARMV4I\RETAIL\0804\,然后將1205的ICO的小箭頭刪 掉即可.注意,不是刪除ID為1205的ICO圖標,是刪除ICO圖標中的內容.

5.微軟應用程序的快捷方式

如果在PB中添加了微軟的應用軟件,便會(huì )在桌面和程序中添加其快捷方式;如果覺(jué)得快捷方式礙眼,可以將其注釋掉再編譯即可.

現在列出一些dat文件中定義的微軟應用軟件的快捷方式:

wceappsfe.dat (C:\WINCE420\PUBLIC\WCEAPPSFE\OAK\FILES\),內含:pmail,wordpad
wceshellfe.dat (C:\WINCE420\PUBLIC\WCESHELLFE\OAK\FILES\),內含:iexplore,幫助文檔在”help”文件夾的快捷方式
viewers.dat (C:\WINCE420\PUBLIC\VIEWERS\OAK\FILES\), 內含:pdfviewer,imageviewer,Presviewer,Docviewer
directx.dat (C:\WINCE420\PUBLIC\DIRECTX\OAK\FILES\),內含:Media Player,DVD Player

6. 修改默認shell

其實(shí)讓一個(gè)程序在wince里啟動(dòng)和windows里差不多,直接設置其為啟動(dòng)項,這個(gè)有幾個(gè)方法。一個(gè)就是制作一個(gè)快捷方式,指向我們的應用程序如app.exe,然后將快捷方式放到\windows\startup下面。

步驟如下:(假設app.exe已經(jīng)拷貝到windows下面)

在pb中創(chuàng )建一個(gè)文件,文件類(lèi)型選txt,然后命名為.lnk后綴,假設名字為test.lnk
編輯其內容為: 16#\windows\app.exe

備注:前面的16是# 后面所有字符的總和,包括空格。Wince的幫助文檔上說(shuō)這么定義就行,但是我嘗試后,最后down到目標機上面時(shí)提示找不到文件,在wince里查看這 么創(chuàng )建的test.lnk的屬性,發(fā)現其指向\windows\app.exe后面還有兩個(gè)方框,因此不對,我的解決方法是修改test.lnk的內容為 16#”\Windows\app.exe”

編輯好lnk文件內容后在pb中修改project.bib

在files段后面添加下面一行:(和添加別的文件到image中類(lèi)似,也要在pb的flatform菜單的setting下添加build語(yǔ)句,同上,不再贅述)

test.lnk $(_FLATRELEASEDIR)\test.lnk NK S

project.dat

增加下面一行:

Directory(”\Windows\startup”):-File(”test.lnk”,”\Windows\test.lnk”)

這樣后系統啟動(dòng)后就會(huì )自動(dòng)啟動(dòng)我們的程序了。

另外一種方法是編輯注冊表:在project.reg中添加如下內容

[HKEY_LOCAL_MACHINE\init]
“Launch80″=”app.exe”
“Depend80″=hex:14,00,1e,00

這個(gè)是設定啟動(dòng)順序,launch后面的數字越大的越是后啟動(dòng),Depend80后面的指定依賴(lài)項,為16進(jìn)制,上面的語(yǔ)句表明依賴(lài)項為launch20 定義的device.exe和launch30中定義的gwes.exe, 注意Launch后面的數字范圍為0到99 ,此范圍之外的將不會(huì )有效果。

這樣兩種方法的效果都是系統都是系統先啟動(dòng)資源管理器explorer.exe(就是看到的默認桌面),然后啟動(dòng)我們的程序,(如果利用 taskman shell然后去掉任務(wù)欄那么效果更好)但是這樣還不夠,我們如何不顯示桌面,直接顯示我們的程序呢?

網(wǎng)上有人介紹的方法是去掉standard shell,但是我編譯總是報錯。我采用的方法是替換注冊表中lauch50中的explorer.exe為我的app.exe,即搞定。

修改注冊表的方法:先把帶KITL的系統跑起來(lái),在PB的TOOLS->Remote registry editor里修改,驗證有效后,再去修改platfrom.reg, 或者自己寫(xiě)個(gè)REG文件,然后在platform.reg里INCLUDE進(jìn)來(lái) SYSGEN后確認PBWORKSPACE里相關(guān)項目的REL目錄里reginit.ini文件里包含了自己做的修改后make image然后DOWNLOAD下去就OK了。

值得補充的是,我們前面介紹的步驟中那個(gè)修改平臺setting,添加語(yǔ)句的,是因為我每次都是重新sysgen和build,如果只是簡(jiǎn)單的 make image的話(huà)(都是pb中的build OS菜單下的命令),那么將直接用release中的內容,因此也可以直接將文件放到release文件夾,然后改project.bib等實(shí)現往 image中添加文件。 同樣,也可以直接修改release中的shell.reg中的launch50值為我們自己的程序(或者類(lèi)似修改reginit.ini文件, reginit.ini文件存放有所有wince的靜態(tài)注冊表,來(lái)達到去掉桌面,直接啟動(dòng)我們程序的效果)。

注意,這么啟動(dòng)的程序,如果點(diǎn)擊關(guān)閉,就會(huì )死機的,因為沒(méi)有窗口運行了。實(shí)際運用中,當然不會(huì )讓用戶(hù)關(guān)閉我們的程序,除非他一起關(guān)閉系統。

如果也需要build的話(huà),可以通過(guò)往image中添加文件的方法將我們改好的shell.reg添加到release目錄。

總之,今天是把定制shell算是基本完成了。

微嵌工業(yè)一體化電腦(www.wqlcd.com)

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
返回頂部
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页