原文:
获取弹出式窗口(对话框)句柄
http://www.vbgood.com/thread-103057-1-1.html
昨天遇到了这个问题;碰巧今天在MSDN上看到了这方面的内容,记录下。 假设要获取 Notepad 的弹出消息框,那么可以这样做: Public Declare Function IsWindow Lib "user32" (ByVal hwnd As Long) As Long Public Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long Public Const GW_CHILD = 5 Public Const GW_HWNDFIRST = 0 Public Const GW_HWNDLAST = 1 Public Const GW_HWNDNEXT = 2 Public Const GW_HWNDPREV = 3 Public Const GW_OWNER = 4 Public Const GW_ENABLEDPOPUP = 6 Public Declare Function GetLastActivePopup Lib "user32" (ByVal hwndOwnder As Long) As Long Public hNotepad As Long, hPopup As Long '=========================================== hNotepad = FindWindow("Notepad", vbNullString) If IsWindow(hNotepad) Then 'method 1st hPopup = GetWindow(hNotepad, GW_ENABLEDPOPUP) Debug.Assert hPopup <> 0 'popup window found 'method 2ed hPopup = GetLastActivePopup(hNotepad) Debug.Assert hPopup <> hNotepad 'popup window found End If 复制代码 上面我认为是比较好的做法,当然也可以通过其它方法查找。 以后有新发现我会再添加的。 参考链接:http://msdn.microsoft.com/en-us/library/ms632595(v=vs.85).aspx