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

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



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

Всего записей: 100 | Зарегистр. 08-07-2011 | Отправлено: 18:38 03-05-2015
LonerDergunov



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть ли какой-нибудь надёжный способ отработки команды ControlClick или альтернативы?
В ХР как-то эта команда постабильней работает, а вот в Win 8.1 (или из-за того, что компьютер помощнее) - полный хаос, часто не успевает отработать, иногда даже видно, как контрол нажимается (темнеет, мигает), но самого клика не происходит.
 
Открыто окно, нужно автоматически поставить крыжики в нескольких чекбоксах, нажать кнопочки... Фактически кликнуть мышкой.
ControlClick, % CheckBox1, ahk_class ProgClass
ControlClick, % CheckBox2, ahk_class ProgClass
ControlClick, % CheckBox3, ahk_class ProgClass
Играюсь с Sleep, SetKeyDelay - не помогает, срабатывает когда как, иногда успевает отработать, иногда нет...
 
Предварительный переход на контрол тоже не даёт результата...
ControlFocus, % CheckBox1, ahk_class ProgClass
 
Строка SetBatchLines, -1 прописана.
 
Помогает разве что огромная задержка
SetKeyDelay, 150, 150
и длинные паузы
Sleep, 500
 
Добавлено:



Цитата:
Есть ли какой-нибудь надёжный способ отработки команды ControlClick или альтернативы?

Придумал/нагуглил/адаптировал варианты:
SendMessage, 0x201,,, % CheckBox1, ahk_class ProgClass  ;WM_LBUTTONDOWN=0x201
SendMessage, 0x202,,, % CheckBox1, ahk_class ProgClass      ;WM_LBUTTONUP=0x202
и
ControlSend , % CheckBox1, {Space}, ahk_class ProgClass
 
Но какой из них более "стабильный", "корректный", "предпочтительней"? Может, ещё какие варианты предложите?

Всего записей: 2972 | Зарегистр. 11-07-2007 | Отправлено: 02:57 04-05-2015 | Исправлено: LonerDergunov, 04:09 04-05-2015
creature_ws



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

Всего записей: 304 | Зарегистр. 29-07-2008 | Отправлено: 08:15 17-05-2015 | Исправлено: creature_ws, 09:19 17-05-2015
ph



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

Всего записей: 211 | Зарегистр. 22-08-2002 | Отправлено: 22:00 19-05-2015
OnMyDSeeAtAll



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
2LonerDergunov У меня (w7x64) все описанные варианты работают без нареканий.

2ph
Как-то так.

Всего записей: 100 | Зарегистр. 08-07-2011 | Отправлено: 23:39 20-05-2015
ixet

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Приветствую знатоков!
Недавно купил недорогой ультрабук Lenovo M30-70 (проц i3, Win8.1). Машинка так себе, но для командировок с офисными задачами пойдет. Но есть огромный косяк с клавиатурой, из-за чего работать невозможно. С помощью AutoHotKey исправить его, похоже, можно, но умений у меня не хватает. Потому очень прошу помочь.
 
В чем проблема. По умолчанию у всех Lenovo ряд кнопок F1-F12 работает через Fn, но их можно вернуть к нормальному состоянию через BIOS. Но у этого ноута такое извращение касается и ряда клавиш Home, PgUp, PgDown, End. И самое поганое, что с «противоходом», т.е. либо у тебя нормальная F1, либо Home! По-моему, если это офисный ноут, то приоритет должен быть отдан печати, а при скоростной навигации по тексту и наборе текста жизненно необходимы сочетания клавиш Ctrl-Home, Ctrl-Shift-Home и т.д. Попробуйте-ка понажимать последнее сочетание еще и с Fn!
 
Но это еще полбеды. Если у этого ноута переключить BIOS в режим с нормальным функционированием F1-F12, то перестаёт работать сочетание клавиш Ctrl-Home и Ctrl-Shift-Home! Вот такая засада: или жить с кривыми F1-F12, но нормальными Home-End, или нормальные F1-F12, но кривые Home-End и с неработающим Ctrl-Home .  
Думал проблемы в Win8.1, загрузился с LiveCD в WinXP и Win7 – то же самое. Сканировал коды клавиш: каким-то образом при нажатии Ctrl-Home возвращается нажатие Ctrl-Break, хотя без нажатия Ctrl всё нормально.  
Как это победить, х.з. Нигде никакой информации. Только на английском леново-форуме (Ссылка) предложен скрипт для исправления. Скрипт я переделал под свою ситуацию и Fn нажимать теперь не надо. Но для Ctrl-Home скрипт не работает. Сейчас Ctrl-Home работает также как Ctrl-End; Ctrl-Shift-Home как Ctrl-Shift-End. Автор скрипта Ctrl-Home переназначил на Alt-Home, и говорит, что других способов не видит. Но мне это не нравится.  
 
Может всё-таки есть варианты полноценного исправления нажатия Ctrl-Home и Ctrl-Shift-Home? Через какие-нибудь условия например, в таких сложностях я, увы не силён.
 
Прикладываю свой скрипт и отсканированные коды всех вариантов нажатия клавиш.
 

Код:
 
; key codes:  
; ^ Ctrl, + Shift, ! Alt
; 45 Pause, 146 CtrlBreak, 46 ScrollLock, 152 Insert, 147 Home, 14F End, 149 PgUp, 151 PgDn
 
SC045 :: Send {Home}
^SC045 :: Send ^{Home}
+SC045 :: Send +{Home}
^+SC045 :: Send ^+{Home}
 
SC146 :: Send {End}
^SC146 :: Send ^{End}
+SC146 :: Send +{End}
^+SC146 :: Send ^+{End}
 
SC046 :: Send {PgUp}
^SC046 :: Send ^{PgUp}
+SC046 :: Send +{PgUp}
^+SC046 :: Send ^+{PgUp}
 
SC152 :: Send {PgDn}
^SC152 :: Send ^{PgDn}
+SC152 :: Send +{PgDn}
^+SC152 :: Send ^+{PgDn}
 
; проблема: Ctrl-Home работает также как Ctrl-End; Ctrl-Shift-Home как Ctrl-Shift-End  
 

 

Код:
 
Последовательное нажатие клавиш Home, End, PgUp, PgDn
-------------------------------------------------------------------------------------------------------------
13  045         d    5.08    Pause              
13  045         u    0.01    Pause              
03  146         d    1.00    CtrlBreak          
03  146         u    0.00    CtrlBreak          
91  046         d    0.81    ScrollLock         
91  046         u    0.22    ScrollLock         
2D  152         d    0.58    Insert             
2D  152         u    0.22    Insert             
 
Последовательное нажатие клавиш Home, End, PgUp, PgDn  + Fn
-------------------------------------------------------------------------------------------------------------
24  147         d    8.69    Home               
24  147         u    0.14    Home               
23  14F         d    0.48    End                
23  14F         u    0.16    End                
21  149         d    0.45    PgUp               
21  149         u    0.16    PgUp               
22  151         d    0.51    PgDn               
22  151         u    0.14    PgDn               
 
Последовательное нажатие клавиш Home, End, PgUp, PgDn  + Ctrl
-------------------------------------------------------------------------------------------------------------
A2  01D         d    4.34    LControl           
03  146         d    0.20    CtrlBreak          
03  146         u    0.02    CtrlBreak          
03  146         d    0.28    CtrlBreak          
03  146         u    0.00    CtrlBreak          
03  046         d    0.31    CtrlBreak          
03  046         u    0.09    CtrlBreak          
2D  152         d    0.22    Insert             
2D  152         u    0.08    Insert             
A2  01D         u    0.06    LControl    
 
Последовательное нажатие клавиш Home, End, PgUp, PgDn  + Ctrl Fn
-------------------------------------------------------------------------------------------------------------
A2  01D         d    8.16    LControl           
23  14F         d    0.73    End                
23  14F         u    0.11    End                
21  149         d    0.31    PgUp               
21  149         u    0.11    PgUp               
22  151         d    0.31    PgDn               
22  151         u    0.09    PgDn               
A2  01D         u    0.14    LControl           
 
Последовательное нажатие клавиш Home, End, PgUp, PgDn  + Shift
-------------------------------------------------------------------------------------------------------------
A0  02A         d    12.53    LShift             
13  045         d    0.00    Pause              
13  045         u    0.00    Pause              
03  146         d    0.31    CtrlBreak          
03  146         u    0.02    CtrlBreak          
91  046         d    0.31    ScrollLock         
91  046         u    0.09    ScrollLock         
2D  152         d    0.22    Insert             
2D  152         u    0.08    Insert             
A0  02A         u    0.09    LShift             
 
Последовательное нажатие клавиш Home, End, PgUp, PgDn  + Shift Fn
-------------------------------------------------------------------------------------------------------------
A0  02A         d    8.33    LShift             
24  147         d    0.20    Home               
24  147         u    0.09    Home               
23  14F         d    0.22    End                
23  14F         u    0.08    End                
21  149         d    0.25    PgUp               
21  149         u    0.08    PgUp               
22  151         d    0.25    PgDn               
22  151         u    0.08    PgDn               
A0  02A         u    0.14    LShift  
 
Последовательное нажатие клавиш Home, End, PgUp, PgDn  + Shift Ctrl
-------------------------------------------------------------------------------------------------------------
A2  01D         d    5.41    LControl           
A0  02A         d    0.01    LShift             
03  146         d    0.23    CtrlBreak          
03  146         u    0.01    CtrlBreak          
03  146         d    0.34    CtrlBreak          
03  146         u    0.00    CtrlBreak          
91  046         d    0.34    ScrollLock         
91  046         u    0.09    ScrollLock         
2D  152         d    0.23    Insert             
2D  152         u    0.08    Insert             
A0  02A         u    0.06    LShift             
A2  01D         u    0.01    LControl    
 
Последовательное нажатие клавиш Home, End, PgUp, PgDn  + Shift Ctrl Fn
-------------------------------------------------------------------------------------------------------------
A2  01D         d    4.19    LControl           
A0  02A         d    0.03    LShift             
23  14F         d    0.47    End                
23  14F         u    0.08    End                
21  149         d    0.26    PgUp               
21  149         u    0.09    PgUp               
22  151         d    0.23    PgDn               
22  151         u    0.08    PgDn               
A0  02A         u    0.08    LShift             
A2  01D         u    0.00    LControl    
 
 

Всего записей: 67 | Зарегистр. 17-10-2008 | Отправлено: 19:44 14-07-2015 | Исправлено: ixet, 22:12 14-07-2015
ixet

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Появилась идея. Может можно Ctrl-Home реализовать через жесткий переход к первой строке активного окна, типа GoTo?

Всего записей: 67 | Зарегистр. 17-10-2008 | Отправлено: 20:34 15-07-2015
mxzoommax



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть ли тут люди, активно использующие Autohotkey? Расскажите, сильно ли версия L уступает по функционалу AutoIt3? Можно ли продуктивно использовать Autohotkey v2? Есть ли вменяемая документация по второй версии? Использую текущую стабильную версию в работе, но часто сталкиваюсь, с тем, скрипты отрабатывают по разному на разных ОС (win7, win8), и вообще, не очень логичный, запутанный синтаксис в некоторых местах. В связи с этим думаю перейти на AutoIt, или дождаться AHKv2. Целесообразно, как думаете?

Всего записей: 3 | Зарегистр. 04-01-2015 | Отправлено: 20:51 03-09-2015
DJ_URAN



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Други! А как прописать символ ± в программе? Комбинацией или номером спецсимвола?

Всего записей: 282 | Зарегистр. 05-01-2010 | Отправлено: 00:51 11-09-2015
OnMyDSeeAtAll



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mxzoommax 20:51 03-09-2015
Цитата:
...сильно ли версия L уступает по функционалу AutoIt3?
Не сравнивал (за не надобностью), может и можно найти сильные и слабые стороны.
Цитата:
Можно ли продуктивно использовать Autohotkey v2?
Есть опыт работы с первой версией?, описанные отличия не напрягают?, значит можно использовать.
Цитата:
Есть ли вменяемая документация по второй версии?
Нативная вполне вменяема.
Цитата:
...скрипты отрабатывают по разному на разных ОС...
Есть встроенная переменная на такие случаи.
Цитата:
...не очень логичный, запутанный синтаксис в некоторых местах.
Не нахожу его таковым, запутанными/трудно читаемыми могут быть скрипты (к примеру с оффорума).
Цитата:
...думаю перейти на AutoIt, или дождаться AHKv2. Целесообразно, как думаете?
Хозяин-барин как говорится.
DJ_URAN 00:51 11-09-2015
Цитата:
...как прописать символ ± в программе?
Варианты:

Всего записей: 100 | Зарегистр. 08-07-2011 | Отправлено: 18:40 30-09-2015
D1D1D1D

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

Всего записей: 1368 | Зарегистр. 05-04-2010 | Отправлено: 13:26 02-11-2015 | Исправлено: D1D1D1D, 22:05 09-11-2015
shaggoth



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

Код:
#Persistent
#IfWinActive Fallout4
SetTimer, PressTheKey, 900000
Return
 
PressTheKey:
Send, {F5}
Return
 

 
подскажите что здесь не так? я полное дерево в этом, никак не могу разобратся

----------
[ about me | psychedelic planet estonia ]

Всего записей: 3454 | Зарегистр. 12-01-2002 | Отправлено: 21:27 11-11-2015
OnMyDSeeAtAll



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

Всего записей: 100 | Зарегистр. 08-07-2011 | Отправлено: 01:54 12-11-2015
shaggoth



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Нет, всё равно не хочет жмакать

----------
[ about me | psychedelic planet estonia ]

Всего записей: 3454 | Зарегистр. 12-01-2002 | Отправлено: 21:35 12-11-2015
OnMyDSeeAtAll



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Тогда снимите комментарий (;) со второй строки.

Всего записей: 100 | Зарегистр. 08-07-2011 | Отправлено: 07:55 13-11-2015
Samotek

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет! Может кто-то работал с PotPlayer. Хочу послать клавиши именно ему, а не всему на компе - send работает, а для ControlSend никак не могу послать клавишу. Все ниже описанные варианты не работают!
  potwin = PotPlayer
  ControlSend, Afx:63250000:8:00010005:01900011:000000003, {F9}, ahk_class %PotWin%
  ControlSend, class_nn Afx:63250000:8:00010005:01900011:000000003, {F9}, ahk_class %PotWin%
  ControlSend, AfxWnd120su5, {F9}, ahk_class %PotWin%
  ControlSend, AfxWnd120su4, {F9}, ahk_class %PotWin%
  ControlSend, , {F9}, ahk_class %PotWin%
  ControlSend, ahk_parent, {F9}, ahk_class %PotWin%
 
То-есть даже не понимаю какому контролу посылать! Из того, что показал WinSpy. Подскажите, пожалуйста, как реализовать?

Всего записей: 2448 | Зарегистр. 18-05-2005 | Отправлено: 12:54 14-11-2015 | Исправлено: Samotek, 12:54 14-11-2015
Krot66



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
У PotPlayer скиновый интерфейс, а не "правильные" контролы  Windows.
Куда проще использовать конструкции, позволяющие привязывать множество клавиш к активному окну:

Код:
 
#IfWinActive ahk_class PotPlayer
Hotkey::Send {F9}
..........
..........
#IfWinActive

Всего записей: 1204 | Зарегистр. 10-12-2007 | Отправлено: 16:23 14-11-2015
Samotek

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

Всего записей: 2448 | Зарегистр. 18-05-2005 | Отправлено: 18:24 14-11-2015
D1D1D1D

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

Код:
1::
  PostMessage, 0x111, 10195,,, ahk_class PotPlayer
  RETURN

Для получения кодов сообщений нужна программа Winspector.
 
 
 
Добавлено:
Существует ли способ с помощью AHK получать путь к проигрываемому файлу?
 
 
.

Всего записей: 1368 | Зарегистр. 05-04-2010 | Отправлено: 20:10 17-11-2015 | Исправлено: D1D1D1D, 20:11 17-11-2015
Krot66



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
D1D1D1D
Путей в общем-то два:
1. Если приложение, как MPC, позволяет выводить полный путь в названии окна, с помощью RegExMatch вытащить его оттуда.
2. Если приложение запущено вместе с файлом, можно вытащить его из командной строки с помощью такой функции:

Код:
GetPath(title)
{
    WinGet pr, ProcessName, % title
    Process, Exist, % pr
    pid := ErrorLevel
    for process in ComObjGet("winmgmts:").ExecQuery("Select * from Win32_Process")
    If (process.ProcessId = pid)
    cmdline := process.CommandLine
    If cmdline contains Explorer.exe
        cmdline:=""
    fp:=RegExMatch(cmdline,"i)[a-z]:\\.*\.[a-z0-9]{2,5}",f_path,6)
    return f_path
}


Всего записей: 1204 | Зарегистр. 10-12-2007 | Отправлено: 20:32 17-11-2015
Открыть новую тему     Написать ответ в эту тему

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