2013年12月10日 星期二

WE8S 開機進入客戶程式(Shell Launcher)


Windows Embedded 8 Standard 中設定Custom Shell設定方式,我自是使用EEF中的Shell Launcher 其好處是本身Application可繼承Shell的特性,在WE8S中我們可以針對Application被使用者關閉所對與的行為作出對與的動作.

在客製化Shell 的步驟中我們針對OOBE 與 Shell launcher 所需要修改的參考作以下範例:
1.設定OOBE自動化
Product->Embedded Core 中設定”7 OOBE System”
在OOBE 屬性中設定下列參數
HideWirelessSetupInOOBE = true
HideOEMRegistrationScreen = true
HideLocalAccountScreen = true
HideOnlineAccountScreen = true
HideEULAPage = true
NetworkLocation = work
ProtecYourPC = 1

2.Shell Launcher 元件設定
展開Features->Shell->Shell Launcher 設定”7 OOBE System”
  Shell -> explorer.exe
加入不用的UserSettings進系統中,並指定開啟的Shell 的路徑.


展開User 項目作以下設定:
AccountName -> WorkShopUser
Shell -> C:\users\CustomDesktopShell\CustomDesktopShell.exe
DefaultReturnCodeAction -> 0
Key -> 1

其中值得一提的是DefaultReturnCodeAction ,主要是控制Shell屬性的參數
對於Application 被關閉是作的行為設定,我們預設為"0" 當Application被關閉時系統自動將Application重啟,可使Application 一直顯示在螢幕上.
                                   

2013年11月28日 星期四

如何刪除Windows Embedded 8 Standard 上的 Module

最近在備課時發現怎麼一堆人只在談如何使用Designer Module 來建立Module 加入至Catalog 之中,但是沒有人教你怎麼移除它,每作一次就多一個元件終於我受不了,於是我研究了一個下午終於有個驚人的發現Windows Embedded 8 Standard中有個隱藏的工具Catman.exe 看名字應該不難猜到Catalog management 功能.

1.依照慣例我還是要教大家怎麼匯入一個Module 至Catalog( 之前我教過MD 如何製作了,請爬文),在File->Import 選擇匯入Module  並將之前作好的emd檔匯入.

2.匯入完成後會出現成功訊息,如下

3.按F5 重新整理一下Catalog ,你會發現 剛剛匯入的Module會存在於Custom Modules目錄之中

4.開啟檔案總管,我們看一下匯入的Module 的檔案都去了那裡了.
  基本上路徑會在C:\Windows Embedded Catalog\6.2\9200.16384\x86\modules\FeaturePack之中 (路徑很重要請記起來),下面紅框就是剛剛匯入的Module 的名稱.

5.接著重頭戲來了,先開啟一個command line 視窗,並將路徑切換至C:\Program Files (x86)\Windows Embedded 8 Standard\Toolset\Embedded Tools.
開始來移除剛剛我們匯入的Module ,我們使用以下的指令
catman /remove "C:\Windows Embedded Catalog\6.2\9200.16384\x86\modules\FeaturePack\Win8_App~0000000000000000~x86~~1.0.0.0.emd" "c:\windows embedded catalog"

PS:以上路徑分成四個顏色  cataman /remove "存放emd的路徑"  "Catalog 的目錄"
以上說了一堆 只要看的懂這一行指令就好了.

6.成功移除後 系統會提示 Catalog 有更動,按F5 refresh 一下Catalog.

7.檢查一下剛剛Win8_App 果然不見了,連帶的Custom Modules 目錄也被刪除了

8.就是這麼簡單 但是就是沒有人研究,這個解開了許多人多年的疑問了.

2013年11月5日 星期二

開發Windows Embedded Compact 2013 你一定要知道的事

在開發Windows Embedded Compact 2013 一定要先知道你相使用的版本,因為這個關係到License 價格,在目前Windows Embedded Compact 2013 這次Release 出來共三個版本

一、Windows Embedded Compact 2013 three of SKU:
◦Windows Embedded Compact 2013 Runtime (General Embedded)
◦Windows Embedded Compact 2013 Runtime (Entry)
◦Windows Embedded Compact 2013 Runtime (NR)

價格部份請找Microsoft 代理商詢問吧!

二、選擇你的開發平台,在開發Windows Embedded Compact 非常重要的關鍵因素就是Driver,而其中最重要的就是BSP(Board Support Package) ,沒有BSP 就沒有Windows CE.
所以如選擇H/W Platform 是否支援Windows CE OS 就是非常重要了.
其實Microsoft 有建立一平台提供客戶, BSP與H/W Platform 支援查詢網址:
http://www.microsoft.com/windowsembedded/en-us/bspcatalog.aspx


當你決定好這二件事就可以放心的去開發你的Windows Embedded Compact 2013的產品了.

Windows Embedded 8 Standard 教育訓練( WE8S/ WES8)


久違了距離上次WE8S 課程已也有半年之久了,應客戶要求希望我們再次舉辦Windows Embedded 8 Standard 教育訓練課程,本次的課程預定在12/6 舉行。

這次課程有我會新增我在Microsoft西雅圖 拿到的資料,希望能夠充實這次的課程內容,
有興趣的人,可以下載E-DM 看看課程資訊。

課程:Windows Embedded 8 Standard (進階)
時間:2013/12/6 9:30~17:00
地點:台北巨匠認証中心教育 (公園路)
課程內容:下載E-DM


2013年10月23日 星期三

Windows Embedded 8.1 Industry SKU 介紹

10/18宣佈微軟的Windows 8 Pro 升級成8.1產品中,Windows Embedded Industry 8.1也是名列其中的產品,今日也拿到空運來台的WE Industry 8.1 OPK 光碟了,可以跟代理商申請了.

在微軟的產品中你會在SKU List 中看到這二類產品就是Windows Embedded Industry 8.1 Pro 與 Windows Embedded Industry 8.1 Pro Retail,那這兩類產品有何不同呢? 實際上這個二SKU功能一模一樣但價格是有較便宜的,差別是Retail SKU 限定設備種類,如果你能夠符Retail License term,公司是可以省一筆License的費用.

以下簡單分類,實際上License term有應明確的定義(License term這要跟軟微代理商要的)
  • Windows Embedded 8.1 Industry Pro. ( 正常安裝所使用的版本)
  • Windows Embedded 8.1 Industry Pro (Retail).  限定於POS、 kiosks、 scanners等設備
  • Windows Embedded 8.1 Industry Enterprise.  需要額外購買Volume Licensing 來啟動Enterprise Feature.
另外Windows Embedded 8.1 Industry Enterprise為透過使用Volume Licensing 所啟動的功能,
啟動後系統會增加下列四項Enterprise Features. 如下表: 

2013年10月22日 星期二

如何選正確的Windows CE開發程式語言

在Windows CE 軟體開發中,初學者常常遇到開發時選擇何種語言的問題,由於嵌入式軟體常常會需要與硬體作溝通,撰寫程式上可沒有辦法只用一種語言就可達成,所以今天來探討那些程式語言與Windows CE各元件的配合.

我們在程式設計上分成Native and Managed 二類:

  • Managed code 主要是使用.Net Compact Framework所撰寫的成的程式,在設計上簡單上手,但於執行效能上就沒有Native來的優.
  • Native Code 主要以Win32 API所撰寫的程式,Win32撰寫程式於資源用量少、執行速度快但缺點就是比較不易上手。
所以我們可能看到在OAL、Driver、Services 都建議使用Native 的方式來作開發.


C# (Managed)
VB (Managed)
C/C++ (Native)
Assembler

 (Native)
OAL


WIN32
WIN32
Drivers


WIN32

Services


WIN32

Application
.NET CF
.NET CF
WIN32, MFC, ATL, WTL, STL

Shell
.NET CF
.NET CF
WIN32, MFC, ATL, WTL, STL

ICS
(Internet Client Services)
.NET CF
.NET CF
WIN32, MFC, ATL, WTL, STL

2013年10月16日 星期三

於sysprep 後自動輸入產品金鑰

在之前教學中我們會利用Sysprep來作最後的打包動作,但在第一次開機的時候會需要我們輸入金鑰,但金鑰何其重要如何KEY 讓客戶知道那不就會被大量安裝. 特別的是Windows Embedded OS 產品金鑰是使用ePKEA,只要一組Key就可以多次啟動,所以這個步驟一定不能省略.
其實這步驟只要多作一個Answer files,在執行sysprep時直接將金鑰作為參數輸入就可在OOBE時省略使用者輸入金鑰這個步驟.

在Answer File的製作會使用到一個工具 Windows System Image Manager (WSIM),工具是Free可直接Microsoft website 下載,這部份我之前說明過.


1.開啟WSIM 後,直接加入 在Windows PE - | amd64_Microsoft-Windows-Setup_neutral | UserData | ProductKey


2.加入 在Pass 4: Specialize - | amd64_Microsoft-Windows-Shell-Setup_neutral | ProductKey

請將xxxxx-xxxxx-xxxxx-xxxxx-xxxxx 換成你的序號輸入

3.儲存你的Answer File

4.於設備上執行Sysprep /generalize /oobe /shutdown /unattend:c:\Untitle_Windows8_64.xml 進行設備封裝.

5.如此一來這個封裝的Image,在第一次啟動後就會跳過輸入Product key的步驟.