「AutoIt Window Info Tool」ウィンドウ情報ツールの場所、使い方、サンプルコード

今回は、Autoit でプログラミングをする際によく使う「AutoIt Window Info Tool」ウィンドウ情報ツールの場所と使い方、取得したウィンドウ情報を使ったサンプルコードを紹介します。

「AutoIt Window Info Tool」ウィンドウ情報ツールは、ウィンドウやコントロールの情報が必要になった時に、簡単に情報を取得できるツールです。

目次

「AutoIt Window Info Tool」の場所、使い方

ツールの場所

「AutoIt Window Info Tool」ウィンドウ情報ツールは、通常次の場所にあります。

C:\Program Files (x86)\autoit3\Au3Info.exe

SciTE のメニューにある「ツール」からも開くことが出来ます。

SciTE のメニュー
SciTE のメニュー

「AutoIt Window Info Tool」の使い方

「AutoIt Window Info Tool」ウィンドウ情報ツールを開き、「Finder Tool」にある四角いアイコンをクリックしたまま、情報を取得したいウィンドウの上に持っていきます。

AutoIt Window Info Tool
AutoIt Window Info Tool

クリックを離すと、ツール上にウィンドウの情報が表示されます。

ここではデスクトップの情報を取得しています。

AutoIt Window Info Tool - Window タブ
AutoIt Window Info Tool – Window タブ

ウィンドウの名前やクラス名、ポジション、サイズ、スタイル、ハンドルなどの情報が簡単に取得できます。

※ポジションはウィンドウによって正しく取得できないものがありますので、筆者はクラス名の取得のみに利用しており、必要な場合はマウス下のポジションを取得するコードを書いています。

「AutoIt Window Info Tool」のオプション

「AutoIt Window Info Tool」ウィンドウ情報ツールを使用する際には、通常オプションの「Freeze」にチェックを入れておきます。

AutoIt Window Info
AutoIt Window Info

「Freeze」にチェックを入れないと、マウスを別のウィンドウの上に持っていった時に情報が変わってしまいます。

特定のウィンドウの情報を取得するためには、オプションの「Freeze」にチェックを入れておきましょう。

すぐに消えてしまうウィンドウの情報を得るために、「Freeze」にチェックをせずに使用することもあります。

「AutoIt Window Info Tool」の各タブの説明

Window タブ

Window タブでは、親ウィンドウの重要な情報を表示します。

  • タイトル(Title)
  • クラス(Class)
  • ポジション(Position)
  • サイズ(Size)
  • スタイル(Style および ExStyle)
  • ハンドル (Handle)

Control タブ

Control タブでは、マウスカーソルの直下にあるコントロールの詳細を表示します。

ここで最も重要な情報は、ID やクラス(Class)です。これは、コントロールを操作するための最も確実な方法です。

  • クラス(Class)
  • インスタンス(Instance)
  • クラス名NN(ClassnameNN)
  • 名前(Name)
  • 詳細モード(Advanced Mode)
  • ID
  • テキスト(Text)
  • 位置(Position)
  • サイズ(Size)
  • ControlClick 座標(ControlClick Coords)
  • スタイル(Style)
  • ExS スタイル(ExStyle)
  • ハンドル(Handle)

Visible Text タブ

Visible Text タブでは、ウィンドウのクライアント領域内で現在表示できるすべてのテキストが表示されます。

テキストのみの「スクリーンショット」を撮るようなものです。

このツールは、ボタン、入力フィールド、ラベル、チェックボックスなど、現在表示されているすべての標準コントロールからテキストを収集し、単一のテキストブロックとして表示します。

これは、エラーメッセージや複雑なダイアログボックスのテキストを個別に選択することなく、コンテンツ全体を素早くコピーするのに非常に便利です。

Hidden Text タブ

Hidden Text タブでは、現在画面に表示されていないテキストも含め、ウィンドウに関連付けられているすべてのテキストを抽出しようとします。

この「隠し」テキストには次のようなものが含まれます。

  • 設定ウィンドウ内の他のタブ上のテキスト。
  • 無効または非表示のコントロール内のテキスト。
  • 現在スクロールされて表示されていないコントロール内のテキスト。

「表示テキスト」タブが店舗の「フロントカウンター」にあるものを表示するのに対し、「非表示テキスト」タブは「奥の倉庫」にあるものも表示します。

これは、ウィンドウ構造内に存在するものの、ユーザーにはすぐには表示されないテキストを検索または検証する必要がある場合に使用される高度な機能です。

StatusBar タブ

このタブは、ウィンドウのステータスバーのテキストを読み取るために特別に設計されています。他の方法では読みにくいことがよくあります。

ステータスバーを個々のペインに分割し、各ペインに含まれるテキストを表示します。

これは、アプリケーションウィンドウの下部にある進行状況情報やステータスメッセージを取得するのに便利です。

StatusBar タブに何も表示されないのはなぜ?

StatusBar タブに何も表示されない一番の理由は、そのアプリケーションが標準的ではない、独自のステータスバーを使用しているためです。

「AutoIt Window Info Tool」や、関連するStatusbarGetText関数は、Windows が提供する標準的な部品(Microsoft Common Controls)で作られたステータスバーからテキストを読み取るように設計されています。

例えば、旧メモ帳のステータスバーのテキストは読み取ることができます。

Win11 メモ帳(Notepad)を旧バージョンに戻す方法

しかし、多くのアプリケーション、特に最新のものや、独自の UI を持つソフトウェア(例: Microsoft Office、Google Chrome、デザインソフトなど)は、見た目や機能をカスタマイズするために、標準部品を使わずに自前でステータスバーを描画しています。

例えるなら
  • 標準のステータスバー: 規格品の「既製品のドア」のようなものです。誰でも同じ方法でノブを回して開けることができます(AutoIt がテキストを読み取れる)。
  • 独自のステータスバー: 特別注文で作られた「デザイン性の高い自動ドア」のようなものです。見た目はドアですが、開け方(情報の取得方法)が特殊で、一般的なドアノブを回す方法では開けられません(AutoIt がテキストを読み取れない)。

ToolBar タブ

ツールバータブは、Windows 標準のツールバーコントロールから情報を取得するために使用されます。ツールバーとは、「保存」、「印刷」、「コピー」ボタンなど、アプリケーションの上部に表示されるボタンの列です。

このタブには、ツールバー上のすべてのボタンとそのステータスのリストが表示されます。

  • ボタンのインデックス : 「1」から始まる数字。(一番左が「1」)
  • ボタンID: 各ボタンの内部コマンド ID。ControlClickボタンを「押す」関数で使用するIDです。
  • ボタンのテキスト :ボタンにテキストが設定されている場合に表示されます。

このタブは、ツールバーボタンのクリックを自動化したいが、ボタンのテキストや位置を考慮できない場合に非常に便利です。

ボタンID を使用することがControlClick、ツールバーを自動化する最も確実な方法です。

Mouse タブ

Mouse タブには、マウス カーソルの位置とその直下のピクセルの色に関する詳細なリアルタイム情報が表示されます。

  • 位置(Position)
    • 画面上のマウスカーソルの現在のX座標とY座標を表示します。これは、マウスを画面上の特定のピクセルにクリックまたは移動させるスクリプトに便利です。
  • カーソルID(Cursor ID)
    • 現在のマウスカーソルの形状に対応するカーソルID を表示します。
  • 色(Color)
    • マウスポインタの真下にある単一ピクセルの 16進数カラー値を表示します。これは、特定の座標に特定の色が表示されるまでスクリプトを待機させ、ボタンをクリックしたり他のアクションを実行したりするなど、ピクセルベースの自動化に不可欠です。
カーソルID

0 = 不明 (ポインターカーソルを含む)
1 = APPSTARTING (バックグラウンド操作)
2 = ARROW (通常選択)
3 = CROSS (クロスカーソル)
4 = HELP (ヘルプ)
5 = IBEAM (テキスト選択)
6 = ICON (アイコン) (相当古いアプリのみ有効)
7 = NO (利用不可)
8 = SIZE (サイズ設定) (相当古いアプリのみ有効)
9 = SIZEALL (移動)
10 = SIZENESW (北東南西斜め調整)
11 = SIZENS (垂直調整)
12 = SIZENWSE (北西南東斜め調整)
13 = SIZEWE (水平調整)
14 = UPARROW (候補)
15 = WAIT (ビジー)

Summary タブ

Summary タブにhくぁ、他のタブのすべての情報が表示されます。

取得したウィンドウ情報を使ったサンプルコード

ここではタスクバーの情報を例にサンプルコードを書いてみます。

タイトル(Title)が表示されていない場合はクラス名を使用します。

タスクバーを透明にするサンプルコード

WinSetTrans 関数と「AutoIt Window Info Tool」で取得したタスクバーのクラス(Class)名を使用して、タスクバーの透明度を変更してみましょう。

WinSetTrans

形式:WinSetTrans ( “タイトル”, “テキスト”, 透明度)

タイトル:ウィンドウのタイトル、またはクラス名。

テキスト:ここは空白で構いません。

透明度:0~255、値が小さいほど透明度が上がります。

タスクバーにはタイトルが表示されませんので、クラス名を使用します。

クラス名を使用する際は、角括弧を使用し、Window タブで取得したクラス名Shell_TrayWndを入力します。

形式:[class:クラス名]

では、タスクバーの透明度を「100」にしてみましょう。

WinSetTrans("[class:Shell_TrayWnd]", "", 100)

コードを実行すると、タスクバーの透明度が変わったのがわかると思います。

元に戻す場合は透明度を「255」にして実行します。

WinSetTrans の透明度は、「1」まではウィンドウが存在(目には見えません)しますが、「0」を指定するとウィンドウが存在しなくなります。

例えば「1」にした場合、目には見えないが、スタートボタンの位置をクリックするとスタートメニューが開きます。

見えないが、存在するタスクバー
見えないが、存在するタスクバー

「0」にするとタスクバーが完全に消えます。

  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次