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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cryzer 22:34 26-02-2014

Цитата:
В сети ответа не нашёл...
Хотя он там есть.

Всего записей: 100 | Зарегистр. 08-07-2011 | Отправлено: 01:17 27-02-2014 | Исправлено: OnMyDSeeAtAll, 01:23 27-02-2014
Cryzer



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

Всего записей: 102 | Зарегистр. 22-09-2007 | Отправлено: 21:39 27-02-2014
villa777



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть скрипт по нажатию СКМ закрывающий программу, окно. Как сделать чтобы он срабатывал только после некоторого удержания СКМ(1-2секунды), а не сразу.  

Код:
~MButton::  
    WinGetClass, Win_Class, A  
    If ( Win_Class = "Shell_TrayWnd" OR Win_Class = "ProgMan" OR Win_Class = "AltDesk1.x" )
        Return    
    WinClose, ahk_class %Win_Class%  
    Sleep, 200  
    Send {TAB}  
    Sleep, 50  
    Send {ENTER}  

Всего записей: 2773 | Зарегистр. 22-06-2011 | Отправлено: 12:15 28-02-2014 | Исправлено: villa777, 12:16 28-02-2014
creature_ws



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

Всего записей: 304 | Зарегистр. 29-07-2008 | Отправлено: 13:50 28-02-2014
villa777



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

Всего записей: 2773 | Зарегистр. 22-06-2011 | Отправлено: 14:21 28-02-2014
vadim3sh



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

Код:
+^!3::menu, tray, Icon
+^!8::menu, tray, Noicon
 
MButton::
TimeButtonDown = %A_TickCount%
; Wait for it to be released
Loop
   {
   Sleep 10
   GetKeyState, MButtonState, MButton, P
   if MButtonState = U  ; Button has been released.
    
      {
          Send !^{vk56} ; Здесь любая команда на короткое нажатие
           exit
       }
   elapsed = %A_TickCount%
   elapsed -= %TimeButtonDown%
   if elapsed > 600  ; Настройка задержки
         {  
    WinGetClass, Win_Class, A  
    If ( Win_Class = "Shell_TrayWnd" OR Win_Class = "ProgMan" OR Win_Class = "AltDesk1.x" )
        Return    
    WinClose, ahk_class %Win_Class%
           exit
         }
   }
      return
 

 
код грязноватый, но вроде работает
 
creature_ws
прошу прощения за нубство.. не могу сообразить, для отслеживания задержки как KeyWait задействовать. Не затруднит примерчик плз..

Всего записей: 457 | Зарегистр. 28-01-2006 | Отправлено: 05:45 01-03-2014 | Исправлено: vadim3sh, 05:56 01-03-2014
villa777



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

Всего записей: 2773 | Зарегистр. 22-06-2011 | Отправлено: 18:17 01-03-2014
Cryzer



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Пожалуй, задам ещё один немаловажный вопрос, всё по той же теме. :)
Можно ли определить, что файл(папка) не просто выделен, а находится в режиме переименования?
 
Зачем нужно: при отключённой автоматической сортировке выделенный (код, определяющий выделение) файл(папку) можно перемещать, одновременно выполняя некоторые действия в скрипте. Но если во время переименования файла(папки) выделять мышкой имя, то это тоже будет воспринято как перемещение. Поэтому важно отличить переименование(при котором файл выделен) от простого выделения файла. Как можно это сделать?

Всего записей: 102 | Зарегистр. 22-09-2007 | Отправлено: 19:01 01-03-2014 | Исправлено: Cryzer, 01:21 02-03-2014
creature_ws



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

Код:
~MButton::
    KeyWait MButton, T1
    if ErrorLevel {
        WinGetClass, Win_Class, A
        If ( Win_Class = "Shell_TrayWnd" OR Win_Class = "ProgMan" OR Win_Class = "AltDesk1.x" )
            Return
        WinClose, ahk_class %Win_Class%
        Sleep, 200  
        Send {TAB}  
        Sleep, 50  
        Send {ENTER}
    }
    return

Cryzer, во время выделения текста при переименовании файла меняется значение A_CaretX, при "простом выделении" A_СaretX не изменяется.

Всего записей: 304 | Зарегистр. 29-07-2008 | Отправлено: 16:13 05-03-2014 | Исправлено: creature_ws, 22:23 06-03-2014
Cryzer



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
creature_ws, спасибо! Вроде то, что надо!)

Всего записей: 102 | Зарегистр. 22-09-2007 | Отправлено: 20:35 05-03-2014
creature_ws



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

Цитата:
Здравствуйте. Хочу прогу написать, не знаю как. Нужно перехватывать слова с клавиатуры(от пробела до пробела) и переставлять буквы в слове, кроме первой и последней.

 

Код:
SetBatchLines -1
#NoEnv
 
loop {
    Input word, v, %A_Space%
    wordLen := StrLen(word)
    if wordLen <= 3
        continue
    SendInput % "{bs " (wordLen + 1) "}" ShakeTheWord(word) " "
}
 
ShakeTheWord(byref word) {
    return SubStr(word, 1, 1)
        . DllCall("msvcrt\_wcsrev", "Str", SubStr(word, 2, -1), "Str")
        . SubStr(word, 0, 1)
}
 

Всего записей: 304 | Зарегистр. 29-07-2008 | Отправлено: 13:26 25-03-2014 | Исправлено: creature_ws, 15:37 25-03-2014
dfkfljhy

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

Всего записей: 4 | Зарегистр. 25-03-2014 | Отправлено: 14:11 25-03-2014
creature_ws



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вы наверно не разобрались, код приведенный - код для autohotkey, не для autoit. Это две большие разницы.

Всего записей: 304 | Зарегистр. 29-07-2008 | Отправлено: 14:18 25-03-2014
dfkfljhy

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
creature_ws
Работает, правда, с небольшими ошибками, когда в конец слова вставить % или ) , он считает это за цифру и из 146% делает 164%, в некоторых случаях почему-то меняет первую или последнюю букву

Всего записей: 4 | Зарегистр. 25-03-2014 | Отправлено: 14:42 25-03-2014
creature_ws



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

Цитата:
когда в конец слова вставить % или ) , он считает это за цифру и из 146% делает 164%


Цитата:
Нужно перехватывать слова с клавиатуры(от пробела до пробела)

Слова перехватываются от пробела до пробела, % и ) ничем не отличаются от иных символов не являющихся пробелом.

Цитата:
в некоторых случаях почему-то меняет первую или последнюю букву

без конкретизации "в каких случаях" ничем не помогу.

Всего записей: 304 | Зарегистр. 29-07-2008 | Отправлено: 15:21 25-03-2014
oshizelly



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

Цитата:
перехватывать слова с клавиатуры(от пробела до пробела) и переставлять буквы в слове, кроме первой и последней.

О, как интересно. Никогда не приходило в голову, что такое можно сделать при помощи сабжа.
А может моя давняя "мечта" тоже реализуема (иногда очень полезно при работе с документами): надо сделать инверсию 3-х выделенных слов. Допустим, в тексте имеем "Маша ела кашу". Нажимаем волшебную кнопку - и получаем на выходе "кашу ела Маша". Так не получится?

Всего записей: 6524 | Зарегистр. 18-09-2004 | Отправлено: 02:13 26-03-2014
creature_ws



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

Код:
MsgBox % RegExReplace("Маша ела кашу", "(*UCP)(\w+)(\s+\w+\s+)(\w+)", "$3$2$1")

А с получением и заменой текста это уж вы как-то сами…

Всего записей: 304 | Зарегистр. 29-07-2008 | Отправлено: 13:50 26-03-2014 | Исправлено: creature_ws, 13:52 26-03-2014
oshizelly



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Уважаемые, подскажите, нет ли возможности при помощи AHK получить полное имя (то есть, включая путь) файла, открытого в активном в данный момент окне (например, в Notepad, MS Word, Acrobat и т.д.)
 
В справке ничего похожего не нашёл, есть только скрипты для получения заголовка текущего окна, но это совсем другая штука. Так что, наверное, такое провернуть не получится. Но вдруг...  
 
creature_ws
Спасибо за скрипт.

Всего записей: 6524 | Зарегистр. 18-09-2004 | Отправлено: 02:43 30-03-2014
OnMyDSeeAtAll



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

Код:
#NoEnv
#KeyHistory
, 0
ListLines,
Off
sPattern:="i)(?:"".+"" {1,}""?)\b(\w:.+)\b"
TrayTip,,
% "выбираем целевое окно, жмём XButton2"
KeyWait, XButton2,
% "D"
ListLines,
On
 
DllCall
("GetWindowThreadProcessId", "UPtr", WinActive("A"), "UIntP", lpdwProcessId:=0)
sCmdLine:=ComObjGet("winmgmts:\\.\root\cimv2:Win32_Process.Handle='"lpdwProcessId "'").CommandLine
MsgBox, 262144, % "fullpath:", % RegExMatch(sCmdLine, sPattern, m) ? m1:"n\a"

Всего записей: 100 | Зарегистр. 08-07-2011 | Отправлено: 19:21 30-03-2014
oshizelly



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
OnMyDSeeAtAll
О, спасибо! Значит, это всё-таки возможно, хотя столь сложного скрипта я бы в жизни не сумел изваять.
 
Вот только непонятно, в какое место скрипту сувать строку, назначающую хоткей. Выше строки #NoEnv? Или где-то в середине?
И что подразумевается под XButton2?

Цитата:
TrayTip,, % "выбираем целевое окно, жмём XButton2
KeyWait, XButton2,
% "D"

Всего записей: 6524 | Зарегистр. 18-09-2004 | Отправлено: 19:35 30-03-2014
Открыть новую тему     Написать ответ в эту тему

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