http://[blog.csdn.net/pipisorry/article/details/46559139](http://blog.csdn.net/pipisorry/article/details/46559139)
**問題:**
如果要搜索的外部程序的窗口標題比較容易得到[],問題是比較簡單的。如果窗口的標題不固定或者根本就沒有標題,怎么得到窗口的類呢?
**Introduction**
Spy++是微軟出品的用來獲取Window窗口信息的一個小工具。Spy++中,最常用的一個功能,就是識別窗口。獲取當前鼠標位置; 獲取位于指定位置的窗口句柄; 獲取窗口類別; 獲取窗口內容或標題。
Spy++ (SPYXX.EXE) 提供系統的進程、線程、窗口和窗口消息的圖形視圖。
使用 Spy++ 可以執行下列操作: 顯示系統對象(包括進程、線程和窗口)之間關系的圖形樹。 搜索指定的窗口、線程、進程或消息。 查看選定的窗口、線程、進程或消息的屬性。 直接從視圖中選擇窗口、線程、進程或消息。 通過鼠標定位,使用查找程序工具選擇窗口。 使用復雜的消息日志選擇參數設置消息選項。 提示使用 Spy++ 時,在許多實例中都可以單擊鼠標右鍵顯示常用命令的彈出式菜單。命令是否可用取決于指針的位置。例如,如果在指向窗口視圖中的某項時單擊并且選定的窗口可見,則彈出式“突出顯示”菜單項將導致選定窗口的邊框閃爍,從而可以輕松地在屏幕上找到該窗口。
**spy++獲取子窗口的句柄**
spy++這個軟件來自VC++,裝好VC后,就可以在工具中看到。(沒安裝的也可以在網上下載得到[spy++.exe](http://bbs.anjian.com/forum.php?mod=attachment&aid=NTIyN3xiZWFmYjg5ZnwxNDM0NjgyMzMwfDB8NTI2NzE%3D))

spy++的使用:
啟動SPY++ > spy++的查找功能(菜單欄上望遠鏡圖標)

拖動耙心(黑色標記處)到這篇博客就可以看到以上內容
**handle**就是16進制的窗口句柄
**caption**就是窗口名lpWindowName
**class**就是窗口類名lpClassName
**Note**:點擊“確定”,可以看到了SPY++顯示窗口中的其它子內容。
[[Spy++的使用方法](http://bbs.anjian.com/thread-52671-1-1.html)]
# python中獲取子窗口的句柄
使用PyWin32庫,它是對windows接口的Python封裝,VC能做的它基本都行。
下載地址:[http://sourceforge.net/projects/pywin32/](http://sourceforge.net/projects/pywin32/),但不能直接點Download圖標,不然下下來是一個Readme.txt,點“[Browse All Files](http://sourceforge.net/projects/pywin32/files/ "Browse All Files")”尋找需要的版本(如amd64位對應win64)。
python使用win32gui截取某個窗口內容
~~~
import win32gui
from PIL import ImageGrab
import win32con
from Utility.Colors import DEFAULT, RED
hwnd = win32gui.FindWindow("MozillaWindowClass", "Spy++獲取子窗口的句柄 - 皮皮Blog - 博客頻道 - CSDN.NET - Mozilla Firefox")
if not hwnd:
print(RED, 'window not found!', DEFAULT)
else:
print(hwnd)
win32gui.ShowWindow(hwnd, win32con.SW_RESTORE) # 強行顯示界面后才好截圖
win32gui.SetForegroundWindow(hwnd) # 將窗口提到最前
# 裁剪得到全圖
game_rect = win32gui.GetWindowRect(hwnd)
src_image = ImageGrab.grab(game_rect)
# src_image = ImageGrab.grab((game_rect[0] + 9, game_rect[1] + 190, game_rect[2] - 9, game_rect[1] + 190 + 450))
src_image.show()
~~~
**Note**:得到Image圖像后可用show()方法,使用系統默認的圖像查看工具打開,方便調試,也可以用save(filename)保存成文件,對應的可以Image.open(filename)打開獲得。from:[http://blog.csdn.net/pipisorry/article/details/46559139](http://blog.csdn.net/pipisorry/article/details/46559139)
ref:[用Python實現Spy++](http://www.cnblogs.com/coderzh/archive/2010/05/02/python-cookbook-pyspy.html)
[獲取下一個窗口句柄](http://zhidao.baidu.com/link?url=Soo1WLAE0bihi999jlSXuiNAKnSo8iFcuNOm2lrIka8qz36f1qgC5gW6X5V5stIl1u-tAkZ-oWQKr6TDlKg0LM0buTEvmh4LYbd-ZyC2snS)[
](http://lixxu.iteye.com/blog/417218)
[Python使用win32api系統鉤子](http://lixxu.iteye.com/blog/417218)