是否可以使用 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

为您提供:

在此处输入图片描述

相关内容