新聞中心
如果使用SPI_GETOEMINFO參數(shù),我們可以獲得OEM信息,如果返回字符串中包括“Microsoft DeviceEmulator”,則表示當(dāng)前應(yīng)用程序運(yùn)行在模擬器中。

公司主營(yíng)業(yè)務(wù):成都網(wǎng)站建設(shè)、做網(wǎng)站、移動(dòng)網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。成都創(chuàng)新互聯(lián)是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來(lái)驚喜。成都創(chuàng)新互聯(lián)推出武鄉(xiāng)免費(fèi)做網(wǎng)站回饋大家。
CheckPlatform 程序編譯好后,會(huì)自動(dòng)加入到NK.bin 中。我們可以通過Command Shell,運(yùn)行應(yīng)用程序。調(diào)用Attach Device啟動(dòng)Windows CE操作系統(tǒng)后,選擇Target菜單中的Target Control(快捷鍵Alt+1),輸入”s chekplatform”,就可以運(yùn)行CheckPlatform程序。
好了,***看一下運(yùn)行結(jié)果:
修改操作系統(tǒng)的類型
上面的話題其實(shí)很多文章都討論過了。但是在實(shí)際工作中,我們會(huì)遇到一些平臺(tái)遷移的工作。我們會(huì)首先將 Windows Mobile的軟件在Windows CE上運(yùn)行,以驗(yàn)證功能。不過有些軟件檢測(cè)了操作系統(tǒng)類型,在不修改軟件代碼的情況下,我們是否可以在Windows CE上運(yùn)行檢測(cè)平臺(tái)類型的應(yīng)用程序呢?
Windows CE操作系統(tǒng)的Platform Type類型值是在BSP中被指定的,我們可以通過修改BSP中的Platform Type來(lái)改變系統(tǒng)的Platform Type。注意:這種情況只能出現(xiàn)在測(cè)試時(shí),不應(yīng)該修改實(shí)際產(chǎn)品的平臺(tái)類型,否則會(huì)引起很多安全性的問題。
我們打開Windows CE 6.0 R2的源代碼,位置在:
x:\WINCE600\PLATFORM\DEVICEEMULATOR\SRC\INC
我們修改的是DEVICEEMULATOR的代碼,如果是其他平臺(tái)的代碼,則去相應(yīng)BSP文件夾中的指定位置。在BSP的INC文件夾中,我們會(huì)找到一個(gè)ioctl_cfg.h文件。
在ioctl_cfg.h文件中,我們會(huì)找到下面的代碼:
- #if defined( project_smartfon )
- #define IOCTL_PLATFORM_TYPE (L"SmartPhone\0")
- #elif defined( project_wpc )
- #define IOCTL_PLATFORM_TYPE (L"PocketPC\0SSDK\0")
- #else
- #define IOCTL_PLATFORM_TYPE (L"DeviceEmulator")
- #endif
- #define IOCTL_PLATFORM_OEM (L"Microsoft DeviceEmulator")
Device Emulator的BSP通過編譯選項(xiàng)區(qū)分了不同的平臺(tái)類型,如果是Windows CE系統(tǒng),則Platform Type為DeviceEmulator。好了,我們可以通過修改IOCTL_PLATFORM_TYPE的值,來(lái)“欺騙”操作系統(tǒng),讓應(yīng)用程序認(rèn)為自己運(yùn)行在Pocket PC或Smartphone上。注意:因?yàn)閃indows Mobile和Windows CE的函數(shù)庫(kù)存在巨大差異,Windows Mobile的應(yīng)用程序在Windows CE上未必能夠直接運(yùn)行。
修改IOCTL_PLATFORM_TYPE之后,我們需要重新編譯BSP,才能夠完成Platform Type的修改。在Build菜單中選擇Advanced Build Commands中的Rebuild Current BSP and Subprojects。
我們可以編譯BSP和Subporject后,調(diào)用BuildRel和Makeimg生成新的NK.bin。這樣,我們就可以節(jié)省大量的重新編譯的時(shí)間。在我的機(jī)器上大概幾分鐘就完成了BSP的編譯,如果是重新Build操作系統(tǒng)的話,需要二十分鐘左右。
NK編譯成功后,選擇Attach Device,重新運(yùn)行系統(tǒng)和CheckPlatform程序,會(huì)得到下面的運(yùn)行結(jié)果:
***還需要提示一下,這種方法只對(duì)通過SystemParametersInfo API檢測(cè)Platform Type的應(yīng)用程序有效。如果軟件使用了其他方法檢測(cè)Platform Type的話,那就需要具體問題具體分析了。
更多關(guān)于Windows Embedded CE開發(fā)的文章,請(qǐng)參考“Windows Embedded CE 中國(guó)研發(fā)團(tuán)隊(duì)”的中文博客:http://blogs.msdn.com/wincechina/
當(dāng)前名稱:如何修改WindowsCE的平臺(tái)類型(下)
分享地址:http://fisionsoft.com.cn/article/ccejhgs.html


咨詢
建站咨詢
