getttpos

Tera Term の VT window の表示状態、位置、サイズを取得する。(バージョン5.3以降)

形式

getttpos <showflag> <window x> <window y> <window width> <window height> <client x> <client y> <client width> <client height>

パラメータ

整数型変数 <showflag>
VT windowの表示状態が格納される。
0 : 通常状態
1 : 最小化状態
2 : 最大化状態
3 : 非表示状態
整数型変数 <window x>
ウィンドウ領域左上隅の X 座標が格納される。
整数型変数 <window y>
ウィンドウ領域左上隅の Y 座標が格納される。
整数型変数 <window width>
ウィンドウ領域の幅が格納される。
整数型変数 <window height>
ウィンドウ領域の高さが格納される。
整数型変数 <client x>
クライアント領域左上隅の X 座標が格納される。
整数型変数 <client y>
クライアント領域左上隅の Y 座標が格納される。
整数型変数 <client width>
クライアント領域の幅が格納される。
整数型変数 <client height>
クライアント領域の高さが格納される。

返り値

システム変数 <result>
情報取得に成功した場合は 0 が、失敗した場合は -1 が格納される。

解説

座標、幅、高さの単位はピクセル。
座標の原点 (0,0) はメインディスプレイ(プライマリディスプレイ)の左上隅の位置。
ウィンドウ領域はアプリケーションウィンドウ全体を、クライアント領域はウィンドウ領域からタイトルバー/メニューバー/フレーム等を除いたテキスト表示領域を指す。
VT windowが最小化状態または非表示状態の場合は、座標、幅、高さは誤った値が格納される。
MACRO が Tera Term とリンクされていない場合は、マクロエラーとなりマクロの実行が一時停止する。

testlink
if result > 0 then
  :start
  getttpos showflag w_x w_y w_width w_height c_x c_y c_width c_height
  if showflag != 3 then
    if showflag = 1 then
      showtt 1
      goto start
    endif
    setdlgpos c_x c_y
    sprintf2 str 'x=%d, y=%d, width=%d, height=%d' c_x c_y c_width c_height
    messagebox str 'Client Area'
  endif
endif

参照