Windows spy ahk что это

Обновлено: 27.06.2024

Сколько раз каждый из нас про себя или вслух восклицал: "вот бы кто-нибудь вместо меня это сделал!" Увы, только в сказке о Золушке заданную работу может за тебя сделать кто-то другой. В реальной жизни нам приходится самим искать способы, помогающие упростить выполнение повседневных задач. Однообразные действия на компьютере, которые приходится выполнять звукорежиссерам при обработке фонограммы, любителям видеомонтажа, корректорам и прочим, часто наталкивают на мысль, что такую работу сделает и обезьяна. Этот вариант тоже не самый лучший - ее кормить нужно, да и потом, глядишь, мартышка от постоянного труда станет продвинутым пользователем, а тебя самого уволят.

Ну, а если серьезно, то если вы чувствуете, что постоянно делаете одни и те же движения мышью и нажимаете одни и те же клавиши на клавиатуре, с этим нужно бороться, автоматизируя любые одинаковые действия в программе. Многие крупные пакеты поддерживают пакетную обработку файлов и имеют возможность работы с пользовательскими макросами. Не ленитесь, делайте их - даже если макрос сэкономит два-три лишних действия, в конце рабочего дня вы почувствуете невероятное облегчение от того, что не нужно делать дополнительных пируэтов мышью или набирать каждый раз одну и ту же последовательность символов. Если же программа-редактор графики, видео, звука или какое-нибудь другое приложение не позволяет автоматизировать работу, используйте специальные программы для работы с клавиатурными макросами.

На наш взгляд, один из самых простых и удобных инструментов для автоматизации - программа AutoHotkey.


Эта утилита имеет множество достоинств. Во-первых, она бесплатная, поэтому этот вариант автоматизации действий можно сразу брать на заметку. Во-вторых, она поддерживает работу не только с клавиатурой, но и с мышью. В-третьих, с ее помощью можно заставить функционировать дополнительные клавиши на многих мультимедийных клавиатурах, даже если другие аналогичные приложения с этим не справились. В-четвертых, она дополняет возможности игровых манипуляторов и клавиатур. Программируемые макросы на устройствах ввода могут иметь определенные ограничения - длина макроса может быть ограничена определенным количеством символов, некоторые клавиши могут не эмулироваться драйвером устройства и т.д. Отличный выход из такой ситуации - использование дополнительной клавиши на клавиатуре для запуска исполнительного файла AutoHotkey, который выполнит макрос без ограничений.

Программа AutoHotkey состоит из двух главных частей - самой программы и компилятора скриптов. Основной модуль приложения AutoScriptWriter (recorder) позволяет записать макрос, то есть действия, вводимые с клавиатуры.


Результатом такой записи является скрипт, который написан на языке с несложным синтаксисом. Разобраться в нем сможет даже тот пользователь, который никогда не имел дела с программированием. Макрос может включать или запись нажатий клавиш на клавиатуре, или комбинацию действий, выполняемых при помощи мыши и нажатия клавиш на клавиатуре.

Чтобы остановить запись макроса, следует использовать кнопку в углу экрана, которая возникает во время выполнения действий пользователем. Записанный скрипт сохраняется в виде файла AHK, который может быть отредактирован в любом текстовом редакторе.

Вторая часть программы - утилита для создания исполнительных файлов EXE, которые в точности повторяют действия записанного макроса. При создании файлов EXE можно использовать сжатие данных, выбирать степень компрессии, назначать наглядную иконку конечному файлу.

Среди инструментов AutoHotkey стоит обратить внимание на небольшую вспомогательную утилиту AutoIt3 Window Spy, которая позволяет в реальном времени показывать некоторые изменяющиеся параметры, например, координаты курсора. Этот инструмент удобно использовать при создании сложных макросов.


Единственный недостаток, который нам удалось обнаружить в этой утилите, - некорректная работа с русским языком. Однако и эту проблему, при желании, можно решить. Во-первых, официальный форум AutoHotkey содержит много полезных скриптов, с помощью которых можно частично или полностью устранить ошибки при работе с русским языком. Кроме этого, русский текст можно прописывать в коде скрипта вручную, используя для этого ASCII-коды. Например, чтобы набрать слово "отсюда", нужно будет прописать "". Но, как уже было сказано выше, на все эти неудобства можно закрыть глаза, поскольку утилита распространяется бесплатно.

Если же вас заинтересовали платные аналоги AutoHotkey, вы можете прочитать обзор программ "Автоматизация рутинных задач на ПК - обзор решений".

К сожалению, на работе очень сложно уговорить начальство заменить вышедшую из строя мышь, что уже говорить про любой другой дорогостоящий апгрейд. К сожалению, это действительно трудноразрешимая проблема. Выход лишь один - набраться терпения (помните, что капля камень долбит) и стараться аргументировано доказывать необходимость оптимизации рабочего инструмента. В качестве одного из доводов, можете приводить в пример эту статью. Что же касается тех пользователей, которые работают на дому, то им вопрос с покупкой нового железа решить проще - вложенные в рабочий инструмент средства очень быстро вернутся к тому, кто их потратит. Формула возврата материальных трат очень простая: удобнее инструмент - выше продуктивность, а следовательно, и больший доход.

Данная статья не носит рекламный характер. Мы не акцентируем внимание на какой-нибудь определенном устройстве и не призываем всех бежать и скупать продукцию Microsoft или Logitech. Присматривайтесь, делитесь опытом на форуме 3DNews. Нашей задачей было посмотреть на проблему увеличения продуктивности работы на компьютере под неожиданным углом, а также продемонстрировать различные приемы, с помощью которых можно в разы быстрее выполнять всевозможные задания в Adobe Photoshop, After Effects, 3ds Max, AutoCad и других сложных программах. Если хотя бы один из этих советов пригодится кому-то в работе, можно считать, что цель достигнута.

Конечно, совершенного ничего не бывает. Все рассмотренные выше примеры "железной" оптимизации имеют недостатки - дополнительные функции стоят денег, да к тому же, к ним нужно привыкнуть. С другой же стороны, на велосипеде тоже нужно учиться ездить, а кто скажет, что это менее удобно, чем ходить пешком?

После некоторых исследований я обнаружил, что в переносной версии AHK отсутствует AU3_Spy.exe, который, по-видимому, необходим для запуска Window Spy.

  • Что такое AU3_Spy.exe?
  • Почему он не включен в AutoHotkey?
  • Где я могу найти отсутствующий файл?

4 ответа

Window Spy или AU3_Spy.exe это программа, которая может быть использована для получения информации об окне для сценариев.

Пока это не входит в портативную версию AHK ahk.zip , вы можете использовать 7-Zip для извлечения AU3_Spy.exe из установщика AutoHotkey.

Откройте файл установщика с помощью 7-Zip и распакуйте AU3_Spy.exe ,

Извлечение AU3_Spy.exe

Место AU3_Spy.exe в вашей папке AutoHotkey.

Размещение AU3_Spy.exe в папке Autohothey

Во время работы AHK щелкните правой кнопкой мыши значок AHK в области уведомлений и выберите Window Spy.

Выбор окна шпиона

Готово! Теперь вы можете щелкнуть любое окно, чтобы получить полезную информацию, такую ​​как заголовок окна, положение мыши и элементы управления.

Окно Шпион в использовании

В последнем установщике AutoHotkey (v1.1, v2.0. ) только полный установщик включает это, и после установки вы можете найти его:

TL;DR: все старые ответы устарели и не отражают текущую ситуацию.

Последний выпуск, включающий автономную утилиту Windows Spy, - 1.1.26.01.

Начиная с версии 1.1.27.00, AutoHotKey_L больше не включает утилиту Windows Spy () как отдельный исполняемый файл; он заменен на WindowSpy.ahk как отмечено в комментарии к другому ответу. Вот соответствующий отрывок из о объявлениявыпуске :

  • AU3_Spy.exe по-прежнему запускается, если WindowSpy.ahk не найден.
  • Теперь он по умолчанию следует за сфокусированным элементом управления и имеет флажок для окна и элемента управления, которые следуют за мышью.
  • Больше не используется глобальная горячая клавиша (Win+A). Вместо этого удерживайте Ctrl или Shift, чтобы приостановить обновления (отпустите их после фокусировки Window Spy).
  • Теперь можно использовать Alt-Tab для Window Spy в Windows 10 без изменения содержимого графического интерфейса.

Как указывалось в других ответах, используйте 7-Zip для извлечения AU3_spy.exe в установщике, затем поместите его в любое место по вашему выбору и завершите работу.

Пользователи 1.1.x могут использовать новый шпионский скрипт для получения аналогичной функциональности.

Но не так повезло пользователям альфа / бета AutoHotKey 2.0, поскольку скрипт был написан на языке 1.x, который несовместим с 2.0. Для них получение автономного exe-файла - единственный вариант. (Существуют и другие утилиты для замены, такие как Spy++ из Visual Studio, но не такие удобные.)

Тогда я не могу выбрать диалог Добавить в архив.

1: Это не сработало. Я думаю, потому что он не нашел диалог. Если да, то почему?

2: Это также не сработало:

3: Я попытался найти все доступные диалоги в своем приложении, используя print(app.windows())

Но он печатает это:

enter image description here

Печать экрана различных инструментов шпиона spy++ для диалога

enter image description here

spy++ на первом контроле (он говорит Edit, но au

enter image description here

inspect.exe для диалога:

Я вижу, что 7zFM.exe другой процесс (это еще один исполняемый файл!) С этим диалогом. Вам нужно подключиться к новому процессу.

В Inspect.exe вы также можете увидеть свойство ProcessId (== 5304 на скриншоте). Найдите это значение в диспетчере задач /Details/column PID .

1/Я не могу подключиться к этому диалоговому окну

Ответ: это не сработало, потому что это другой процесс. Так что это своего рода новое приложение (app2). Поэтому вам нужно подключиться к нему (некоторые приложения могут запускать новый процесс для каждого запускаемого окна).

Чтобы снова подключиться, вам нужно снова сделать app2=Application().connect(path='7zG.exe') чтобы выбрать элемент управления

2/да, но я знаю, что это новый процесс?

Ответ. Вы можете увидеть это в инструменте шпионажа (см. 6/и на экране ниже).

3/Я не могу выбрать элемент управления (введите текст в поле) в этом диалоговом окне:

Ответ: это нормально, вам нужно сначала подключиться к диалоговому окну. Сначала подключитесь к app2 (см. Выше), затем выполните следующее:

4/Я попытался найти все доступные диалоги в своем приложении, используя print(app.windows()) Но он печатает это (и другие странные вещи):

Вы можете получить текст, используя print ([w.window_text() for w in app.windows()]) (он печатает, что ['C:\\Users\\Me\\Desktop\\', '', '', 'M', 'Default IME'] Не знаю, что это значит.)

5/Если я получаю всю информацию, необходимую для доступа к этому диалоговому окну и управлению, мне действительно нужно распечатать этот список диалогов или элементов управления?

Я не знаю. Я еще не полностью понял необходимость распечатки списка диалогов. Но я понимаю (возможно), что этот список управления предлагает способ сократить код. Например. он дает такие вещи, как AddToArchive . Вместо написания app2.window(title_re="Add to Archive"). вы можете написать app2.AddToArchive.

Ответ: лучший шпионский инструмент, похоже, является одним из AutoHotkey (ниже печатного экрана AU3_Spy.exe). Он показывает имя/класс/процесс и даже имя элемента управления (и другие вещи) в крошечном окне без загрузки CPU. И в отличие от двух других шпионских инструментов, AutoHotkey дает правильное имя управления

Также обратите внимание, что имена элементов управления меняются от одного шпионского инструмента к другому. Наиболее точным представляется тот, который был сделан с autohotkey (все тесты работали до сих пор). И это только дает то, что вам нужно, другой шпионский инструмент показывает много бесполезных вещей, кроме того, что вам нужно (например, процесс и реальные имена элементов управления)

Вы найдете кучу шпионского инструмента здесь. Активный проводник отлично подойдет Ahk (он делает то же самое, что и Spy++, но только лучше).

(Не стесняйтесь использовать мои скриншоты)

Дополнительные советы:

Есть ли способ сократить код?

эквивалентно .AddtoArchive . Поэтому вы также можете написать:

То же самое для других приложений, таких как:

Вы можете перечислить все доступные методы объекта, используя:

Другой пример: вам нужно from pywinauto import keyboard для использования SendKeys('^a^c')

Сегодня я расскажу Вам об основах создания и использования скриптов, используя AutoHotKey! :)
В этой ветке много макросов на Bloody, однако лично мое мнение, что блуди не удобная штука. Ну тут каждому на свой вкус.

Далее по тексу саму программу и скриптовый язык AutoHotKey я буду называть AHK или АХК.

Итак, приступим!

Качаем >> autohotkey отсюда

Создаем пустой скрипт.


(также будет работать, если переименовать .txt в .ahk )

Что же нам делать дальше?
Давайте рассмотрим две ситуации! :) Мы можем создать скрипт, который будет одноразово при запуске выполнять какие-то действия. Например, при запуске .exe выполняется действие по копированию ярлыка из одного места в другое. В таком случае нам не нужно привязывать какую-либо кнопку к этому действию. Второй же вариант, когда мы запустили скрипт, затем нажали кнопку и у нас произошло то же самое действие.

После того как Вы внесли какой либо код в скрипт, сохраняем его и запускаем от имени администратора.

Давайте рассмотрим основные команды (те, которые я чаще всего использую).

В АХК конец предыдущей команды обозначается концом прошлой команды, переносом на следующую строку, либо завершением . Я представляю насколько непонятно это выглядит, однако я думаю чуть дальше вы поймете.

В первую очередь я Вам советую в скрипт вписывать несколько строк, которые в случае Вашей ошибки\недоработки позволят отключать скрипт. Например, если Вы поставили нажиматься Alt+F4 каждые 0.1 секунд. Короче если вы не можете остановить скрипт мышкой, чтоб мы могли это сделать кнопкой.

Что это такое? При нажатии на F11 у нас будет выполнена команда pause, которая запаузит скрипт. При повторном нажатии скрипт продолжит работу с того места, где закончил. При нажатии F12 соответственно скрипт будет перезагружен совсем. :) На заметку: если вы изменили код скрипта, сохранили, то при нажатии на f12 будет загружен уже измененный скрипт. Это удобно когда вы только создаете\отлаживаете скрипт.

Эту строку я советую тоже вставлять во все скрипты, где у Вас будут использоваться координаты. (ну например нажать мышкой на крестик в ворде :) ). Дело в том, что в этом случае координаты будут смотреться не относительно вашего разрешения(монитора), а относительно текущего окна. Т.е. если у вас игра\ворд запущены не в полное окно, то вы можете их двигать куда угодно, координаты будут одинаковы.

Далее. Привязка действий к клавишам. Существует список кучи модификаторов. Я приведу основные:

При нажатии сочетания ALT и цифры 1 у нас выведется пустое окошечко.
Таким же образом привязываются абсолютно все действия.
Если у Вас больше одной команды, то я советую заключать их в <>.
Как это будет выглядеть?

В данном случае у нас будут появляться два окошечка последовательно. Но это лишь пример.

Все знаки пунктуации нужно заключать в <>.
Теперь при нажатии Ctrl+1 у нас отправится объява в чат, причем скорее всего мы даже не успеем заметить как открылся чат.
При нажатии Ctrl+2 мы гарантированно изменим чат на Общий, после чего напишется строка и остановится на "Цена:" но не отправится, там мы сможем ввести цену. Ну я надеюсь суть вы поняли :)

Пример: Нам нужно зажать шифт на 2 секунды.
Здесь мы используем 2 новых штучки.
Sleep - данная команда является просто таймером-разделителем между командами.
Формат:
Sleep, 1000 - это будет задержка 1 секунда
Нажатие и "отпускание" клавиши.
- данная "клавиша-команда" зажмет клавишу W.
- соответственно отожмет клавишу S.

При нажатии на Пуск+1 у нас зажмется шифт на 2 секунды.

Теперь попробуем разобраться с мышкой.

При нажатии на Альт+NumPad0 у нас произойдет "клик" левой кнопкой по координатам 5 5.
При нажатии Альт+NumPad1 у нас произойдет клик правой кнопкой по 10 10, через секунду правая кнопка зажмется на полсекунды.


Как нам собирать эти координаты? Я пользуюсь двумя способами. Первый: запускаем любой скрипт, в трее нажимаем правой кнопкой, потом Window Spy. Откроется окошечко

Нас интересует строка In Active Window:

Второй: использовать код, который будет показывать нам координаты при нажатии на кнопочку.

Разберемся с циклами. То есть со случаями, когда нам нужно одно и то же действие повторить много раз.

Например, нам нужно кормить кота каждые пять минут.
после ; мы можем писать комментарии.

В случае, когда нам нужно повторить действие определенное количество раз, просто после Loop, ставим цифру сколько раз:

Ну вот наверное и всё, из основного :) Теперь перед Вами всё ограничено лишь воображением.
Я прошу Вас задавать вопросы, если появятся, а также сказать, надо ли что-то еще добавить в гайд? :)

Читайте также: