Option Explicit '************************************************************* 'API ウィンドウの位置やサイズ、表示を設定 '************************************************************* Declare Function SetWindowPos Lib "user32" _ (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, _ ByVal X As Long, ByVal Y As Long, _ ByVal cx As Long, ByVal cy As Long, _ ByVal wFlags As Long) As Long 'hWndInsertAfterに指定する値の定義 Const HWND_TOP = 0 '手前にセット Const HWND_BOTTOM = 1 '後ろにセット Const HWND_TOPMOST = -1 '常に手前にセット Const HWND_NOTOPMOST = -2 '常に手前を解除 'wFlagsに指定する値の定義 Const SWP_SHOWWINDOW = &H40 'ウィンドウを表示する Const SWP_NOSIZE = &H1 'ウィンドウのサイズを変更しない Const SWP_NOMOVE = &H2 'ウィンドウの位置を変更しない '//////////////////////////////////////////////////////////// ' API '------------------------------------------------------------ 'キーコード Public Const VK_ESCAPE = &H1B 'エスケープキー Public Const VK_PAUSE = &H13 'PAUSEキー Public Const VK_SHIFT = &H10 'SHIFTキー Public Const VK_CONTROL = &H11 'CONTROLキー '点のx座標とy座標を定義する構造体 Public Type POINTAPI X As Long Y As Long End Type '指定時間(ミリ秒)の待ち Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) '現在のマウスカーソルの位置座標を取得する Public Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long ' 指定位置にあるウィンドウのハンドルを取得 Public Declare Function WindowFromPoint Lib "user32.dll" _ (ByVal xPoint As Long, _ ByVal yPoint As Long) As Long 'ウィンドウのクラス名を取得 Private Declare Function GetClassName Lib "user32.dll" _ Alias "GetClassNameA" _ (ByVal hwnd As Long, _ ByVal lpClassName As String, _ ByVal nMaxCount As Long) As Long ' 親ウィンドウのハンドルを取得 Private Declare Function GetParent Lib "user32.dll" (ByVal hwnd As Long) As Long 'キー押下状態判定 Public Declare Function GetAsyncKeyState Lib "user32.dll" (ByVal vKey As Integer) As Integer '////////////////////////////////////////////////////////////////////// ' API ラッパー関数 '---------------------------------------------------------------------- Public Function GetTopParent(ByVal hwnd As Long) As Long ' ' 最上位の親ウィンドウのハンドルを取得 ' Dim rc As Long GetTopParent = hwnd Do rc = GetParent(hwnd) If rc <> 0 Then GetTopParent = rc hwnd = rc End If Loop While rc <> 0 End Function Public Function MyGetClassName(hwnd As Long) As String ' ' ウィンドウハンドルからクラス名を取得 ' Dim lngRc As Long Dim strBuffer As String * 128 ' クラス名をバッファへ取得 lngRc = GetClassName(hwnd, strBuffer, Len(strBuffer)) ' クラス名を表示 MyGetClassName = left(strBuffer, InStr(strBuffer, vbNullChar) - 1) End Function Public Sub DispTop(hwnd As Long) '最全面表示 SetWindowPos hwnd, HWND_TOPMOST, 0, 0, 0, _ 0, SWP_SHOWWINDOW Or SWP_NOMOVE Or SWP_NOSIZE End Sub Public Sub DispUntop(hwnd As Long) '最全面表示解除 SetWindowPos hwnd, HWND_NOTOPMOST, 0, 0, 0, _ 0, SWP_SHOWWINDOW Or SWP_NOMOVE Or SWP_NOSIZE End Sub