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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
vadim3sh



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
A можно как-то назначить одну горячую клавишу для 2 и более разных скриптов?
 
 
И еще...
 

Код:
.....
     Send ^{vk43}

в случае с русской+англ раскладкой надо записывать именно так..
 
А вот  
 

Код:
 !^{vk43}::
     Send ......

 сохранить не дает, но и проблем не возникает вроде бы пока.. Так и есть?

Всего записей: 457 | Зарегистр. 28-01-2006 | Отправлено: 03:17 21-06-2013 | Исправлено: vadim3sh, 03:34 21-06-2013
PPavlukha

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

Цитата:
OnMyDSeeAtAll
Тут несколько вариантов как можно оформить условие соответствия:

 
Спасибо!
 

Всего записей: 38 | Зарегистр. 20-07-2008 | Отправлено: 18:58 21-06-2013
OnMyDSeeAtAll



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

Цитата:
A можно как-то назначить одну горячую клавишу для 2 и более разных скриптов?
Можно, нужно поставить префикс ~ перед каждой горячей клавишей в каждом скрипте, пример:
Код:
~Space::MsgBox, 262144, % A_LineNumber, % A_ScriptName ;, % 1.5

Цитата:
...надо записывать именно так...
Предпочитаю другую системную комбинацию:
Send, ^{Ins} ; copy
Send, +{Ins} ; paste
Пример:
Код:
Space::Send, ^{Ins}
>^Space::Send, +{Ins}
; rctrl+space
или:
Код:
Space::
   
ControlGetFocus,
nCtrl, % "A"
   
PostMessage,
WM_COPY:=0x301,,, % nCtrl, % "A" ; copy
   
Return
>^Space:: ; rctrl+space
   
ControlGetFocus, nCtrl, % "A"
   
PostMessage,
WM_PASTE:=0x302,,, % nCtrl, % "A" ; paste
   
Return

Цитата:
сохранить не дает...

Код:
Clipboard:="" ; clear before usage
 
!^vk43::
   
Send, ^{Ins}
   
ClipWait, .75
   
MsgBox, 262144,
% A_LineNumber, % Clipboard, % 1.5
   
KeyWait, vk43`
   
Clipboard:=""
   
Return

Всего записей: 100 | Зарегистр. 08-07-2011 | Отправлено: 19:12 21-06-2013 | Исправлено: OnMyDSeeAtAll, 19:15 21-06-2013
vadim3sh



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

 
 

Код:
 !^vk43::
   Send, ^{Ins}  

 
здесь виртуальный код просто без скобок надо

Всего записей: 457 | Зарегистр. 28-01-2006 | Отправлено: 20:55 21-06-2013 | Исправлено: vadim3sh, 21:29 21-06-2013
OnMyDSeeAtAll



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ну это как бы сама комбинация горячих клавиш.

Всего записей: 100 | Зарегистр. 08-07-2011 | Отправлено: 05:09 22-06-2013
vadim3sh



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет
Братцы, только не бейте ногами.. По простоте ошибки понимаю, что спрашиваю глупость. Но в каком месте, найти не могу.
Я ее в скрипте отлавливал сутки. Отловил где, но не понимаю: почему..
 
Как переназначение клавиш влияет на появление месседж бокса?
 

Код:
 
^g::!m  ; если эту строчку убираем, MsgBox начинает появляться
 
 
MyVar2 = 123
 
if MyVar2 = 123
{
    MsgBox MyVar2 имеет значение %MyVar2%
}
 

 
Спасибо и заранее извиняйте за "затупил".
 
P.S. Вроде разобрался.
 
Любую команду "саму по себе" Autohotkey выполняет только если не назначено нa одной горячей клавиши:
Так выполняет:

Код:
Run calc.exe

Так не выполняет:

Код:
a::b
Run calc.exe
 

Так ессно выполняет при нажатии а:

Код:
a::
SendInput b
Run calc.exe
return
 


Всего записей: 457 | Зарегистр. 28-01-2006 | Отправлено: 04:45 08-07-2013 | Исправлено: vadim3sh, 00:16 13-07-2013
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Друзья, подскажите, пожалуйста, скрипт, который выполнял бы следующее:
по двойному клику мышки с нажатой клавишей Ctrl (левый) на слове (в любом документе, поддерживающем копирование текста) -> это слово выделяется и выполняется Ctrl+С+С.
Заранее благодарен.

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 19:05 13-07-2013
vadim3sh



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Имеется в виду при зажатом Ctrl двойное нажатие на C?

Всего записей: 457 | Зарегистр. 28-01-2006 | Отправлено: 02:42 14-07-2013
LonerDergunov



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

Цитата:
Имеется в виду при зажатом Ctrl двойное нажатие на C?

Тогда вот тут несколько вариантов решения.

Всего записей: 2972 | Зарегистр. 11-07-2007 | Отправлено: 04:54 14-07-2013
coherent

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

Цитата:
Имеется в виду при зажатом Ctrl двойное нажатие на C?

Да, именно так. Все же уточню. Действие: нажимаю Ctrl и двойной клик мышкой на слове. Результат: слово выделяется и выполняется команда Ctrl+С+С (при зажатом Ctrl двойное нажатие на C).
 
LonerDergunov

Цитата:
Тогда вот тут несколько вариантов решения.

Буду разбираться, спасибо за ссылку! Просто для меня - это совершенно новая территория, осталось начать и разобраться.
 
К сожалению не то. Меня интересует двойной клик мышкой с зажатой клавишей Ctrl.

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 17:27 14-07-2013 | Исправлено: coherent, 21:56 14-07-2013
vadim3sh



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Наверное, стоит еще определить: время между нажатиями "с" лимитировано (такое для меня странное сочетание - наверное, какая-то программа просит?)?

Всего записей: 457 | Зарегистр. 28-01-2006 | Отправлено: 23:01 14-07-2013
coherent

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

Цитата:
Наверное, стоит еще определить: время между нажатиями "с" лимитировано

Лимитировано, два последовательных нажатия (достаточно быстро).

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 00:08 15-07-2013
vadim3sh



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ну ка ся.. Чего будет?

Код:
 
~^LButton::
If DoubleClick(400)
    SendInput {CtrlDown}{vk43}{vk43}
Return
 
DoubleClick(clickTimeout)
{
    return A_TimeSincePriorHotkey<clickTimeout and A_ThisHotkey = A_PriorHotkey
}
 
 

 

Всего записей: 457 | Зарегистр. 28-01-2006 | Отправлено: 00:53 15-07-2013
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vadim3sh
Спасибо за скрипт!
К сожалению сразу не могу проверить, целый день буду за компьютером (не своим), где не установлен AutoHotkey. Ближе к вечеру проверю и дам знать.
 
добавлено
Все работает, как задумано! Огромное спасибо, Вы мне очень помогли!

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 11:01 15-07-2013 | Исправлено: coherent, 15:31 15-07-2013
newbie2k6

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
У меня AutoHotkey 1.1.08.01. Подскажите, пожалуйста, как с помощью регулярного выражения произвести следующую замену:
"текст текст текст [111]" -> "текст текст текст #111"
 
Здесь "текст текст текст" — произвольный текст, а "[111]" — число длиной от 1 до 3 символов, заключенное в квадратные скобки.
 
Следующий код работает не так, как хотелось бы, а именно не вставляет символ #, зато обрезает первую цифру:

Код:
NewText := RegExReplace(OldText, "^(.*).\[([0-9]{1,3})\]$", "$1 #$2")
 
Однако если заменить # на другой символ, такой как _ (символ подчеркивания), то код работает. Ничего не понимаю...

Всего записей: 117 | Зарегистр. 05-10-2006 | Отправлено: 15:55 17-07-2013
creature_ws



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

Код:
MsgBox % RegExReplace("текст текст текст [111]", "\[(\d{1,3})\]$", "#$1")

Всего записей: 304 | Зарегистр. 29-07-2008 | Отправлено: 17:22 17-07-2013 | Исправлено: creature_ws, 17:31 17-07-2013
newbie2k6

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

Цитата:

Код:
MsgBox % RegExReplace("текст текст текст [111]", "\[(\d{1,3})\]$", "#$1")

Спасибо за улучшенный вариант! Как выяснилось, ошибка была у меня в другом месте (боюсь, что в ДНК ). Дело в том, что полученную строку я отправлял в поле ввода командой Send, позабыв, что она преобразует символ # в нажатие клавиши Win. Как только заменил Send на SendRaw, всё заработало.

Всего записей: 117 | Зарегистр. 05-10-2006 | Отправлено: 07:47 18-07-2013
coherent

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vadim3sh
Использования скрипта с различными документами показал, что он не срабатывает в случае pdf-документов. Скрипт использую для передачи слова для перевода в GoldenDict. При двойном клике на слове в рdf-документе (который поддерживает копирование текста!) передается не это слово, а то, которое уже находится в буфере обмена и которое туда попало при последнем корректном срабатывании скрипта в других документах, например в Опере. Т.е., например в Опере последним словом было "word1", оно осталось в буфере, и теперь при попытке передать (при помощи скрипта) любое слово из рdf-документа в GoldenDict всегда передается именно это слово "word1". При этом издается звук, свидетельствующий о том, что кому-то что-то не нравится! При всем при этом, если просто выделить слово двойным кликом (без нажатой клавиши Ctrl) и нажать Ctrl+С+С, то слово передастся в GoldenDict без проблем.
В этой связи просьба, возможно в скрипте можно что-то изменить, чтобы он работал и с рdf-документами.

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 20:47 20-07-2013
LonerDergunov



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

Цитата:
не срабатывает в случае pdf-документов

Самое главное-то не указали.
В любой программе просмотра Pdf-файлов или в какой-то определённой/определённых программах ?
С любыми pdf (с OCR-слоем и изначально компьютерными) или с какими-то определёнными ?

Всего записей: 2972 | Зарегистр. 11-07-2007 | Отправлено: 21:02 20-07-2013 | Исправлено: LonerDergunov, 21:03 20-07-2013
coherent

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

Цитата:
В любой программе просмотра Pdf-файлов или в какой-то определённой/определённых программах ?

Использую PDF-XChange Viewer.  

Цитата:
С любыми pdf (с OCR-слоем и изначально компьютерными) или с какими-то определёнными ?

Не знаю, корректно ли я отвечу на вопрос, но речь идет о PDF, созданных из текстовых форматов. Т.е. они поддерживаю поиск, выделение и копирование текста.

Всего записей: 3881 | Зарегистр. 20-02-2007 | Отправлено: 22:32 20-07-2013
Открыть новую тему     Написать ответ в эту тему

Страницы: 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