了解句柄
在 Windows 中,窗口可以有許多種。窗口可以是屏幕上的一塊矩形封閉區(qū)域,比如您熟悉的應用程序窗口。窗體上的控件(例如列表框或滾動條)也可以是窗口,但并不是所有類型的控件都是窗口。桌面上的圖標和桌面本身也是窗口。
因為所有這些類型的對象都是窗口,所以 Windows 可以用類似的方式處理它們。Windows 給每個窗口一個唯一的句柄,通過句柄操縱該窗口。許多 API 函數可返回句柄或者接受句柄作參數。
創(chuàng)建窗口時,Windows 給它指派一個句柄,窗口消失后句柄被釋放。雖然句柄在窗口的整個生存期內保持不變,但不能保證某窗口在被損壞并重新創(chuàng)建后還使用原來的句柄。所以,如果在變量中存儲了一個句柄,請記住窗口損壞后句柄就失效了。
例如 GetActiveWindow 函數就可以返回窗口的句柄,這里的窗口是一個當前活動的應用程序窗口。GetWindowText 函數接受窗口的句柄,如果該窗口有標題,則返回標題。下面的過程用 GetActiveWindow 返回活動窗口的句柄,用 GetWindowText 返回該窗口的標題:
Declare Function GetActiveWindow Lib "user32" () As Long
Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" _
(ByVal Hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Function ActiveWindowCaption() As String
Dim strCaption As String
Dim lngLen As Long
' 創(chuàng)建由空字符填充的字符串。
strCaption = String$(255, vbNullChar)
' 返回字符串長度。
lngLen = Len(strCaption)
' 調用 GetActiveWindow,返回活動窗口的句柄,
' 把句柄連同字符串和字符串長度一起傳遞給 GetWindowText。
If (GetWindowText(GetActiveWindow, strCaption, lngLen) > 0) Then
' 返回 Windows 寫到字符串中的值。
ActiveWindowCaption = strCaption
End If
End Function
GetWindowText 函數有 3 個參數:窗口句柄;準備接受窗口標題的 NULL 結束字符串;以及該字符串的長度。
(責任編輯:admin)
- ·API函數詳細解釋
- ·Access從剪切版里復制和粘貼數據
- ·Access利用api實現(xiàn)打開/關閉光驅
- ·應用程序開機自動啟動(注冊表操作技巧
- ·Access VBA 判斷網絡是否連通的多種辦
- ·什么是ADP,了解ADP的優(yōu)缺點
- ·優(yōu)秀產品大全--通用票據打印軟件(新)
- ·[技巧分享]多條Shell語句執(zhí)行導致判斷
- ·在access中可以調用API函數GetFileInfo
- ·Access API集中營--增加臨時使用的字體
- ·API ShellExecute 功能說明及應用示例
- ·在VB中使用API函數(什么是API? )
- ·API實現(xiàn)完美的圖片出現(xiàn)效果(轉)
- ·API 設置調整系統(tǒng)當前時間
- ·如何檢測以及設置鍵盤狀態(tài)
- ·不關閉當前數據庫COPY當前數據庫