check ShowWindow API

在 windows 下調試窗口相關的代碼時, 有時候需要檢查一個窗口爲什麼被顯示/隱藏. 歸根結底顯示/隱藏窗口都是通過調用 ShowWindow/SetWindowPos 這兩個 API 來實現的. 這裏提供的腳本本質上就是在這兩個 API 上放斷點. trace 出窗口句柄以及參數. 看腳本:

 

 

將文件保存爲 chkshowwnd 到 windbg 安裝目錄. 在 windbg 中這樣調用:

 

$$>a<chkshowwnd [hwnd] 

 

如果不指定窗口句柄, 則會顯示所有的 ShowWindow/SetWindowPos 調用. 一般你會發現這兩個 API 調用得太多了. 因此, 你可以指定你想關注的窗口句柄, 這樣, 在這個窗口被顯示/隱藏時, windbg 會停下來, 你就可以檢查調用棧了.

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章