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

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



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

Цитата:
Fixed InputHook.EndKey to prefer any vk over sc000.
Fixed InputHook.KeyOpt("{sc000}", flags).
Fixed #Warn Unreachable flagging Case/Default as unreachable.

Всего записей: 2106 | Зарегистр. 15-12-2018 | Отправлено: 22:32 13-07-2020 | Исправлено: Ultmann, 22:16 20-07-2020
Aleksks

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
задача 1:
1) при нажатии кнопки 9: переключить с текущего окна панели задач на предыдущее
2) при втором нажатии кнопки 9: переключить с предыдущего окна на текущее (оно же исходное)
3) при последующих нажатиях кнопки 9: предыдущие 2 действия просто повторяются (сначала первое, затем второе)
 
 
задача 2 (почти такая же, но с обратным смыслом):
1) при нажатии кнопки 0: переключить с текущего окна панели задач на следующее
2) при втором нажатии кнопки 0: переключить с следующего окна на текущее (оно же исходное)
3) при последующих нажатиях кнопки 0: предыдущие 2 действия просто повторяются (сначала первое, затем второе)
 
 
обе задачи выполнены (не мной) в работающем auto-it-скрипте. вот его соответствующая часть:

Код:
 
Case $sSwitchNextBack_HT
                    If $sLast_NextBack_Window <> $aTaskBarWindows[$i][0] Then $sLast_NextBack_Window = ""
                   
                    If $sLast_NextBack_Window = "" Then
                        If $i = $aTaskBarWindows[0][0] Then $i = 0
                        $sActivate_Window = $aTaskBarWindows[$i + 1][0]
                        $sLast_NextBack_Window = $sActivate_Window
                    Else
                        If $i = 1 Then $i = $aTaskBarWindows[0][0] + 1
                        $sActivate_Window = $aTaskBarWindows[$i - 1][0]
                        $sLast_NextBack_Window = ""
                    EndIf
Case $sSwitchBackNext_HT
                    If $sLast_BackNext_Window <> $aTaskBarWindows[$i][0] Then $sLast_BackNext_Window = ""
                   
                    If $sLast_BackNext_Window = "" Then
                        If $i = 1 Then $i = $aTaskBarWindows[0][0] + 1
                        $sActivate_Window = $aTaskBarWindows[$i - 1][0]
                        $sLast_BackNext_Window = $sActivate_Window
                    Else
                        If $i = $aTaskBarWindows[0][0] Then $i = 0
                        $sActivate_Window = $aTaskBarWindows[$i + 1][0]
                        $sLast_BackNext_Window = ""
                    EndIf
 

 
пытаюсь реализовать обе эти задачи в ahk
кроме одного нюанса всё работает (и значительно быстрее, чем в рамках auto-it-кода)
 
нюанс в том, что auto-it-код постоянно (кроме совсем редких случаев) отрабатывает обе задачи корректно
(например, после моих ручных переходов мышкой по разным кнопкам панели задач)
и делает он это вне зависимости от того, сколько раз я нажал кнопку 9 (или 0 для другой задачи): чётное количество раз или нечётное
 
 
а вот ahk-код отрабатывает задачу корректно только если количество нажатий кнопи 9 (или 0 для другой задачи) чётное
некорректность проявляется в переключении на неправильное окно:
- следующее вместо предыдущего (при задаче 1)
- предыдущее вместо следующего (при задаче 2)
то есть, с точки зрения имеющегося кода, всё делается правильно. но задача тут более сложная: не зависеть от количества нажатий
и не знаю, как это прописать в ahk-коде
 
 
поэтому прошу подсказать, как доделать этот почти готовый ahk-скрипт. вот его соответствующая часть:

Код:
 
9::
PreviousCurrentMode++
if (PreviousCurrentMode & 1) {
Gosub, ReadWindowsOnTaskbar
              If(ActiveTaskbarItem) {
          ItemPrev := ActiveTaskbarItem - 1
                If(ItemPrev < 1) {
                ItemPrev := TaskbarItemCount
                                         }
                                                  }  
                  else {
          ItemPrev := ActiveTaskbarItem
                         }
ActivateTaskbarItem(ItemPrev)
return
                                           }
else {
Gosub, ReadWindowsOnTaskbar
              If(ActiveTaskbarItem) {
          ItemNext := ActiveTaskbarItem + 1
                If(ItemNext > TaskbarItemCount) {
                        ItemNext := 1
                                                                  }
                                              } else {
                                             ItemNext := ActiveTaskbarItem
                                                            }
ActivateTaskbarItem(ItemNext)
PreviousCurrentMode = 0
return
      }
 
 
 
0::
NextCurrentMode++
if (NextCurrentMode & 1) {
Gosub, ReadWindowsOnTaskbar
              If(ActiveTaskbarItem) {
          ItemNext := ActiveTaskbarItem + 1
                If(ItemNext > TaskbarItemCount) {
                ItemNext := 1
                                                                          }
                                                   }  
                  else {
          ItemNext := ActiveTaskbarItem
                         }
ActivateTaskbarItem(ItemNext)
return
                                     }
else {
Gosub, ReadWindowsOnTaskbar
              If(ActiveTaskbarItem) {
          ItemPrev := ActiveTaskbarItem - 1
                If(ItemPrev < 1) {
                    ItemPrev := TaskbarItemCount
                                         }
                                                  } else {
                                                     ItemPrev := ActiveTaskbarItem
                                                            }
ActivateTaskbarItem(ItemPrev)
NextCurrentMode = 0
return
      }
 

Всего записей: 127 | Зарегистр. 25-04-2008 | Отправлено: 03:56 29-07-2020
dedulya68



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте. Подскажите, есть ли возможность средствами Autohotkey, реализовать запуск приложения, напечатав только символы. Например, ro , запускает Reg Organizer.

Всего записей: 938 | Зарегистр. 22-12-2016 | Отправлено: 10:55 29-07-2020
Samotek

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

Код:
:*:ro::
    run полныйпутьквашейпрограмме
return ;==================================================================
 


Всего записей: 2432 | Зарегистр. 18-05-2005 | Отправлено: 12:44 29-07-2020
dedulya68



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Samotek
То что надо, спасибо. А то я набирал в одну строку и нифига.

Всего записей: 938 | Зарегистр. 22-12-2016 | Отправлено: 13:00 29-07-2020
Aleksks

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
по поводу важной для меня просьбы четырьмя сообщениями выше
появилась простая идея, реализация которой, возможно, позволит решить проблему
попробую сформулировать эту идею в виде такого вопроса:
 
как именно надо изменить скрипт, чтобы он сбрасывал счётчик?:
PreviousCurrentMode++
или
NextCurrentMode++
 
то есть выполнял одно из этого:
PreviousCurrentMode = 0
или
NextCurrentMode = 0
 
но сбрасывание должно происходить, если какое-то другое окно панели задач получило фокус (любым способом)
 
под каким-то другим окном имеется в виду любое другое окно панели задач кроме тех двух окон, между которыми скрипт и переключает фокус (по нажатиям кнопки 9 или по нажатиям кнопки 0, в зависимости от того, какую из двух задач скрипт должен выполнять)

Всего записей: 127 | Зарегистр. 25-04-2008 | Отправлено: 14:10 19-08-2020
Aleksks

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
#
в данном сообщении под решёткой размещён небольшой (но и не мелкий) скрипт для снимка экрана (включая прозрачные/полупрозрачные окна и курсор)
 
его первые строки выглядят так:
Код:
count++
CaptureScreen(, True,A_Desktop "\Screen" count ".png")
exitapp
 
 
CaptureScreen(aRect = 0, bCursor = False, sFile = "", nQuality = "")

 
но не получается добиться сохранения png-файла в: A_Desktop "\Screen"
png-файл там не создаётся
вместо этого он появляется в буфере обмена (в качестве огромного 9-мб bitmap-файла)
(в виде png-файла этот же снимок занимает примерно в 60 раз меньше места)
 
что именно нужно исправить в скрипте, чтобы png-файлы появлялись по указанному пути?
так, чтобы ещё при этом и названия файлов создавались в соответствии с этой строкой:
Код:
fileName :=  A_YYYY "." A_MM "." A_DD "   " A_Hour "." A_Min "." A_Sec ".png"

 

Всего записей: 127 | Зарегистр. 25-04-2008 | Отправлено: 22:43 27-08-2020
reticent

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

Код:
#SingleInstance force
#SingleInstance force
#NoTrayIcon
#IfWinActive ahk_class TTOTAL_CMD
MButton::
SendMessage, 0x433, 904,,, ahk_class TTOTAL_CMD
return

компилировать и получится "Name.exe" для запуска  F4
средней (колесо) клавишами мыши в  Total Commander.
 
Если запускать плагином Autorun.wdx
Autorun.cfg:
 
## Назначение F4 на клик по клавише мыши

Код:
ShellExec /SW_HIDE  /W /TT  "%COMMANDER_PATH%\Name.exe"  

то процесс прекратится с закрытием окна Total Commander.
 

Всего записей: 46 | Зарегистр. 16-08-2020 | Отправлено: 09:52 28-08-2020 | Исправлено: reticent, 10:02 30-08-2020
Ethereal999



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Народ, под ковром скрипт, с помощью которого можно использовать колесо мыши для прокрутки панели закладок с директориями в TC. Но он у меня молча не запускается (AH 1.1.33.01 x64 , TC 9.51 x32). Если кто хорошо разбирается, посмотрите, пожалуйста, как сделать его рабочим?
 
Оригинальный пост автора на форуме TC.

Всего записей: 698 | Зарегистр. 25-12-2002 | Отправлено: 18:09 28-08-2020 | Исправлено: Ethereal999, 18:26 28-08-2020
tramparamparam02



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Уважаемые, помогите составить скрипт со следующими операциями:  
 
1) Запустить браузер Chrom.exe с адресом страницы www.xxx.com в качестве параметра (я потом сам впишу нужные пути и адреса);
2) Отправить в эту вкладку браузера последовательность нажатий клавиш {TAB} x 10 раз + {SPACE}
3) Повторить цикл нажатия клавиш {TAB} x 10 раз + {SPACE} ещё три раза с паузой между циклами в 10 секунд.
 
Понимаю, что это достаточно простой скрипт, но мне для его составления нужно было бы осваивать язык AHK с нуля, а на это у меня сейчас просто нет времени.
Спасибо!

Всего записей: 2371 | Зарегистр. 30-03-2016 | Отправлено: 23:19 05-09-2020
qupear



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, как принудительно открыть стандартный редактор AHK? Вместо него команда Edit script в контекстном меню открывает обычный блокнот. Насколько понимаю, редактор находится в одном из исполняемых файлов, поэтоу наверное есть консольный параметр, чтобы его запустить. Но какой?
Если точнее нужна одна функция редактора, которой больше нигде нет. В редакторе AHK в главном меню есть пункт "история нажатий" или что-то приблизительно такое по смыслу. Благодаря этой функции можно узнать коды нажимаемых клавиш. Можно ли эти коды из истории нажатий как-то ещё кроме AHK-редактора увидеть? Например, в том же Scite4autohotkey такого не нашёл. В AHK-studio тоже не нашёл историю нажатых клавиш.

Всего записей: 1048 | Зарегистр. 03-02-2013 | Отправлено: 10:52 14-10-2020 | Исправлено: qupear, 11:20 14-10-2020
creature_ws



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

Код:
#InstallKeybdHook
KeyHistory

отобразит историю нажатых клавиш.

Всего записей: 304 | Зарегистр. 29-07-2008 | Отправлено: 11:54 14-10-2020
Samotek

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

Цитата:
В стандартном инсталляторе AHK нет редактора.  

Хорошо, а можно ли вызывать нужный редактор?

Всего записей: 2432 | Зарегистр. 18-05-2005 | Отправлено: 12:07 14-10-2020
creature_ws



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

Цитата:
нужный редактор

Edit в контекстном меню меняется в HKEY_CLASSES_ROOT\AutoHotkeyScript\Shell\Edit\Command
но это уже не относится к AHK.

Всего записей: 304 | Зарегистр. 29-07-2008 | Отправлено: 12:16 14-10-2020 | Исправлено: creature_ws, 12:19 14-10-2020
qupear



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
creature_ws
Спасибо, появилось то самое окошко.

Цитата:
В стандартном инсталляторе AHK нет редактора.

Как-то тем не менее раньше всё работало, что Edit script открывало что-то, где есть меню View, а в нём есть пункт KeyHistory.

Всего записей: 1048 | Зарегистр. 03-02-2013 | Отправлено: 12:20 14-10-2020 | Исправлено: qupear, 12:24 14-10-2020
Samotek

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
creature_ws
Уже спасибо! А через замену контекстного меню tray нет примера?
 

Всего записей: 2432 | Зарегистр. 18-05-2005 | Отправлено: 12:24 14-10-2020
Collapse Troll

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Можно ли сделать что-то, чтобы по горячей клавише (ctrl+q например) - делался Bring to front для окна Chrome? то есть если он свёрнут то чтоб разворачивался, а если где-то под другими окнами то чтобы активизировалось окно.. Вобщем чтобы фокус устанавливался на окно хрома, как понимаю..
 
Может у кого-то что-то похожее есть?
я так-то пользуюсь для автоматизации древней прогой HotKey Manager (HKM)
http://www.killprog.com/hkmr.html
Кстати классная, юзаю лет 15.
 
но там в основном можно повесить либо автоткескт, либо запуск каких-нить своих CMD, а cmd макисмум что сделает это откроет новую вкладку в хроме, что немного не то..

Всего записей: 790 | Зарегистр. 05-08-2006 | Отправлено: 20:11 14-01-2021
Samotek

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Collapse Troll
 
Попробуй
 
$^vk51::    ;  "Ctrl+Q"    
IfWinExist ahk_class Chrome_WidgetWin_1
  {
     WinActivate  
  }
else
  {
  send ^vk51
  }
return ;==================================================================

Всего записей: 2432 | Зарегистр. 18-05-2005 | Отправлено: 20:25 14-01-2021
Collapse Troll

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Samotek
афигеть!!
а можно чтобы свернуть/показать по этой Ctrl+Q?.. (я оборзел )
 
или это уже сложно навскидку..
 
что-то типа такого (код примерный, в AutoHotkey не шарю)

Код:
 
#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn  ; Enable warnings to assist with detecting common errors.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.
$^vk51::    ;  "Ctrl+Q"    
IfWinExist ahk_class Chrome_WidgetWin_1
  {
     WinMaximize,
     WinActivate  
  }
else
  {
  WinMinimize,
  send ^vk51
  }
return ;==================================================================
 

но уже и за это огромное спасибо!) работает!
 
upd.: на крайний случай даже это уже огромное подспорье, тк если окно хрома активно то я могу его свернуть уже и средствами hkm, там у меня активированные окна сворачиваются по Win+Esc:

 

Всего записей: 790 | Зарегистр. 05-08-2006 | Отправлено: 22:46 14-01-2021 | Исправлено: Collapse Troll, 22:55 14-01-2021
Samotek

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

Цитата:
а можно чтобы свернуть/показать по этой Ctrl+Q?

 
$^vk51::    ;  "Ctrl+Q"      
IfWinExist ahk_exe chrome.exe ahk_class Chrome_WidgetWin_1 ; Оказывается у WhatsApp ahk_class точно такой же
  {
    ifWinActive
      {
      WinMinimize
      }
    else
      {
      WinRestore
      WinActivate
      }
  }
else
  {
  send ^vk51  
  }
return ;==================================================================
 

Всего записей: 2432 | Зарегистр. 18-05-2005 | Отправлено: 00:24 15-01-2021 | Исправлено: Samotek, 00:36 15-01-2021
Открыть новую тему     Написать ответ в эту тему

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