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

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

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
thejustsoul, для набранного текста: выделить текст и нажать Pause/Break.
# сам не пользуюсь, вроде работает на win8.1x64 AutoHotkey_L 1.1.24.05 Unicode.

Всего записей: 227 | Зарегистр. 29-03-2016 | Отправлено: 12:31 13-03-2017 | Исправлено: kykrinik, 13:24 13-03-2017
Jluxo79

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

Всего записей: 21 | Зарегистр. 22-11-2007 | Отправлено: 00:51 16-03-2017
kykrinik

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Jluxo79, ...действий с клавы или мыши... - это не годится.
Есть готовые скрипты, содержащие нужные вам строки, ищите их и используйте как шаблоны.  
Это возможно. Начните со сложного, ищите "ahk uploader аплодер" для AutoHotkey_L Unicode.

Всего записей: 227 | Зарегистр. 29-03-2016 | Отправлено: 11:18 16-03-2017 | Исправлено: kykrinik, 14:10 16-03-2017
Samotek

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Jluxo79
Вообще-то AHK это далеко не клавиши запомнить и повторить. Это язык написания скриптов в Windows. Практически любые  действия с и в  Windows возможны.

Всего записей: 2448 | Зарегистр. 18-05-2005 | Отправлено: 11:28 16-03-2017
Jluxo79

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо большое за ответ и направление. Раз это возможно, это просто великолепно.

Всего записей: 21 | Зарегистр. 22-11-2007 | Отправлено: 15:03 16-03-2017 | Исправлено: Jluxo79, 15:03 16-03-2017
suvolod



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, можно ли добиться через autohotkey следующего: я хотел бы чтобы программа отслеживала набор некоторых комбинаций клавиш и если такой встретиться - дописывала некоторый текст в строку ввода. В частности хочу, чтобы при наборе "//++" и "//--" - autohotkey дописывал бы произвольный текст и время. Я хочу таким образом выделять комментарием собственный код в чужих исходниках. Например:  
 
Ввожу "//++" > получаю "//++ mysuite.ru 20.03.2017 08:00:00"
Ввожу "//--" >   получаю "//-- mysuite.ru"
 

Всего записей: 520 | Зарегистр. 18-10-2004 | Отправлено: 21:41 21-03-2017 | Исправлено: suvolod, 21:42 21-03-2017
HeT BonpocoB



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
что за лажа с форумом какой флуд-контроль!
 
suvolod
ну этож даже в примерах есть на прошлой странице
 

Код:
 
:://--::
FormatTime, CurrentDateTime,, dd/MM/yyyy hh:mm:ss
SendInput mysuite.ru + %CurrentDateTime%
return
 

Всего записей: 1342 | Зарегистр. 30-03-2003 | Отправлено: 01:57 22-03-2017
thejustsoul



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, можно ли создать виртуальную "физическую" кнопку и назначить ее вместо Caps Lock?
Например есть у мышки сбоку 2 кнопки и их можно назначить вместо капса, можно ли добавить 3 кнопку (которой нет физически)?
 
Нужно это для TeamSpeak, чтобы назначить активацию голосом по кнопке, но на капс это не удобно, т.к. он включается и меняется регистр. А боковые кнопки заняты мыши.
Другие кнопки типа Alt, не предлагать.
 
Есть XButton1 и XButton2 это 4 и 5 кнопки мыши, боковые, но если назначить XButton3, то ошибка..
Или может есть какие-то свободные виртуальные коды, которыми можно заремапить капс, но так чтобы они нигде небыли задействованы.
 
Пробовал средствами винды, отключать капс через реестр, он конечно отключался, но его после этого нельзя назначить в TeamSpeak как активатор голоса.
 
UPD: вот балбес, нашел решение сразу после вопроса:

Код:
Capslock::F13

 
И, если вдруг кому понадобится, ремап Caps Lock на F13 средствами винды, через реестр:

Код:
Windows Registry Editor Version 5.00
 
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,02,00,00,00,64,00,3a,00,00,00,00,00
 

Всего записей: 1789 | Зарегистр. 30-03-2014 | Отправлено: 01:46 26-03-2017 | Исправлено: thejustsoul, 01:56 26-03-2017
helbvtynec

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
thejustsoul
Вообще да, такие штуки как предание капс-лока анафеме лучше не в AHK делать, а низкоуровнево средствами ОС. Удобнее через SharpKeys. Я давно заремапил CapsLock на LCtrl, а LCtrl на F15 — моя жизнь кардинально улучшилась, и я ни дня не пожалел об этом

Всего записей: 414 | Зарегистр. 19-03-2008 | Отправлено: 22:26 26-03-2017
404NF

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Пытаюсь написать универсальный код для удаления пустых строк из текста. Вот это работает:
SetKeyDelay 200
^+F7::
{
Send ^{vk41}^{vk43}
Loop
{
StringReplace, Clipboard, clipboard, `r`n`r`n, `r`n, All, UseErrorLevel
error1 := ErrorLevel
StringReplace, Clipboard, clipboard, `r`r, `r, All, UseErrorLevel
error2 := ErrorLevel
StringReplace, Clipboard, clipboard, `n`n, `n, All, UseErrorLevel
error3 := ErrorLevel
if (error1 + error2 + error3 = 0)  
    break
}
Send ^{vk56}
}
...но удаляет форматирование из текста. Пробовал экспериментировать с clipboardAll - совсем не работает. Записывал полное содержимое буфера в переменную - та же фигня. Например:
SetKeyDelay 200
^+F7::
{
Send ^{vk41}^{vk43}
sleep 200
 
Loop
{
Clipboard1 = %ClipboardAll%
sleep 200
StringReplace, Clipboard2, clipboard1, `r`n`r`n, `r`n, All, UseErrorLevel
error1 := ErrorLevel
StringReplace, Clipboard3, clipboard2, `r`r, `r, All, UseErrorLevel
error2 := ErrorLevel
StringReplace, Clipboard, clipboard3, `n`n, `n, All, UseErrorLevel
error3 := ErrorLevel
if (error1 + error2 + error3 = 0)
    break
}
Send ^{vk56}
}

Всего записей: 250 | Зарегистр. 21-09-2013 | Отправлено: 11:42 06-04-2017 | Исправлено: 404NF, 11:47 06-04-2017
Krot66



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Проще делать это через регулярные выражения. \R соответствует всем видам переноса строк. Так что

Код:
text:=RegExReplace(text,"\R{2,}","`r`n")

будет вычищать все пустые строки

Всего записей: 1204 | Зарегистр. 10-12-2007 | Отправлено: 13:04 06-04-2017
404NF

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Krot66
Что-то не получается этот код к скрипту прикрутить.
 
Добавлено:
Ну и еще вопрос до кучи. Использую этот код для вставки даты:
FormatTime, Times,, Shortdate
SendInput, %Times%
Посылает дату в формате "дд.мм.гггг" независимо от локали по-умолчанию и от текущей раскладки приложения. Но тот же код, если исходная дата получена от MonthCal, посылает разделителем "ю" вместо точки (при дефолтной английской раскладке и русской или украинской раскладках текущего окна). Если установить русскую или украинскую локаль в FormatTime  
FormatTime, Times, %DayPick% L1049, Shortdate
все равно летят "ю".  В чем тут может быть проблема и как ее решить?
 
Добавлено:
Кстати, если использовать в качестве разделителя {vkbe}, которая, если верить MSDN "For any country/region, the '.' key", все равно "ю" выскакивает.

Всего записей: 250 | Зарегистр. 21-09-2013 | Отправлено: 14:35 06-04-2017 | Исправлено: 404NF, 14:56 06-04-2017
Krot66



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

Код:
 
SetKeyDelay 50, 50
 
^+F7::
Clipboard:=""
Send ^{vk41}^{vk43}
ClipWait 1
text:=Clipboard
Clipboard:=RegExReplace(text,"\R{2,}","`r`n")
Send ^{vk56}
return
 

Описание FormatTime - вы написали что-то вообще из других наречий.

Всего записей: 1204 | Зарегистр. 10-12-2007 | Отправлено: 17:28 06-04-2017
404NF

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

Цитата:
Надо что-то вроде  

Регулярные выражения позволяют избавиться от цикла (что может и хорошо с точки зрения стиля или производительности, но в целом не принципиально), но делает ровно то, что и мой код - убирает форматирование. А если попытаться передать переменной text - ClipboardAll, то на выходе получаем вообще Бог знает что. Значит этот скрип не подойдет для большинства обрабатываемых текстов.
 

Цитата:
Описание FormatTime - вы написали что-то вообще из других наречий.

Я эту штуку пытаюсь под себя настроить http://ahk-wiki.ru/guicontrols#monthcal
Вот код целиком:
^Insert::
Gui, Add, MonthCal, vDayPick
Gui, Add, Button, Default, Submit
Gui, Show
Return
ButtonSubmit:
Gui, Submit
FormatTime, Times, %DayPick%, Shortdate
SendInput, %Times%
Gui, Destroy
Return
 
И ни добавление StringReplace, ни попытки экранировать символы, использовать коды виртуальной клавиатуры - ничего не помогает. На выходе день, месяц и год, разделенные буквами "ю".

Всего записей: 250 | Зарегистр. 21-09-2013 | Отправлено: 18:09 06-04-2017
Krot66



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Касательно первого скрипта. В вордовских файлах такое может быть (это сделано для простых текстовых файлов), но на сравнительно простых файлах все нормально. Можно добавить удаление пробелов и табуляций из пустых строк - они будут пропускаться при обработке т.к. формально не являются пустыми:

Код:
text:=RegExReplace(text,"m)[ \t]+$")

Запускал ваш второй код с разными версиями ahk при разных раскладках клавиатуры - никаких ю - нормальные точки. Shortdate привязана к локали - попробуйте

Код:
 FormatTime, Times, %DayPick%, dd.MM.yyyy

Наконец, попробуйте переустановить ahk

Всего записей: 1204 | Зарегистр. 10-12-2007 | Отправлено: 19:02 06-04-2017
404NF

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Krot66
1. В принципе, у меня есть скрипт для удаления пустых строк в Ворде (и еще один для ЛибрОфис), работающий через эмуляцию ctrl+h и дальнейшего ряда "нажатий" клавиш. Но хотелось сделать что-то действительно универсальное, не зависящее от расположения кнопок и названия окон в разных программах.
А за код для удаления пробелов спасибо, теперь работает лучше. Только мне 50мс задержки маловато, поставил 200.
2.
Цитата:
Запускал ваш второй код с разными версиями ahk при разных раскладках клавиатуры - никаких ю - нормальные точки.

Так и не понял, почему не работает нормально через Send %Times% методом тыка нашел решение через буфер:
FormatTime, Clipboard, %DayPick%, Shortdate
Send ^{vk56}
 
Добавлено:
Ну и раз уж пошла такая пьянка, еще один вопрос. Есть ли какой-то способ действовать скриптом в поле изменения имени файла в Проводнике? У меня там даже эмуляция ctrl+v не работает.

Всего записей: 250 | Зарегистр. 21-09-2013 | Отправлено: 20:28 06-04-2017 | Исправлено: 404NF, 20:53 06-04-2017
Krot66



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
404NF
Не обратил внимания на способ отправки. Такие вещи иногда лечатся добавлением {Raw} в начале посылаемой командой Send строки

Всего записей: 1204 | Зарегистр. 10-12-2007 | Отправлено: 21:24 06-04-2017
404NF

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Krot66
Переменную в строке с Raw не отправишь.

Всего записей: 250 | Зарегистр. 21-09-2013 | Отправлено: 21:41 06-04-2017
Krot66



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

Код:
SendInput, {Raw}%Times%

Всего записей: 1204 | Зарегистр. 10-12-2007 | Отправлено: 22:00 06-04-2017
404NF

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Не работает. Да ладно, уже ведь как-то наладил через клиборд. Зато буду знать, что в строке с Raw может быть переменная, а то SendRaw никаких % не терпит.

Всего записей: 250 | Зарегистр. 21-09-2013 | Отправлено: 22:10 06-04-2017
Открыть новую тему     Написать ответ в эту тему

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