新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > Windows Embedded Standard開(kāi)發(fā)初體驗(yàn)(四)

Windows Embedded Standard開(kāi)發(fā)初體驗(yàn)(四)

作者: 時(shí)間:2010-03-10 來(lái)源:網(wǎng)絡(luò) 收藏

接下來(lái)我們就要進(jìn)入創(chuàng)建組件最重要的一環(huán)了,。為什么說(shuō)重要,因?yàn)檫@里有一個(gè)大坑,我在 產(chǎn)品組施衛(wèi)娟老師的指導(dǎo)下,花了兩周的時(shí)間才勉強(qiáng)爬出來(lái),可見(jiàn)該坑之深。

在這里我們使用了一個(gè)現(xiàn)成的Demo,SilverlightTV作為我們的目標(biāo)文件。SilverlightTV中包含很多文件和文件夾。我們要做的第一件事,就是將所有文件拷貝到一個(gè)文件夾中。這一點(diǎn)非常重要,因?yàn)榭紤]到效率問(wèn)題, 組件中的文件只能包括在同一個(gè)文件夾中。

主要提示:如果將包含子目錄的文件夾添加到組件中,組件設(shè)計(jì)器不會(huì)報(bào)錯(cuò),而要等到這個(gè)組件加入到Target Designer時(shí),才會(huì)報(bào)文件找不到的錯(cuò)誤,并且在構(gòu)建好的Image文件中,只會(huì)包括文件夾,而不會(huì)包括其中的文件。

不過(guò),新的問(wèn)題就來(lái)了,如果我的文件結(jié)構(gòu)是固定的,并且有相互的依賴關(guān)系,把所有文件都放到一個(gè)文件夾后,程序無(wú)法正常運(yùn)行該怎么辦呢?我們自然有辦法,不過(guò)現(xiàn)在,還是趕緊將所有文件放在一個(gè)文件夾中吧,這個(gè)文件夾就是添加Repositories時(shí)指定的Source Path文件夾。不過(guò)千萬(wàn)記清文件原來(lái)所在的文件夾,否則下一步就麻煩了。

做完這步之后,回到Component Designer中,在Files節(jié)點(diǎn)單擊右鍵,在菜單中選擇Add – Files in Folder,在稍后彈出的對(duì)話框中,選擇我們放置源文件的文件夾。經(jīng)過(guò)下面的處理過(guò)程之后,文件夾中所有的文件都被加入到組件中了

不過(guò)問(wèn)題是,所有的文件還被放置在同一個(gè)目錄中,無(wú)法正常執(zhí)行。這時(shí),我們要通過(guò)一個(gè)比較繁瑣的過(guò)程來(lái)解決這個(gè)問(wèn)題——修改文件的目的文件夾。在右側(cè)的文件列表中,選中某一個(gè)文件,雙擊,打開(kāi)文件編輯對(duì)話框:

我們打開(kāi)的是一個(gè)wmv文件,我們只需要修改Destination中的目錄結(jié)構(gòu),%24%是一個(gè)轉(zhuǎn)義字符,表示C盤,我們不要去動(dòng)它。根據(jù)我們文件的原始位置填寫(xiě)目的文件的所在目錄就可以了。這個(gè)工作要花費(fèi)一段時(shí)間,需要點(diǎn)耐心。

接下來(lái),我們要添加組件的Group Memberships,表示組件在組件目錄樹(shù)中所處的位置。我們?cè)凇癎roup Memberships”節(jié)點(diǎn)上右鍵選擇“Add Group Membership”命令。在彈出的對(duì)話框中,選擇SoftwareàSystemàUser InterfaceàShells,然后選擇Shell即可。點(diǎn)擊OK,關(guān)閉對(duì)話框。

接下來(lái)為組件添加依賴關(guān)系。依賴關(guān)系表明該組件依賴于那些組件,當(dāng)我們添加了該組件到Target Image中時(shí),在依賴檢查時(shí),會(huì)將其所依賴的組件也添加到Image中。

我們選擇“Component or Group Dependency”,右鍵菜單中“Add”-“Component Dependency”,會(huì)彈出添加組件依賴對(duì)話框。

我們?cè)凇癈omponent dependency source”選擇Database,即選擇組件數(shù)據(jù)庫(kù)中的組件。然后找到SoftwareàSystemàNetworking Communicationsà ApplicationsàInternet Explorer – Hotfix Q321232,并且確認(rèn)My Component下選擇的是“Depends on the selected component”,然后點(diǎn)擊Apply按鈕,添加依賴關(guān)系。

這時(shí)對(duì)話框不會(huì)關(guān)閉,所以我們還需要添加第二個(gè),就是大名鼎鼎的

好了,到這里,我們的組件就基本完成了,哦,還忘了件事,添加。不過(guò)請(qǐng)大家注意的是,并不是每個(gè)Silverlight組件都需要添加項(xiàng),是因?yàn)镾ilverlightTV這個(gè)組件中調(diào)用了ActiveX,IE中會(huì)有安全限制,所以我們才通過(guò)修改的方式來(lái)規(guī)避這個(gè)問(wèn)題。關(guān)于IE安全限制的問(wèn)題,我們后邊會(huì)專門說(shuō)明,在這里大家只要了解如何為組件添加注冊(cè)表項(xiàng)就可以了。

在Component Designer中選擇Registry Data,右鍵菜單中選擇添加注冊(cè)表項(xiàng)。我們可以點(diǎn)擊Key name后邊的Browse按鈕,在注冊(cè)表中定位要添加的項(xiàng)。我們要添加的項(xiàng)為:

HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerMainFeatureControlFEATURE_LOCALMACHINE_LOCKDOWN

中的“iexplore.exe”項(xiàng),值為DWORD,設(shè)置為0。

大家一看就知道這個(gè)選項(xiàng)是與IE有關(guān)的,至于什么關(guān)系,我們先賣個(gè)關(guān)子,稍后再說(shuō)。先點(diǎn)擊OK,關(guān)閉注冊(cè)表編輯對(duì)話框。

好了,到這里我們支持Silverlight的Shell組件終于編輯完成了。好的,趕緊保存一下吧。不過(guò),我們?cè)趺丛赥arget Designer里使用這個(gè)組件呢?

這就要看下一節(jié)的了……



評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉