POSACC関数

本ページには広告が含まれています。

座標位置の文字情報を取得します。

構文
  1. UString = POSACC( ID, クライアント座標X, クライアント座標Y, モード )
引数
ID (Integer)必須
Windowを識別するID (スクリーン全体の場合は 0)
座標 (Integer)必須
クライアント座標 (ID= 0 の場合はスクリーン座標)
モード (#posacc = 0)省略可
0
(デフォルト) ACC_ACCの実行、取得ができなければACC_API を実行
ACC_ACC
表示文字の取得 (アクセシビリティ経由)
ACC_API
DrawText, TextOutなどのAPIをトラップ(64bitアプリNG)
ACC_NAME
名前(アクセシビリティ経由)
ACC_VALUE
値(アクセシビリティ経由)
ACC_ROLE
役割(アクセシビリティ経由)
ACC_STATE
状態(アクセシビリティ経由)
ACC_DESCRIPTION
説明(アクセシビリティ経由)
ACC_LOCATION
X,Y,幅,高さ(アクセシビリティ経由)
ACC_BACK
ウィンドウをアクティブ化しない (他モードに付加して使用)
戻り値
取得した文字(情報)

クライアント座標

クライアント座標とはアプリケーションの左上を基準とした座標で、下図の緑色の矢印の始点となる座標のことです。

下図の破線の交点にあるカーソル位置のクライアント座標は、特殊変数であるG_MOUSE_*のスクリーン座標(紫色の矢印)とSTATUS関数でカーソル下にあるウィンドウのクライアント領域の座標(赤色の矢印)を使って求めることができます。

クライアント座標

まずX成分だけに注目してみると、赤色矢印と緑色矢印の和が紫色矢印に等しいことから以下の式が成り立ちます。

UWSC

求めたいのはクライアント座標であるcxなので、この方程式をcxについて解くと以下のようになります。

UWSC

次にY成分について見ると、X成分と同じように以下の式が導き出されます。

UWSC

cxのときと同様、cyについて解くと以下のようになります。

UWSC

IDはカーソル下のウィンドウなのでGETID関数で引数にGET_FROMPOINT_WINを指定して取得できます。これらをまとめると以下のプログラムのようになり、これでカーソル位置についてのクライアント領域のX座標、Y座標を求めることができます。このcxとcyをPOSACC関数の第二引数・第三引数に指定します。

UWSC

使い方

カーソル下のウィンドウの文字情報を取得します。

UWSC

プログラム実行例

マウスカーソル下の文字情報を取得

UWSC
使用関数

関連記事

CPUUSERATE関数 (スクリプト関数)
CPU使用率を取得します。
GETDIR関数 (スクリプト関数)
ファイル名を取得します。
GETFORMDATA関数 (スクリプト関数)
フォームより値を取得。
FSO.GetFolder メソッド
指定したパスのFolder オブジェクトを返します。
File.Type プロパティ (FSO)
指定したファイルの種類を返します。
small関数 (自作関数)
配列の中で小さい方から数えた順位の値を求めます。
Document.getElementsByClassName メソッド (DOM)
引数で与えられたクラス名を持つ要素のリストを返します。