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

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



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
villa777
для проводника соответсвенно класс окна сменить, это для мозиллы
+ надо как-то бороться с контекстым меню, но это лень гуглить
 

Код:
 
~RButton::
IfWinNotActive, ahk_class MozillaWindowClass
  return
if (A_PriorHotkey <> "~RButton" or A_TimeSincePriorHotkey > 400)
  {
    KeyWait, RButton
    return
  }
Send, ^{End}
return
 

Всего записей: 1342 | Зарегистр. 30-03-2003 | Отправлено: 16:21 28-10-2017
villa777



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
HeT BonpocoB
Контекстное по барабану, не критично. Только вот прокручивает почему то только вниз, а вверх никак.

Всего записей: 2773 | Зарегистр. 22-06-2011 | Отправлено: 17:16 28-10-2017
HeT BonpocoB



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

Цитата:
Только вот прокручивает почему то только вниз, а вверх никак.

 
а, надо туда-сюда... нефкурил сразу, сорри
но это уже посложнее, так как откуда собственно ему знать в какую сторону крутить?
 
если страница в каком-то крайнем положении ещё наверно можно как-то это дело программно "выцепить", а вот как узнать куда крутить, если дето вообще в центре страницы?
 
проще наверно сделать cntrl+double click, либо в коде добавить глобальный тригер (0-1)
 
когда 0 - Send, ^{End}  
когда 1 Send, ^{Home}
 
и он соответственно будет туда-сюда окно ездить по очереди

Всего записей: 1342 | Зарегистр. 30-03-2003 | Отправлено: 17:56 28-10-2017 | Исправлено: HeT BonpocoB, 17:56 28-10-2017
villa777



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
HeT BonpocoB
Узнавать не надо, можно проще, чередовать, один раз вверх, другой раз вниз где бы он не находился, и всё. А там я уже сам буду смотреть куда мне надо вверх или вниз.

Всего записей: 2773 | Зарегистр. 22-06-2011 | Отправлено: 18:02 28-10-2017 | Исправлено: villa777, 18:03 28-10-2017
HeT BonpocoB



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

Цитата:
можно проще, чередовать, один раз вверх, другой раз вниз где бы он не находился, и всё.

ну яж говорю, тригер поставить
("код" конечно сырой, но вроде фурычит... скорость клика настраивается)
 
**чтобы контекстное меню не появлялось вообще надо удалить тильду (~) перед RButton

Код:
 
#SingleInstance force
 
villa777_scroll = 0
#IfWinActive, ahk_class CabinetWClass
~Rbutton::
if (A_PriorHotkey != A_ThisHotkey OR A_TimeSincePriorHotkey > 500)
  {
    KeyWait, RButton
    return
  }
Sleep 250
Send, {Esc}
villa777_scroll := ! villa777_scroll
if villa777_scroll
  Send, ^{End}
else
  Send, ^{Home}
return
 

Всего записей: 1342 | Зарегистр. 30-03-2003 | Отправлено: 18:15 28-10-2017 | Исправлено: HeT BonpocoB, 01:28 30-10-2017
villa777



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
HeT BonpocoB
То что надо. А то есть разделы километровые, прокручивать муторно. Спасибо Вам.

Всего записей: 2773 | Зарегистр. 22-06-2011 | Отправлено: 19:23 28-10-2017
HeT BonpocoB



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

Всего записей: 1342 | Зарегистр. 30-03-2003 | Отправлено: 12:15 29-10-2017 | Исправлено: HeT BonpocoB, 01:27 30-10-2017
villa777



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
HeT BonpocoB
Измененный код в проводнике перестал работать. И контекстное меню в один клик не показывает.
 

Цитата:
 
villa777_scroll = 0
#IfWinActive, ahk_class CabinetWClass
RButton::
if (A_PriorHotkey <> "RButton" or A_TimeSincePriorHotkey > 500)
  {
    KeyWait, RButton
    return
  }
Click
sleep 200
Click
villa777_scroll := ! villa777_scroll
if villa777_scroll
  Send, ^{End}
else
  Send, ^{Home}
return
 

Всего записей: 2773 | Зарегистр. 22-06-2011 | Отправлено: 00:05 30-10-2017 | Исправлено: villa777, 00:05 30-10-2017
HeT BonpocoB



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
villa777, сделал очередные изменения
может так? (исправил^
 
(нашёл простую и гениальную идею по закрытию контекстного меню
только там возможно с задержкой (Sleep 250) придётся поднастроить, возможно у всех по разному появляется меню)

Всего записей: 1342 | Зарегистр. 30-03-2003 | Отправлено: 01:23 30-10-2017 | Исправлено: HeT BonpocoB, 01:26 30-10-2017
villa777



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
HeT BonpocoB
Да, теперь всё нормально. Спасибо Вам.

Всего записей: 2773 | Зарегистр. 22-06-2011 | Отправлено: 02:21 30-10-2017
thejustsoul



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите как заменить строку в .exe на другую. Методом найти-заменить, не пропатчить (чтобы не осталось мусора от длинной строки, пример ниже).
Пример, есть portable python, после установки, например pip, в сгенерированном exe содержится полный путь до python.exe, нужно заменить текст на относительный путь.
Текст виден в HEX редакторе и например в Notepad++, если его поменять, то exe остается рабочим, но менять каждый раз вручную, дико напрягает.
 
Пример текста который надо найти и заменить:
Подробнее...
Образец программы.
 
Наверно лучше, если будет функция автоперевода строки в HEX, вместо ручного указания HEX строчки в коде (чтобы не тратить время в будущем на перевод пути в HEX и замену в патчере).
 
Если не получится на AHK, можно и на Autoit.. Пробовал с помощью dUP, но он только патчить умеет похоже, без замены всей строки.. и остается лишнее (а если зануливать остаток, программа уже не работает).
Но если вдруг, есть другой способ (средствами питона например) поменять shebang внутри этих Scripts\*.exe, предлагайте.

Всего записей: 1789 | Зарегистр. 30-03-2014 | Отправлено: 01:27 10-11-2017 | Исправлено: thejustsoul, 09:21 11-11-2017
HeT BonpocoB



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
thejustsoul, вот чую что что-то вы перемудрили.. может лучше в тему питона обратиться?
 
вообще нагуглить патчеров не сложно, но придётся самому проверять работоспособность
 

Цитата:
Пробовал с помощью dUP, но он только патчить умеет похоже, без замены всей строки.. и остается лишнее (а если зануливать остаток, программа уже не работает).

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

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



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

Цитата:
может лучше в тему питона обратиться?  

Вопрос не про питон, а про замену текста (в hex) в exe.
Я уже гуглил, но то что находил меня не устраивало (правда не для ahk, а для AutoIt)..

Цитата:
дык на нижнем скрине занулено.

Это вручную заменено, и сделал скрин как это должно быть после патчинга. dUP патчит начало строки, а все остальное оставляет без изменения, если и остальное заменить на 00, то exe перестает работать.
Вот как он это делает, это не подходит:
   

Не актуально. Похоже я ошибся на счет dUP.

Всего записей: 1789 | Зарегистр. 30-03-2014 | Отправлено: 08:37 11-11-2017 | Исправлено: thejustsoul, 08:53 11-11-2017
akkustik77

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
HeT BonpocoB
Доброго времени суток. )
Помогите пожалуйста, как правильно написать код:
 
~vk52:: SendInput {vk57 Down}
GetKeyState, state, vk57,  
#if ~vk53 and vk57, state = D  
SendInput {vk57 Up}
Sleep 500
#if
return
 
Нужно что бы при програмно зажатй vk57, когда нажимаешь один раз vk53, vk53 отключалась бы на пол секунды и отжимала в верх vk57.
Если vk57 не зажата, то при нажатии или зажатии vk53, vk53 не отключалась бы.

Всего записей: 30 | Зарегистр. 05-04-2007 | Отправлено: 16:50 22-11-2017
HeT BonpocoB



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
akkustik77, яж уже вроде писАл, что в игровых скриптах, не имея собственно игр, разобраться почти не реально! там много нюансов, которые в теории не обкатаешь...
да и логику описанного^ понять очень непросто
 
[исправлено]
по описанию скорее всего надо через "таймер" реализовывать
вот у меня был раньше пример, который биндил педаль на кнопку (не суть важно)
в общем надо разобраться что-на что должно срабатывать и подставить нужные проверки в коде...
(я так думаю)

Код:
 
Joy24::
Send {u down}
SetTimer, WaitForJoy24, 10
return
 
WaitForJoy24:
if not GetKeyState("Joy24")
{
    Send {u up}
    SetTimer, WaitForJoy24, off
    return
}
Send {u down}
return
 


----------
@v0pr0s

Всего записей: 1342 | Зарегистр. 30-03-2003 | Отправлено: 15:19 23-11-2017 | Исправлено: HeT BonpocoB, 16:24 23-11-2017
akkustik77

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
HeT BonpocoB Ясно, спасибо.

Всего записей: 30 | Зарегистр. 05-04-2007 | Отправлено: 12:35 24-11-2017
Sidhe

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый вечер.
Помогите разобраться, не пойму как запустить программу через командную строку. Есть портативная программа, которая должна запускаться в командной строке из конкретной папки:  
D:\Portable Program\GoodbyeDPI-master>goodbyedpi.exe -1 -a  
Подскажите как должен выглядеть скрипт?

Всего записей: 24 | Зарегистр. 21-04-2010 | Отправлено: 18:31 07-01-2018
HeT BonpocoB



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Sidhe
если по простому:
 
кнопка::
Run, "D:\Portable Program\GoodbyeDPI-master\goodbyedpi.exe" -1 -a
 
а если по "умному", то надо нагородить всяких проверок запущена ли программа уже, IfWinNotExist , корректно ли запустилась, и выводить всякие диалоги если что-то пошлО не так...
короче по ситуации, примеры легко гуглятся

----------
@v0pr0s

Всего записей: 1342 | Зарегистр. 30-03-2003 | Отправлено: 18:09 08-01-2018
WlzI

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброго времени суток. У меня возникла такая проблема. Хотел использовать эту программу для игры. Всё прекрасно работает в блокноте, и так же протестировал в Другой игре. Версия с запуском от имени администратора отпадает, пробовал, результат нулевой. Есть подозрения что стоит запрет на использование этой программы (что в свою очередь как минимум странно, но всё же). Возможно нужно настройки подкрутить, не знаю. Буду рад любым советам и предложениям. Заранее Большое Спасибо.

Всего записей: 1 | Зарегистр. 13-01-2018 | Отправлено: 18:29 13-01-2018
data man



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

Цитата:
У меня возникла такая проблема.

Так в чём она заключается?

Цитата:
Хотел использовать эту программу для игры.

Как именно?

----------
Любой достаточно развитый тролль неотличим от подлинно помешанного на какой-либо идее.
Кекс. Антибиотики. Ламбада.

Всего записей: 1696 | Зарегистр. 13-10-2005 | Отправлено: 18:47 13-01-2018
Открыть новую тему     Написать ответ в эту тему

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