Autohotkey を使用して特定のウィンドウ/アプリケーションのコントロールの名前をコピー (取得) することは可能ですか?

Autohotkey を使用して特定のウィンドウ/アプリケーションのコントロールの名前をコピー (取得) することは可能ですか?

AutoHotkey を使用して、特定のウィンドウまたはアプリケーションのコントロールの名前をコピー (取得) することは可能でしょうか?

たとえば、画面に計算機が開かれていて、次のようなことが必要な場合があります。

  • ホットキーを押すとf1、電卓のメニュー名(表示、編集、ヘルプなど)がコピーされます。

  • ホットキーを押すと、f2これらのコントロールの名前 (表示、編集、ヘルプ) が貼り付けられるか送信されます。

  • 同様に、電卓の表示メニューのオプション名をコピーしたい。これを押すと、f3表示メニューのオプション、つまり「標準」、「科学」、「プログラマー」などがコピーされるようにしたい。

  • 押すと、f4表示メニューのオプションが貼り付けられるか送信されます。

それは可能ですか?

このスナップショットを見てください:

電卓の画像

答え1

Windows の電卓などのアプリケーションからメニューの内容を取得することはおそらく可能ですが、私が見つけることができる同等のコードはどれも非常に大きく、ほとんどの場合、変更や維持が困難、あるいは不可能でしょう。そのため、私はより単純なオプションを提案します。

まず、このようなアプリケーションのオプション メニューは変更できないため、オンザフライでコピーするためのキーの割り当てはやりすぎのようです。代わりに、AHK で一度設定しておけば、呼び出すことができます。

MsgBox では、次のようにしてこれを実現できます。

ここに画像の説明を入力してください

これに使用されるコード:

F4::

MyMenu =
(
=================
Calculator Menu
=================
Standard`t`tAlt+1
Scientific`t`tAlt+2
Programmer`tAlt+3
Statistics`t`tAlt+4
-----------------
History`t`tCtrl+H
Digit grouping
-----------------
Basic`t`tCtrl+F4
Unit conversion`tCtrl+U
Date calculation`tCtrl+E
Worksheets

)
MsgBox, 4160, Calculator Menu, %MyMenu%

「`t」はタブを表し、MsgBox 内で何らかの形式のテキスト配置を可能にします。

それ以外の場合は、F4 (または任意のキー) をバインドして、テキスト メニューと同等のものを出力できます。これは次のようになります。

F4::

SendInput `
(
=================
Calculator Menu
=================
Standard`t`tAlt{+}1
Scientific`t`tAlt{+}2
Programmer`t`tAlt{+}3
Statistics`t`tAlt{+}4
-----------------
History`t`t`tCtrl{+}H
Digit grouping
-----------------
Basic`t`t`tCtrl{+}F4
Unit conversion`t`tCtrl{+}U
Date calculation`tCtrl{+}E
Worksheets
)
return

次のものが得られます:

ここに画像の説明を入力してください

関連情報