●概要●
宣言文 Declare Function GetClassName Lib "user32" Alias "GetClassNameA"
(ByVal hwnd As Long , ByVal lpClassName As String , ByVal nMaxCount
As Long) As Long
設定項目 内容
hwnd ウィンドウハンドルを指定[省略不可]
lpClassName クラス名を取得する固定長文字列型変数を指定[省略不可]
nMaxCount クラス名を取得する変数の固定長文字列型変数の長さを指定
[省略不可]
引数で指定したウィンドウハンドルを持つウィンドウが属するウィンドウクラス名を引数として返します。
戻り値は読み込んだバイト数で、失敗時には「0」を返します。
引数には固定長文字列型変数を指定し、取得した固定長文字列型変数の値からLeft関数などの文字列操作関数を使って、クラス名を取得します。
次のコードは、フォアグラウンドウィンドウの属するウィンドウクラス名をメッセージダイアログで表示するサンプルです。
●サンプル●
Private Declare Function GetForegroundWindow _
Lib "user32" () As Long
Private Declare Function GetClassName _
Lib "user32" Alias "GetClassNameA" _
(ByVal hwnd As Long _
, ByVal lpClassName As String _
, ByVal nMaxCount As Long) As Long
'ウィンドウハンドルからクラス名を取得する
Sub Sample()
Dim myHwnd As Long
Dim myFixClassName As String * 255
Dim myClassName As String
'フォアグラウンドウィンドウのウィンドウハンドルを取得
myHwnd = GetForegroundWindow()
'フォアグラウンドウィンドウのクラス名を取得して表示
GetClassName myHwnd, myFixClassName, Len(myFixClassName)
myClassName _
= Left$(myFixClassName, InStr(myFixClassName, vbNullChar) - 1)
MsgBox myClassName
End Sub
●補足1●
フォアグラウンドウィンドウとは、ユーザーが操作できるウィンドウ(アクティブウィンドウ)のことです。
●補足2●
戻り値を必要としない場合には、Subプロシージャとして宣言してもかまいません。
Declare Sub GetClassName Lib "user32" Alias "GetClassNameA"(ByVal hwnd
As Long , ByVal lpClassName As String , ByVal nMaxCount As Long)