%20%E3%81%99%E3%82%8B%E3%81%93%E3%81%A8%E3%81%AF%E5%8F%AF%E8%83%BD%E3%81%A7%E3%81%99%E3%81%8B%3F.png)
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
次のものが得られます: