Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » AutoHotkey

Модерирует : gyra, Maz

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76

Открыть новую тему     Написать ответ в эту тему

chum2000

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

   
 
Актуальная версия: AutoHotkey 2.0.5 от 12 августа 2023
Версия для Windows XP | Changes from v1.1 to v2.0
 
Официальный сайт | Англоязычный форум | Архивный форум | Русскоязычный форум
Документация (англ.) | Документация и статьи (рус.) | История изменений
 
Подборка полезных скриптов | AutoHotkey + Total Commander
 

Цитата:
AutoHotkey — бесплатная программа с открытым исходным кодом для создания макросов и автоматизации, позволяющая упростить выполнение повторяющихся задач.
 
AutoHotkey позволяет изменить интерфейс практически любой программы. Имеет собственный скриптовый язык, специально нацеленный на лёгкое назначение и переназначение горячих клавиш.
 
AutoHotkey можно использовать для запуска программ, отправки текста, имитации мыши. Скриптовый язык позволяет управлять окнами, файлами и папками. Команды могут быть активированы горячими клавишами.
 
Также имеются возможности создания GUI, работы с реестром, использования собственного API окон для вызова DLL-файлов. Скрипты можно скомпилировать в EXE-файл и запускать на любом компьютере с Windows соответствующей версии.
 
Наиболее частое применение AutoHotkey:
- переназначение клавиш (глобально или у отдельных программ)
- управление мышью с помощью клавиатуры или джойстика
- слежение за системой, автоматическое выполнение некоторых действий по желанию пользователя, таких как напоминание, сканирование или резервное копирование
 

Всего записей: 505 | Зарегистр. 04-03-2004 | Отправлено: 00:28 02-06-2005 | Исправлено: Egor2020, 10:08 21-09-2023
Altruumann



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
del

Всего записей: 463 | Зарегистр. 04-04-2016 | Отправлено: 21:37 21-07-2022 | Исправлено: Altruumann, 04:39 27-07-2022
Nikita9404

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте, подскажите, пожалуйста, как с помощью программы назначить выполнение команды сразу на несколько клавиш. Т.е., чтобы я набирал на клавиатуре фразу "ЛИНИЯ" (команда в CAD-приложении) а система воспринимала это как сочетание клавиш: "Ctrl+S" или "Сtrl+Shift+S".
Спасибо.

Всего записей: 4 | Зарегистр. 16-05-2011 | Отправлено: 14:42 27-07-2022
Samotek

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Nikita9404

Цитата:
 "ЛИНИЯ"

:*:линия::
  send ^S
  send ^+S
return ;==================================================================
 

Всего записей: 2434 | Зарегистр. 18-05-2005 | Отправлено: 15:57 27-07-2022
Nikita9404

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо, работает, но только в английской раскладке. Что нужно добавить в скрипт, чтобы уйти от языковой зависимости?

Всего записей: 4 | Зарегистр. 16-05-2011 | Отправлено: 16:13 27-07-2022
Samotek

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Nikita9404

Цитата:
Что нужно добавить в скрипт, чтобы уйти от языковой зависимости?

Сохранить файл в UTF-8-BOM

Всего записей: 2434 | Зарегистр. 18-05-2005 | Отправлено: 16:47 27-07-2022
asrfarr



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Спасибо, работает, но только в английской раскладке. Что нужно добавить в скрипт, чтобы уйти от языковой зависимости?

добавить Virtual Key.
 
Если не ошибаюсь то вместо S написать VK53

Всего записей: 295 | Зарегистр. 30-03-2010 | Отправлено: 16:50 27-07-2022
Nikita9404

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Хорошо, спасибо, с простой заменой разобрался. Но возникла некоторая сложность.  
Я создаю два псевдонима команд через замену :*:  
Л - (Ctrl+Q в СAD) = ЛИНИЯ
ЭЛ - (Ctrl+P в СAD) = ЭЛЛИПС
ЛЛ - (Ctrl+F в CAD) = ПОЛИЛИНИЯ
 
По отдельности каждый скрипт работает, но вместе - нет. Если в скрипте для выражения Л уже определена замена, то для ЛЛ ЭЛ у меня снова рисуется ЛИНИЯ. Можно ли как-то в скрипте через указание временных интервалов или еще как что я еще не закончил вводить текст команды и не нужно спешить делать замену на часть фразы? По типу как в Windows скорость двойного щелчка мыши настраивается.
Спасибо.

Всего записей: 4 | Зарегистр. 16-05-2011 | Отправлено: 22:30 27-07-2022
grablin

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброго времени суток.
Есть скрипт .ahk — по сути обычный батник с аргументами позволяющими кильнуть процесс и убирать иконку из системного трея.
 

Код:
Run taskkill.exe /t /im HandTool.exe,, Hide  

 
 
И есть альтернативный код, но на языке AutoHotkey, который убивает процесс, но не убирает иконку процесса из трея.
Помогите пожалуйста подправить этот код так, чтобы в трее не оставалось следов закрытой программы.
 

Код:
Process, Close, HandTool.exe
Process, Close, %p_id%
#NoTrayIcon  

 
и
 

Код:
 
Process, Close, HandTool.exe
ExitApp
 


Всего записей: 243 | Зарегистр. 25-04-2009 | Отправлено: 00:57 05-09-2022 | Исправлено: grablin, 02:02 05-09-2022
Baltazar500



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Тут понадобилось решить пару задачек, связанных с играми и autoit для этого плохо подходил ... В сети были уже готовые решения для AHK, но почитав википедию и узнав про обилие отпочковавшихся форков не знаю теперь за какой билд браться. Какой билд посоветуете человеку, который с AHK дела не имел, но имел дело с AutoIT (немного ) ?

Всего записей: 2080 | Зарегистр. 19-09-2011 | Отправлено: 15:38 09-09-2022 | Исправлено: Baltazar500, 15:40 09-09-2022
Baltazar500



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ОК. Взял с оф.сайта AHK текущей версии (не бету и не устаревшую 1.x), начал делать первые скрипты и рпзбираться. Пока возникла заминка с использованием переменной при "слепом" ремапе клавиш т.е.
Код:
a::send {b}
Попытка использовать переменную вместо "a" жёстко пресекается компилятором. С использованием переменной вместо "b" проблем не возникает. Пробовал ещё такой вариант, почерпнутый в интернете

Код:
HotKey, %a%, aKeyHandler
return
 
interceptKeyHandler:
Send %a%
return
но для игр он как-то криво работает (шлётся не то, что нужно), а с обычными приложениями (типа калькулятора) всё работает корректно.

Всего записей: 2080 | Зарегистр. 19-09-2011 | Отправлено: 15:06 11-09-2022 | Исправлено: Baltazar500, 15:07 11-09-2022
Smitis



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Baltazar500

Цитата:
но почитав википедию и узнав про обилие отпочковавшихся форков

Форки?
Единственный развивающийся "форк" https://www.autohotkey.com/download/
https://github.com/Lexikos/AutoHotkey_L/releases

----------
Разум когда-нибудь победит

Всего записей: 3179 | Зарегистр. 09-02-2003 | Отправлено: 18:14 11-09-2022
Baltazar500



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Smitis, я не в теме, потому и интересовался. Просто, исходя из данной информации Подробнее... Довольно таки трудно определиться с выбором, даже закрыв глаза на факт развития проекта.
 
p.s. А по вопросув посте выше есть мысли ?

Всего записей: 2080 | Зарегистр. 19-09-2011 | Отправлено: 20:30 11-09-2022 | Исправлено: Baltazar500, 20:34 11-09-2022
Smitis



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Baltazar500

Цитата:
А по вопросув посте выше есть мысли ?

a::send {b} - такой синтаксис, клавиши переменными не задаются.
А почему не работает в Ваших играх, ну совершенно не представляю. Я даже не понимаю, зачем Вы это делаете и каких целей добиваетесь.

----------
Разум когда-нибудь победит

Всего записей: 3179 | Зарегистр. 09-02-2003 | Отправлено: 21:45 11-09-2022
Baltazar500



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Smitis,
Цитата:
a::send {b} - такой синтаксис, клавиши переменными не задаются.
Вы не поняли. Мне нужно чтобы в качестве клавиш были перемнные. Чтобы перехватываемая и назначаемая клавиша могли изменяться. И если
Код:
def = b
a::send {%def%}
вполне себе успешно работает, то на
Код:
abc = a
def = b
%abc%::send {%def%}
или
Код:
abc = a
def = b
{%abc%}::send {%def%}
агрится компилятор. Условное решение аналогичной проблемы было нагуглено и процитировано в посте выше, но в игре оно работало криво и заданная клавиша не слалась.
Код:
А почему не работает в Ваших играх, ну совершенно не представляю. Я даже не понимаю, зачем Вы это делаете и каких целей добиваетесь.
Изначальная цель была - ремап клавиши pause/break на другую для игр серии Dawn of War (Dark Crusade, Soulstorm, etc) и с этим успешно справлялся простенький скрипт
Код:
#IfWinActive Dawn of War: Soulstorm
 
F1::send {break}
Далее я это дело решил унифицировать и позволить регулировать тайтл, перехватываемую и назначаемую клавишу через ini. В целом всё получилось, пока я в конце не напоролся на использованием переменной для перехватываемой клавиши при "слепом" ремапе клавиш. Трюк с использованием "HotKey" не прокатил. В игре нужен именно слепой ремап. Для обычных приложений типа калькудятора "HotKey" вполне себе успешно работает.

Всего записей: 2080 | Зарегистр. 19-09-2011 | Отправлено: 17:23 12-09-2022 | Исправлено: Baltazar500, 17:26 12-09-2022
Smitis



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Baltazar500
Поэкспериментируйте с #InstallKeybdHook и #UseHook

----------
Разум когда-нибудь победит

Всего записей: 3179 | Зарегистр. 09-02-2003 | Отправлено: 18:25 12-09-2022
Baltazar500



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Smitis,
Цитата:
Поэкспериментируйте с #InstallKeybdHook и #UseHook
спасибо, попробую, но т.к. с AHK я дела практически не имел, не факт, что их у меня выйдет применить на практике.
 
Ну т.е. со слепым ремапом и переменной без вариантов ? Только фиксированное значение ?

Всего записей: 2080 | Зарегистр. 19-09-2011 | Отправлено: 14:34 14-09-2022
creature_ws



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
@Baltazar500
Команда Hotkey предназначена для динамического ремапа.
и фиксированное значение и результат работы команды Hotkey использует одни и те же методики переназначения клавиш. Если что-то не получилось с Hotkey значит не достаточно разобрались.

Всего записей: 304 | Зарегистр. 29-07-2008 | Отправлено: 21:45 14-09-2022
Baltazar500



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
creature_ws,
Цитата:
Если что-то не получилось с Hotkey значит не достаточно разобрались.
Чтобы разобраться мне как минимум нужна возможность отладки и отслеживания происходящего. Как мне увидеть, что шлётся в игру вместо break ? Если в случае обычных клавиш на примере того же калькулятора видно, что за цифра отправляется, то как отследить происходящее при перехвате подобной "спец" клавиши и того что шлётся вместо неё ? Есть ли у скомпилированного скрипта возможность писать отладочный лог, что как и где ИМ перехватывается и отправляется ?

Всего записей: 2080 | Зарегистр. 19-09-2011 | Отправлено: 14:36 16-09-2022
Samotek

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
 Есть ли у скомпилированного скрипта возможность писать отладочный лог, что как и где ИМ перехватывается и отправляется ?

Почитайте File Object

Всего записей: 2434 | Зарегистр. 18-05-2005 | Отправлено: 15:23 16-09-2022
Baltazar500



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Samotek, спс. Погляжу. Но до вашего ответа уже успел выяснить, в чём заковыка, использовав для отправки окно akelpad и мониторинга отправки клавиш mkey. В общем ... код
Код:
 
a = break
 
HotKey, %a%, aKeyHandler
return
 
interceptKeyHandler:
Send %a%
return
шлёт не "break", ака pause/break, а "b,r,e,a,k"
 
*facepalm*
 
Теперь надо разобраться, как разрулить данную проблему ...

Всего записей: 2080 | Зарегистр. 19-09-2011 | Отправлено: 21:27 16-09-2022 | Исправлено: Baltazar500, 21:29 16-09-2022
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76

Компьютерный форум Ru.Board » Компьютеры » Программы » AutoHotkey


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru