Tera Term - マクロ - 接続(表示位置)

クラウディア 
1. 概要
2. ログインする
3. 続けて別のホストに接続(表示位置)

1. 概要

 自分的にはここが、いわば本題なのです。  ホストへの接続時に、ホスト名・ユーザ名・パスワード等の入力を省略したい。  これは、「TearTerm Menu」で、実現できてはいるのですが、ここでは、さらにその先までやることが、目標です。  本ページは、特に下記のサイトを参考にさせていただきました。
マクロから別の TeraTerm を立ち上げる: terminal macro  [ TeraTerm ]」
「マクロ - Tera Term のススメ

2. ログインする

 ログインのみは、比較的簡単。

connect '接続先ホスト名 オプション'
 で接続します。  接続先ホスト名は、アドレスでも大丈夫なはずです。  コマンドのパラメータは、シングルコーテーションで囲まなくてもいいかもしれませんが。  オプション文字列等にエスケープが必要な文字が出たときに解釈できなくなるはずなので。  シングルコーテーションで囲むのが無難です。  主なオプションは、下記の通り。
 オプション    意味     備考  
/ssh2 「SSH2」で接続 未指定時は「telnet」かと思われる
/user 「=」で続けて、ユーザ名を指定
/passwd 「=」で続けて、パスワードを指定
/auth 「=publickey」で公開鍵認証を指定
/keyfile 「=」で続けて鍵ファイルを指定

 さらに下記のオプションをつけることができます。

 オプション   意味   備考 
/X 「=」でX座標を指定
/Y 「=」でY座標を指定

 で、デスクトップ上の表示位置を指定します。
 デスクトップの左上を「0, 0」の原点として、右下方向に正の値を指定します。
 単位がようわからんのですよ、どうもピクセルではないようです。

 ようわからんのは、冒頭のオプションとこのオプションを続けて一つの文字列にすればよさそうなものですが。
 続けて文字列を作成すると、エラーになったり、座標指定のオプションが無効になったりするようなのです。

 なので。


server = ' 接続のホスト名等の一連の文字列'

command = ''
param1  = ' /X=600 /Y=50'
sprintf2 command "%s %s" server param1
connect  command
 てな感じで、文字列を連結させて、接続します。

3. 続けて別のホストに接続(表示位置)

 今回(2024年1月20日)これが、着地点だったのだ。  さらに、続けて、別のホストに接続したい。  合計、2つの「TeraTerm」を一度に開きたいわけだな。  これには、「exec」というコマンドを使用して、「ttermpro.exe」をぶったたきます。  書いちゃうと、こんな感じ。

server1 = ' 1つ目のホストの接続文字列'
server2 = ' 2つ目のホストの接続文字列'

command = ''
param1  = ' /X=600 /Y=50'
sprintf2 command "%s %s" server1 param1
connect  command

command = ''
tterm   = 'C:\Program Files (x86)\teraterm\ttermpro.exe'
param2  = ' /X=650 /Y=100'
strconcat command tterm
strconcat command server2
strconcat command param2

strlen command
if result>253 then
  messagebox command '文字列超過'
  end
endif

exec command
 文字列に適切に、スペースをいれて、文字が変な繋がりにならないようにしていることにご注意ください。  9行目以降で、2つめのホストに接続しにいっているわけです。  16~20行目は、扱える文字数の制限があるので、それを超えていないかチェックしています。  制限数は、255のはずなのですが、なにかおまじないがあるかと思います。  参考サイトのものをもろパクリいたしております。  で、結局、「ttermpro.exe」へパラメータを渡して、2つ目のホストに接続しているわけです。  1つ目のホストと2つ目のホストのウィンドウ位置を少しずらしているのが工夫です。  ここがミソでして。  「TeraTerm」で複数のウィンドウを開くときに、少しずつずらしたり、表示位置を固定したりするのに。  「TERATERM.INI」の。

;	Window positions
VTPos=-2147483648,-2147483648
TEKPos=-2147483648,-2147483648
 と。

; Save VT Window position
SaveVTWinPos=off
 あたりを工夫して、制御するのですが。  固定位置とずらして表示するのが二律背反のようで、どうもうまく制御できんのです。  それでまぁ、今回(2024年1月20日)マクロを使うことになったわけです。  ついでに、余禄もありましたけどね。
earthcar(アースカー)
U-NEXT
【usus ウズウズ】