天天看點

Visual Studio Spy++的使用

使用 Spy++

Spy++ (SPYXX.EXE) 是一個基于 Win32 的實用工具,它提供系統的程序、線程、視窗和視窗消息的圖形視圖。使用 Spy++ 可以執行下列操作:

顯示系統對象(包括程序、線程和視窗)之間關系的圖形樹。

搜尋指定的視窗、線程、程序或消息。

檢視標明的視窗、線程、程序或消息的屬性。

直接從視圖中選擇視窗、線程、程序或消息。

通過滑鼠定位,使用查找程式工具選擇視窗。

使用複雜的消息日志選擇參數設定消息選項。

提示   使用 Spy++ 時,在許多執行個體中都可以單擊滑鼠右鍵顯示常用指令的彈出式菜單。指令是否可用取決于指針的位置。例如,如果在指向視窗視圖中的某項時單擊并且標明的視窗可見,則彈出式“突出顯示”菜單項将導緻標明視窗的邊框閃爍,進而可以輕松地在螢幕上找到該視窗。

啟動 Spy++

從“工具”菜單中選擇“Spy++”。

注意   隻能運作一個 Spy++ 副本。試圖運作 Spy++ 的其他副本會将目前運作的 Spy++ 置于頂層。

Spy++ 是一種隻讀程式。使用 Spy++ 不會更改程式操作,但可能降低程式的執行速度。

使用 Spy++

Spy++ 具有一個工具欄和若幹個超級連結,有助于您更快地工作。它還提供“重新整理”指令以更新活動視圖,提供“視窗查找程式工具”以使監視更為容易,提供“字型”對話框以自定義視圖視窗。另外,Spy++ 還儲存和還原使用者首選項。

有兩種實用工具與 Spy++ 類似:PView(顯示有關程序和線程的詳細資訊)以及 DDESPY.EXE(動态資料交換 (DDE) 消息的監視程式)。

Spy++”工具欄

該工具欄出現在菜單欄下面。它提供打開新視圖、啟動或停止消息流顯示、更改消息流選項、清除消息流視窗和查找視窗的快捷指令。可以使用“視圖”菜單上的“工具欄”指令顯示或隐藏工具欄。

按鈕 效果

 建立一個視窗以顯示系統中的所有視窗和控件的樹視圖。請參見“視窗”視圖。

 建立一個視窗以顯示系統中所有程序的樹視圖。請參見“程序”視圖。

 建立一個視窗以顯示系統中所有線程的樹視圖。請參見“線程”視圖。

 建立一個視窗以顯示視窗消息。此按鈕調用“消息選項”對話框,使您除選擇其他選項以外,還選擇将顯示其消息的視窗。請參見“消息”視圖。

 啟動消息記錄并顯示消息流。僅當“消息”視窗處于活動狀态(具有焦點)時,此按鈕才可用。請參見啟動和停止消息日志顯示。

 停止消息記錄和消息流的顯示。僅當“消息”視窗處于活動狀态(具有焦點)時,此按鈕才可用。請參見啟動和停止消息日志顯示。

 顯示“消息選項”對話框。使用此對話框選擇視窗和消息類型以供檢視。僅當“消息”視窗處于活動狀态(具有焦點)時,此按鈕才可用。請參見選擇“消息選項”。

 清除活動“消息”視窗的内容。僅當“消息”視窗處于活動狀态(具有焦點)時,此按鈕才可用。

 打開“查找視窗”對話框,這将使您選擇一個視窗以檢視消息或查找屬性。請參見視窗查找程式工具。

 搜尋目前視圖以查找比對的視窗、程序、線程或消息。

 搜尋目前視圖以查找下一個比對的視窗、程序、線程或消息。僅當有效搜尋結果不止一個時,此按鈕(及相關的菜單項)才可用。例如,在視窗樹中使用視窗句柄作為搜尋條件時,将産生唯一的結果,因為該視窗樹中隻有一個具有此句柄的視窗。在本執行個體中,“查找下一個”不可用。

 搜尋目前視圖以查找上一個比對的視窗、程序、線程或消息。僅當有效搜尋結果不止一個時,此按鈕(及相關的菜單項)才可用。例如,在視窗樹中使用視窗句柄作為搜尋條件時,将産生唯一的結果,因為該視窗樹中隻有一個具有此句柄的視窗。在本執行個體中,“查找上一個”不可用。

視窗查找程式工具

使用“視窗查找程式工具”可以查找標明視窗的屬性。“查找程式工具”可以找到禁用的子視窗,并且如果禁用的子視窗互相重疊,還可以辨識要突出顯示的視窗。

查找要監視的視窗

排列視窗以便使 Spy++ 和主題視窗可見。

從“監視”菜單中選擇“查找視窗”打開“查找視窗”對話框。

将“查找程式工具”拖到所需的視窗。拖動該工具時,對話框中将顯示視窗的詳細資訊。

- 或 -

如果知道所需視窗的句柄(例如,從調試器中),請在“句柄”框中鍵入該句柄。

在“顯示”下選擇“屬性”或“消息”以選擇要顯示的資訊的類型。

單擊“确定”。

用“查找視窗”顯示屬性

提示   為減少螢幕混亂,請選擇“查找視窗”對話框中的“隐藏 Spy”選項。此選項将移除主 Spy++ 視窗,并使“查找視窗”對話框顯示在其他應用程式的上面。當單擊“确定”或“取消”時,或者當清除“隐藏 Spy++”選項時,Spy++ 主視窗将還原。

展開和折疊 Spy++ 樹

可以使用兩種方法展開和折疊“視窗”、“程序”以及“線程”視圖:在視窗中單擊圖示,或者使用“目錄樹”菜單。樹中的 + 和 – 圖示與它們在 Visual C++ 項目視窗中的作用相同。

“目錄樹”菜單包含下列四種指令:

菜單指令 說明

展開一層 将目前標明的項展開到下一個級别。

展開分支 完全展開目前標明的項。

全部展開 完全展開視窗中所有的項。

折疊 完全折疊目前標明的項。

提示   如果展開一個程序,将會看到該程序擁有的全部線程。如果展開一個線程,将會看到它所擁有的全部視窗的清單。

展開或折疊 Spy++ 樹

突出顯示“視窗”、“程序”或“線程”視圖中的一個項。

從“目錄樹”菜單中選擇一條展開或折疊指令。 

繼續閱讀