Можно ли скопировать (извлечь) имена элементов управления определенного окна/приложения с помощью Autohotkey?

Можно ли скопировать (извлечь) имена элементов управления определенного окна/приложения с помощью Autohotkey?

Я хочу узнать, возможно ли скопировать (извлечь) имена элементов управления определенного окна или приложения с помощью AutoHotkey?

Например, на моем экране открыт калькулятор, и теперь я хочу, чтобы:

  • когда я нажимаю f1горячую клавишу, то она должна копировать название меню калькулятора, то есть Вид, Редактировать и Справка и

  • при нажатии f2горячей клавиши она должна вставить или отправить название этих элементов управления, например, «Просмотр», «Правка» и «Справка».

  • Аналогично далее я хочу скопировать названия опций в меню просмотра калькулятора. Для этого я хочу, чтобы при нажатии f3копировались опции меню просмотра, то есть «Стандартный», «Научный», «Программист» и т. д. и

  • при нажатии f4он должен вставить или отправить параметры меню просмотра.

Возможно ли это сделать?

Посмотрите на этот снимок:

изображение калькулятора

решение1

Хотя, вероятно, возможно получить содержимое меню из приложения вроде Windows Calculator, любой сопоставимый код, который я смог найти, огромен и будет трудно, если не невозможно, изменять или поддерживать его для большинства. Поэтому я предлагаю более простой вариант.

Во-первых, меню опций для такого приложения не дано изменять, поэтому привязка клавиш для их копирования на лету кажется излишеством. Вместо этого мы можем настроить их один раз в 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

Получаете это:

введите описание изображения здесь

Связанный контент