﻿# WP7 修練 DAY 03：Windows Phone 7 模擬器的操作密技

開發 Windows Phone 7 應用程式，免不了花費大量的時間在模擬器上測試，所以熟悉模擬器的使用與操作還挺重要的。像是在模擬器裡操作應用程式時，在預設的情況下不能用鍵盤來輸入資料，所以輸入網址或文字都很麻煩，只能用滑鼠點選虛擬鍵盤，但本文將會提到如何開啟用鍵盤輸入的密技，超實用。除了鍵盤操作技巧外，也會介紹這次 WP7 SDK 7.1 帶來的新功能，相信對每天都在使用模擬器的人來說，一定會有很大的幫助。

**§ Windows Phone 7 模擬器的基本操作（含 Windows Phone 7.1 SDK 帶來的新增功能）**

**基本工具介紹**

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/cee2074038604673dab6-image_1210.png)

這些基本功能我依照標號進行解說：

1.  關閉模擬器
2.  將模擬器最小化
3.  向左翻轉 90°
4.  向右翻轉 90°
5.  將視窗調整至最適大小
6.  可任意調整視窗大小至指定的大小
7.  開啟附加工具視窗 (Additional Tools)

**附加工具介紹**

這裡的 **附加工具視窗** (Additional Tools) 是 Windows Phone SDK 7.1 新增的功能，可讓你在模擬器上模擬出更多的手機操作行為，其中分成三個主要的功能：Accelerometer (加速度感應)、Location (位置服務)、Screenshot (手機畫面擷取)，依序介紹如下：

**● Accelerometer (加速度感應)**

透過這個工具可以讓你任意移動手機的角度，就好像你拿手機在手上把玩一樣，你可以用滑鼠點選畫面上的紅點任意調整手機的角度或方位，也可以透過左下角的下拉選單可以讓你選擇手機到底是 “直立” (Standing) 還是 “平躺” (Flat)、”垂直” (Portrait) 還是 “水平” (Landscape)，若要回復預設值可按下 “Reset” 鍵即可。

在 Accelerometer 頁籤的右下角有個 Recorded Data 區塊，預設只有一組預先定義好的手機晃動過程紀錄，其名稱為 **Shake**，當按下 **Play** 按鈕之後，就會依據預先錄製的「手機晃動過程」進行模擬，預設的 **Shake** 會執行 4.537 秒，用於模擬手機被搖晃的過程。

[![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/5ad97e7e672aa7332860-image_thumb_75.png)](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/0b59f088f28e8929e4dc-image_1211.png)

而這個預先錄製好的 **Shake** 項目，其實只是一個很簡單的 XML 檔，並放置在以下目錄，並取名為 Shake 檔案（注意：此檔案沒有副檔名，但其內容為 XML 格式）：

```
C:\Program Files (x86)\Microsoft XDE\1.0\sensordata\acc
```

此檔案內容如下，格式也非常簡單，相信開發人員看到其內容就知道如何修改。其中 x, y, z 屬性代表的是手機當下所處的位置 (這是三維空間的座標)，而 offset 則是該點的出現時間差，單位為豪秒 (ms)。

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/dec67b82f9885904647a-image_1212.png)

若要自訂這個檔案的內容，可以很單純的複製貼上該檔案，再對 XML 進行修正，修正完後重新開啟 Additional Tools 視窗才會看到下拉選項出現新的項目：

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/89e8136b4cb0734a1b89-image_1213.png)

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/582deb554ff3820cf039-image_1214.png)

如果有人能夠手動調整這麼繁雜的數據，那我真的服了他，這似乎不是人類該做的事。所以你如果想客製化預錄一些手機晃動的過程，建議可以參考【Custom accelerometer motions for the Windows Phone emulator】文章所附的 App，透過實體手機進行錄製手機晃動的過程，最後再將錄製的 XML 檔案取出，取出後再將檔案複製到 C:\\Program Files (x86)\\Microsoft XDE\\1.0\\sensordata\\acc 目錄即可！

**● Location (位置服務)**

位置服務預設會出現 Bing Map 地圖，用於模擬 GPS 感應器所傳給 App 的資料，在地圖上可以搜尋、放大、縮小，也可以設定當選定地點時要隔多久才更新給 App 知道 (預設為 1 秒)，這裡有個重點，就是你必須在地圖上點選位置，點選過程會出現標號，這時新的座標資料才會傳給 App，否則你光是移動地圖是不會模擬位置異動的。

當然，你也可以將這些已釘選的資料儲存起成 XML 檔（畫面上方有個儲存圖示），下次可以透過 Recorded Data 區塊的 Load 按鈕重新載入這些先前點選過的地點。例如我就把大台北地區先儲存下來，每次重開模擬器就可以快速的載入，不用每次都重新搜尋 taipei 才能找到到座標。

[![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/0c6995841ea41d99ac05-image_thumb_76.png)](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/6bef744f657f541c9657-image_1215.png)

**● Screenshot (手機畫面擷取)**

此功能是為了方便使用者擷取手機的執行畫面，因為在應用程式上架到 Windows Marketplace 時，提供畫面圖示是必要的步驟之一，此舉可以方便開發人員輕鬆的擷取畫面圖片下來，你只要點選 Capture 就能拍圖、點選 Save 就能將圖片另存新檔。（備註：儲存的圖片大小固定為 480x800 ）

[![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/fb6a33090f23dfc44931-image_thumb_77.png)](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/82ed350636e86417c176-image_1216.png)

注意：若你按下 Capture 按鈕後出現如下圖最下方的警告標示，那就代表你並沒有將模擬器的顯示大小調整到 100% 的等級，所以這時所拍攝(Capture)到的畫面解析度會變差，建議先透過本文 **基本工具介紹** 的第 6 點所介紹的功能，先將模擬器視窗調整到 100% 再進行拍攝！

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/6c260216eb56cd8a661e-SNAGHTML2b162e42.png) 

**§ 透過 PC 鍵盤來控制模擬器內的應用程式操作**

**1\. 啟用鍵盤輸入功能**

在模擬器裡操作應用程式時，在預設的情況下不能使用 PC 鍵盤來輸入資料，經常都會想說如果能透過 PC 的鍵盤來輸入網址那該有多好！後來才發現，原來這是可以的，啟用的步驟如下：

1\. 先用滑鼠點擊要輸入的位置

2\. 此時按下 PC 鍵盤的 PageUp  鍵 (也就是在 Home 鍵的右邊那一顆)，此時就會開啟鍵盤輸入的功能，並關閉虛擬鍵盤。

若要重新開啟虛擬鍵盤（意即關閉 PC 鍵盤輸入），請依據以下步驟操作：

1\. 先用滑鼠點擊模擬企畫面中任意位置 (注意: 一定要先用滑鼠點一下)

2\. 此時按下 PC 鍵盤的 PageDown 鍵 (也就是在 End 鍵的右邊那一顆)，此時就會關閉鍵盤輸入的功能，下次再點擊文字輸入方塊時就會開啟虛擬鍵盤了。

**2\. 啟用虛擬相機功能**

模擬器上原來是可以模擬「相機功能」的耶，你只要按下 F7 鍵就能**啟動相機**，只是他並沒有真的鏡頭，也不會有什麼有趣的畫面，他只會在一個全白的畫面上出現一個黑色方塊，並繞著畫面四個邊一直移動（這樣是為了避免你拍到相同的畫面），此時你用滑鼠在畫面上點一下左鍵就能拍照，或是再次按下 F7 鍵也能**拍照**，也可以連續按下 F7 鍵**連續拍照**，拍完照之後若要看之前拍攝的照片，可以用滑鼠往下拖曳畫面即可看到先前拍攝的照片。

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/8765cddbe866955e2f19-SNAGHTML2b20ec53.png)

**3\. 其他快速鍵**

F1 鍵：模擬按下手機上實體的 Back 按鈕

F2 鍵： 模擬按下手機上實體的 Home 按鈕 ( 或也可按下 PC 鍵盤的 Windows 鍵 )

F3 鍵： 模擬按下手機上實體的 Search 按鈕

F9 鍵： 調大聲

F10 鍵： 調小聲

F11 鍵： 音樂播放控制：播放/停止

Pause 鍵：遺失目前所在控制項的焦點 (Blur)

**今日修練總結**

正所謂[工欲善其事，必先利其器](http://baike.baidu.com/view/161182.htm)，瞭解手邊常用的工具是非常重要的一件事，當我們熟悉常用的 Windows Phone 7 模擬器，在日後的開發工作上必能更清楚的掌握進行模擬測試的技巧，尤其是對開發 Accelerometer (加速度感應) 與 Location (位置服務) 的人來說，有了這些附加工具真的可以減少開發人員許多實機測試的時間。

另外，由於將 WP7 應用程式上架至 Windows Marketplace 必須要擷取應用程式執行時的畫面，且大小限定為 480x800，以往因為沒有 Screenshot (手機畫面擷取) 功能，開發人員必須要另外安裝畫面擷取軟體，所以經常有人擷取了錯誤的話面，以致於上架的過程發生驗證失敗的情況，所以本次新增的 Screenshot 功能除了方便擷取螢幕畫面外，也減少了上架過程可能遇到的錯誤。

**相關連結**

-   Custom accelerometer motions for the Windows Phone emulator
-   wp7 record your own accelerometer data for testing
-   [Real keyboard with WP7 Emulator](https://www.ghanshani.com/windows%20phone/real-keyboard-with-wp7-emulator/)
-   [話說 Windows Phone 7 模擬器還真好玩](https://dotblogs.com.tw/alexchuo/2010/08/26/17422)
