Option Explicit Public Type ACC_RECT pxLeft As Long pxTop As Long pxRight As Long pxBottom As Long End Type ' ' パラメータ値定義 文字情報取得 ' Public Const GS_ACC_INFO_NAME = 1 Public Const GS_ACC_INFO_VALUE = 2 Public Const GS_ACC_INFO_DESCRIPTION = 3 Public Const GS_ACC_INFO_DEFAULTACTION = 4 ' ' パラメータ値定義 数値情報取得 ' Public Const GS_ACC_NUM_ROLE = 1 Public Const GS_ACC_NUM_STATE = 2 Public Const GS_ACC_NUM_CHILDCOUNT = 3 Public Const GS_ACC_NUM_LOCATION = 4 Public Const GS_ACC_NUM_ID = 5 ' ' DLL内関数定義 ' '--------------------------------------------------------------- ' ポイント直下の文字列取得 '--------------------------------------------------------------- ' x,y : スクリーン座標(Pixcel) ' lpString : 文字列格納バッファアドレス ' nMaxCount: バッファサイズ ' ' 返却値 : 0:正常 -1:取得失敗 -2:バッファサイズオーバー ' Public Declare PtrSafe Function GetText Lib "GetText.dll" ( _ ByVal x As Long, _ ByVal y As Long, _ ByVal lpString As String, _ ByVal nMaxCount As Long) As Long '--------------------------------------------------------------- ' ポイント直下の全体文字列取得 '--------------------------------------------------------------- ' x,y : スクリーン座標(Pixcel) ' lpString : 文字列格納バッファアドレス ' nMaxCount: バッファサイズ ' ' 返却値 : 0:正常 -1:取得失敗 -2:バッファサイズオーバー ' Public Declare PtrSafe Function GetFullText Lib "GetText.dll" ( _ ByVal x As Long, _ ByVal y As Long, _ ByVal lpString As String, _ ByVal nMaxCount As Long) As Long '--------------------------------------------------------------- ' ステータスバーテキスト取得 '--------------------------------------------------------------- ' x,y : スクリーン座標(Pixcel) ' lpString : 文字列格納バッファアドレス ' nMaxCount: バッファサイズ ' ' 返却値 : 0:正常 -1:取得失敗 -2:バッファサイズオーバー ' Public Declare PtrSafe Function GetStatusText Lib "GetText.dll" ( _ ByVal x As Long, _ ByVal y As Long, _ ByVal lpString As String, _ ByVal nMaxCount As Long) As Long '----------------------------------------------------------- ' ' MSAA(Microsoft Active Accessibility)文字情報取得 ' ' x,y : スクリーン座標(Pixcel) ' lpString : 文字列格納バッファアドレス ' nMaxCount: バッファサイズ ' item : 取得情報種別 上記の「パラメータ値定義」参照 ' ' 返却値 : 0:正常 -1:取得失敗 -2:バッファサイズオーバー ' Public Declare PtrSafe Function GetAccInfo Lib "GetText.dll" ( _ ByVal x As Long, _ ByVal y As Long, _ ByVal lpString As String, _ ByVal nMaxCount As Long, _ ByVal item As Long) As Long '------------------------------------------------------------- ' MSAA 数値情報取得 '------------------------------------------------------------- ' x,y : スクリーン座標(Pixcel) ' item : 取得情報種別 上記の「パラメータ値定義」参照 ' ' 返却値 : >=0:数値情報 -1:取得失敗 -2:バッファサイズオーバー ' Public Declare PtrSafe Function GetAccNum Lib "GetText.dll" ( _ ByVal x As Long, _ ByVal y As Long, _ ByVal item As Long) As Long '------------------------------------------------------------- ' MSAA オブジェクト位置取得 '------------------------------------------------------------- ' x,y : スクリーン座標(Pixcel) ' lpRect : 位置情報を格納する構造体 ' メンバー pxLeft,pxTop,pxRight,pxBottom ' 左位置、上位置、右位置、下位置(Pixcel)がセットされる ' 返却値 : 0:正常 -1:取得失敗 -2:バッファサイズオーバー ' Public Declare PtrSafe Function GetAccLocation Lib "GetText.dll" ( _ ByVal x As Long, _ ByVal y As Long, _ ByRef lpRect As ACC_RECT) As Long '------------------------------------------------------------- ' Role値を文字列に変換 '------------------------------------------------------------- ' Role : GetAccNum で取得した値 ' lpString : 文字列格納バッファアドレス ' nMaxCount: バッファサイズ ' 返却値 : 0:正常 -1:取得失敗 -2:バッファサイズオーバー ' Public Declare PtrSafe Function GetAccRoleText Lib "GetText.dll" ( _ ByVal Role As Long, _ ByVal lpString As String, _ ByVal nMaxCount As Long) As Long '------------------------------------------------------------- ' オブジェクト種別取得 '------------------------------------------------------------- ' x,y : スクリーン座標(Pixcel) ' ' 返却値 : -1:取得失敗 0:不明 1:Simple Element 2:Real Object 3:Container ' Public Declare PtrSafe Function GetObjType Lib "GetText.dll" ( _ ByVal x As Long, _ ByVal y As Long) As Long '------------------------------------------------------------- ' ライセンスキー登録 '------------------------------------------------------------- ' 返却値 : 0:登録成功 -1:失敗 -2:不正ライセンス ' Public Declare PtrSafe Function RegistKey Lib "GetText.dll" ( _ ByVal LicenseKey As String) As Long '///////////////////////////////////////////////////////////////// '【Role】の意味 Private Const ROLE_SYSTEM_TITLEBAR = 1 Private Const ROLE_SYSTEM_MENUBAR = 2 Private Const ROLE_SYSTEM_SCROLLBAR = 3 Private Const ROLE_SYSTEM_GRIP = 4 Private Const ROLE_SYSTEM_SOUND = 5 Private Const ROLE_SYSTEM_CURSOR = 6 Private Const ROLE_SYSTEM_CARET = 7 Private Const ROLE_SYSTEM_ALERT = 8 Private Const ROLE_SYSTEM_WINDOW = 9 Private Const ROLE_SYSTEM_CLIENT = 10 Private Const ROLE_SYSTEM_MENUPOPUP = 11 Private Const ROLE_SYSTEM_MENUITEM = 12 Private Const ROLE_SYSTEM_TOOLTIP = 13 Private Const ROLE_SYSTEM_APPLICATION = 14 Private Const ROLE_SYSTEM_DOCUMENT = 15 Private Const ROLE_SYSTEM_PANE = 16 Private Const ROLE_SYSTEM_CHART = 17 Private Const ROLE_SYSTEM_DIALOG = 18 Private Const ROLE_SYSTEM_BORDER = 19 Private Const ROLE_SYSTEM_GROUPING = 20 Private Const ROLE_SYSTEM_SEPARATOR = 21 Private Const ROLE_SYSTEM_TOOLBAR = 22 Private Const ROLE_SYSTEM_STATUSBAR = 23 Private Const ROLE_SYSTEM_TABLE = 24 Private Const ROLE_SYSTEM_COLUMNHEADER = 25 Private Const ROLE_SYSTEM_ROWHEADER = 26 Private Const ROLE_SYSTEM_COLUMN = 27 Private Const ROLE_SYSTEM_ROW = 28 Private Const ROLE_SYSTEM_CELL = 29 Private Const ROLE_SYSTEM_LINK = 30 Private Const ROLE_SYSTEM_HELPBALLOON = 31 Private Const ROLE_SYSTEM_CHARACTER = 32 Private Const ROLE_SYSTEM_LIST = 33 Private Const ROLE_SYSTEM_LISTITEM = 34 Private Const ROLE_SYSTEM_OUTLINE = 35 Private Const ROLE_SYSTEM_OUTLINEITEM = 36 Private Const ROLE_SYSTEM_PAGETAB = 37 Private Const ROLE_SYSTEM_PROPERTYPAGE = 38 Private Const ROLE_SYSTEM_INDICATOR = 39 Private Const ROLE_SYSTEM_GRAPHIC = 40 Private Const ROLE_SYSTEM_STATICTEXT = 41 Private Const ROLE_SYSTEM_TEXT = 42 Private Const ROLE_SYSTEM_PUSHBUTTON = 43 Private Const ROLE_SYSTEM_CHECKBUTTON = 44 Private Const ROLE_SYSTEM_RADIOBUTTON = 45 Private Const ROLE_SYSTEM_COMBOBOX = 46 Private Const ROLE_SYSTEM_DROPLIST = 47 Private Const ROLE_SYSTEM_PROGRESSBAR = 48 Private Const ROLE_SYSTEM_DIAL = 49 Private Const ROLE_SYSTEM_HOTKEYFIELD = 50 Private Const ROLE_SYSTEM_SLIDER = 51 Private Const ROLE_SYSTEM_SPINBUTTON = 52 Private Const ROLE_SYSTEM_DIAGRAM = 53 Private Const ROLE_SYSTEM_ANIMATION = 54 Private Const ROLE_SYSTEM_EQUATION = 55 Private Const ROLE_SYSTEM_BUTTONDROPDOWN = 56 Private Const ROLE_SYSTEM_BUTTONMENU = 57 Private Const ROLE_SYSTEM_BUTTONDROPDOWNGRID = 58 Private Const ROLE_SYSTEM_WHITESPACE = 59 Private Const ROLE_SYSTEM_PAGETABLIST = 60 Private Const ROLE_SYSTEM_CLOCK = 61 Private Const ROLE_SYSTEM_SPLITBUTTON = 62 Private Const ROLE_SYSTEM_IPADDRESS = 63 '【State】の意味 Private Const STATE_SYSTEM_NORMAL = &H0 Private Const STATE_SYSTEM_UNAVAILABLE = &H1 '使用不可 Private Const STATE_SYSTEM_SELECTED = &H2 '選択されている Private Const STATE_SYSTEM_FOCUSED = &H4 'フォーカスされている Private Const STATE_SYSTEM_PRESSED = &H8 '押下されている Private Const STATE_SYSTEM_CHECKED = &H10 'チェック Private Const STATE_SYSTEM_MIXED = &H20 Private Const STATE_SYSTEM_READONLY = &H40 '読み取り専用 Private Const STATE_SYSTEM_HOTTRACKED = &H80 Private Const STATE_SYSTEM_ALERT_LOW = &H4000000 Private Const STATE_SYSTEM_ALERT_MEDIUM = &H8000000 Private Const STATE_SYSTEM_ALERT_HIGH = &H10000000 Private Const STATE_SYSTEM_DEFAULT = &H100 Private Const STATE_SYSTEM_EXPANDED = &H200 '展開されている Private Const STATE_SYSTEM_COLLAPSED = &H400 Private Const STATE_SYSTEM_BUSY = &H800 Private Const STATE_SYSTEM_FLOATING = &H1000 'フローティング Private Const STATE_SYSTEM_MARQUEED = &H2000 Private Const STATE_SYSTEM_ANIMATED = &H4000 Private Const STATE_SYSTEM_INVISIBLE = &H8000 '可視 Private Const STATE_SYSTEM_OFFSCREEN = &H10000 Private Const STATE_SYSTEM_SIZEABLE = &H20000 'サイズ変更可 Private Const STATE_SYSTEM_MOVEABLE = &H40000 '移動可 Private Const STATE_SYSTEM_SELFVOICING = &H80000 Private Const STATE_SYSTEM_FOCUSABLE = &H100000 'フォーカス可 Private Const STATE_SYSTEM_SELECTABLE = &H200000 '選択可 Private Const STATE_SYSTEM_LINKED = &H400000 'リンク Private Const STATE_SYSTEM_TRAVERSED = &H800000 Private Const STATE_SYSTEM_MULTISELECTABLE = &H1000000 '複数選択可 Private Const STATE_SYSTEM_EXTSELECTABLE = &H2000000 Private Const STATE_SYSTEM_HASPOPUP = &H40000000 Private Const STATE_SYSTEM_VALID = &H1FFFFFFF '///////////////////////////////////////////////////////////////////////// ' ' ラッパー関数 ' Public Function MyGetText(x As Long, y As Long) As String ' ' ポイント直下の文字列取得 ' Const MAX_SIZE = 512 Dim strBuf As String * MAX_SIZE Dim rc As Long MyGetText = "" rc = GetText(x, y, strBuf, MAX_SIZE) MyGetText = left(strBuf, InStr(strBuf, vbNullChar) - 1) End Function Public Function MyGetStatusText(x As Long, y As Long) As String ' ' ウィンドウステータスバー文字列取得 ' Const MAX_SIZE = 512 Dim strBuf As String * MAX_SIZE Dim rc As Long MyGetStatusText = "" rc = GetStatusText(x, y, strBuf, MAX_SIZE) MyGetStatusText = left(strBuf, InStr(strBuf, vbNullChar) - 1) End Function Public Function MyGetAccInfo(x As Long, y As Long, item As Long) As String ' ' MSAA(Microsoft Active Accessibility)文字情報取得 ' Const MAX_SIZE = 512 Dim strBuf As String * MAX_SIZE Dim rc As Long MyGetAccInfo = "" rc = GetAccInfo(x, y, strBuf, MAX_SIZE, item) MyGetAccInfo = left(strBuf, InStr(strBuf, vbNullChar) - 1) End Function Public Function MyGetFullText(x As Long, y As Long) As String ' ' MSAA(Microsoft Active Accessibility)数値情報取得 ' Const MAX_SIZE = 4096 Dim strBuf As String * MAX_SIZE Dim rc As Long MyGetFullText = "" rc = GetFullText(x, y, strBuf, MAX_SIZE) MyGetFullText = left(strBuf, InStr(strBuf, vbNullChar) - 1) End Function Public Function MyGetAccRoleText(Role As Long) As String ' ' オブジェクト種別(役割)取得 ' Const MAX_SIZE = 4096 Dim strBuf As String * MAX_SIZE Dim rc As Long MyGetAccRoleText = "" rc = GetAccRoleText(Role, strBuf, MAX_SIZE) MyGetAccRoleText = left(strBuf, InStr(strBuf, vbNullChar) - 1) End Function