Перейти из форума на сайт.Реклама на Ru.Board


Система IP-видеонаблюдения "Линия". Скачать бесплатную демо-версию для 16 камер. НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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

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

chum2000

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

   
 
Актуальная версия: AutoHotkey 1.1.27.04 от 10 января 2018
 
Официальный сайт | Англоязычный форум | Русскоязычный форум
Документация (англ.) | Документация и статьи (рус.) | История изменений
 
Подборка полезных скриптов | AutoHotkey + Total Commander
 

Цитата:
AutoHotkey — бесплатная open-source программа для создания макросов и автоматизации, позволяющая упростить повторяющиеся задачи.
 
AutoHotkey позволяет изменить интерфейс практически любой программы. Имеет собственный скриптовый язык, нацеленный специально на лёгкое назначение и переназначение горячих клавиш.
 
AutoHotkey можно использовать для запуска программ, отправки текста, симуляции мыши. Скриптовый язык позволяет управлять окнами, файлами и папками. Команды могут быть активированы горячими клавишами.
 
Также имеются возможности создания GUI, работы с реестром, использования собственного API окон для вызова DLL файлов. Скрипты можно скомпилировать в exe файл и запускать на любом компьютере с ОС Windows соответствующей версии.
 
Наиболее частое применение AutoHotkey:
- переназначение клавиш, глобально или у отдельных программ.
- управление мышкой с помощью клавиатуры или джойстика.
- слежение за системой, автоматическое выполнение некоторых действий по желанию пользователя, таких как напоминание, сканирование или резервное копирование.
 
САМОЕ ГЛАВНОЕ - программа бесплатна и с исходниками.

Всего записей: 498 | Зарегистр. 04-03-2004 | Отправлено: 00:28 02-06-2005 | Исправлено: creature_ws, 16:59 10-01-2018
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
 

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



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

Всего записей: 1257 | Зарегистр. 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}
 
и он соответственно будет туда-сюда окно ездить по очереди

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



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

Всего записей: 1257 | Зарегистр. 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
 

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



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

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



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

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



Advanced 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
 

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



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

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



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

Всего записей: 1257 | Зарегистр. 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, предлагайте.

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



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

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

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

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



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

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

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

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

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

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

Всего записей: 1674 | Зарегистр. 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

Всего записей: 1323 | Зарегистр. 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  
Подскажите как должен выглядеть скрипт?

Всего записей: 16 | Зарегистр. 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

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

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

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



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

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

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

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

Как именно?

----------
Кекс. Антибиотики. Ламбада.

Всего записей: 1406 | Зарегистр. 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

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

Имя:
Пароль:
Сообщение

Для вставки имени, кликните на нем.

Опции сообщенияДобавить свою подпись
Подписаться на получение ответов по e-mail
Добавить тему в личные закладки
Разрешить смайлики?
Запретить коды


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

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.Board
© Ru.Board 2000-2018

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru