%20%D0%B8%D0%BC%D0%B5%D0%BD%D0%B0%20%D1%8D%D0%BB%D0%B5%D0%BC%D0%B5%D0%BD%D1%82%D0%BE%D0%B2%20%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F%20%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE%20%D0%BE%D0%BA%D0%BD%D0%B0%2F%D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F%20%D1%81%20%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D1%8E%20Autohotkey%3F.png)
Я хочу узнать, возможно ли скопировать (извлечь) имена элементов управления определенного окна или приложения с помощью 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
Получаете это: