Вы можете задать любой вопрос по программе Autohotkey в нашей группе Вконтакте. Если решение требует более высокой квалификации- можно обратиться непосредственно ко мне.
Группа Вконтакте | Электронная почта | Симаков Яков ВК |
Двойные кавычки (") имеют специальное назначение, только если они соотносятся с выражениями. Во всех же остальных случаях они трактуются как обычные символы. Также, при запуске какой либо программы или файла, операционная система как правило требует наличия кавычек в строке адреса, если там содержатся пробелы. Например:
Имена переменных всегда заключаются в значки процентов, за исключением случаев, которые в представленных примерах выделены жирным шрифтом:
Если вы хотите использовать значки процентов как обычные клавиатурные символы, то добавьте перед ними значок акцента:
С текстовыми запятыми поступаем аналогичным образом (`,), за исключением тех случаев, когда они используются с командой MsgBox или являются последним параметром какой-либо команды (в этих случаях использование акцента допускается, но большой необходимости в этом нет).
В тех случаях, когда запятые или значки процентов заключены в кавычки в каком-либо выражении, использование акцента допускается, но большой необходимости в этом нет. Например: Var := "15%"
Дело в том, что некоторые программы нуждаются в точном указании их рабочей директории, например:
Небольшая бесплатная утилита cb.zip (4 KB) захватывает до 512 Кб выходных данных команды или программы. Эта информация в виде текста записывается в буфер обмена, откуда к ней можно получить доступ при использовании соответствующей переменной, например:
Для остановки исполнения скрипта (пауза) и возобновления его работы позднее, пропишите на какую-нибудь клавишу команду Pause, как в нашем примере:
Для остановки какого-либо повторяющегося действия внутри Loop (цикла), рассмотрим в нашем примере метод создания горячих клавиш, каждая из которых останавливает и запускает своё собственное повторяющееся действие. Другими словами, нажатие клавиши (или комбинации клавиш) запускает цикл (Loop), а повторное нажатие заданных клавиш останавливает его.
Если вы обнаружили, что горячие клавиши, команда GetKeyState, перемещения курсора (в скриптах, использующих кнопки мыши) недостаточно хорошо работают в приложениях с мощной загрузкой CPU, возможно, увеличение приоритета сможет вам помочь. Чтобы сделать это, добавьте следующую строку в заголовок вашего скрипта, что позволит увеличить его приоритет исполнения с нормальной до высокой степени. Эта запись сообщает операционной системе уделить больше внимания к исполнению данных команд:
Техника, описанная ниже, успешно работает с большинством страниц, открываемых через MS Internet Explorer. Таким же способом строится работа и с другими браузерами:
Команда EnvAdd может складывать или вычитать количество дней, часов, минут или секунд, и представлять эти данные в
виде строки, имеющей вид YYYYMMDDHH24MISS, где:
YYYY - year (год)
MM - month (месяц)
DD - day (день)
HH24 - hour (час)
MI - minutes (минуты)
SS - seconds (секунды)
В следующем примере показано вычитание семи дней из указанной даты:
Для вычисления количества прошедшего времени между двумя датами используйте команду EnvSub, как проиллюстрировано в примере из соответствующей статьи. Также, встроенная переменная A_Now содержит данные о текущем времени. И наконец, существуют ещё несколько встроенных переменных, работающих с датой/временем, как например команда FormatTime, использующаяся для создания строки даты/времени в произвольном формате.
Почему строки автозамены, команды Send и MouseClick не работают в некоторых играх?Некоторые игры используют в своей работе только механизм DirectInput. Как следствие, такое приложение может игнорировать все эмуляции нажатий клавиш и кнопок мыши. Несмотря на то, что серьёзной работы по этому вопросу ещё не проводилось, было обнаружено, что для большинства игр увеличение параметра SetKeyDelay явилось эффективным для включения в работу команды Send. Попробуйте сделать так:
Также для обхода этой проблемы вы можете попробовать использовать другие программы для эмуляции нажатий клавиш и кнопок мыши, такие, как Journal Macro, QuicKeys, KeyGO, OnHand, и Toggle Keyboard.
Я использую несколько языковых раскладок на клавиатуре. Почему команда Send и строки автозамены иногда пропечатывают мне не те буквы?Это происходит потому, что язык, на котором работает скрипт (английский) не совпадает с языковой раскладкой, выбранной вами для работы в конкретном приложении. Для синхронизации раскладок, вам нужно изменить "язык" для скриптов AutoHotkey. Сделать это можно вручную: простым двойным кликом на иконке скрипта в системном трее вызываем рабочее окно самого скрипта, далее меняем раскладку клавиатуры (обычно в Windows это LeftAlt+Shift), закрываем окно. Можно также воспользоваться следующим примером скрипта, автоматически меняющего языковую раскладку для скриптов AutoHotKey:
Дополнительная информация: как и любое другое приложение, каждый скрипт начинает работу с языком, установленным вами по умолчанию. Если эта установка не совпадает с языковой раскладкой, выбранной для приложения, куда вы "впечатываете" строки, скрипт может "перевести" их в нечто невообразимое.
Могу ли я управлять Winamp'ом, если его окно не является активным?Смотрите статью "Управление Winamp'ом".
Как можно изменить надписи на кнопках, появляющихся в окошке MsgBox?Смотрите пример в статье "Изменение надписей на кнопках в MsgBox".
Четвёртая (XButton1) и пятая кнопка мыши (XButton2) также доступны для программы, при условии, что драйвера мыши позволяют Windows "увидеть" их сигналы. Если же сигналы от этих кнопок Windows не видит, а также в том случае, когда на мыши есть ещё какие-либо дополнительные кнопки, вы можете сконфигурировать драйвера мыши таким образом, чтобы при нажатии этих дополнительных кнопок в Windows посылались бы нажатия стандартных клавиатурных клавиш, а уже их использовать в своих скриптах. Например, если вы в драйверах мыши установили на её четвёртую кнопку посылание сигналов нажатий комбинации клавиш Control+F12, то в своих скриптах можете спокойно программировать на горячие клавиши ^F12:: все, что вам нужно.
Если всё-таки пятая и четвертая кнопки вашей мыши остаются невидимыми для Windows, вы можете попробовать не устанавливать "родные" мышиные драйвера, а использовать вместо них драйвера по умолчанию для мыши Windows. Это может помочь, однако в этом случае вы, само собой, будете лишены возможности использовать расширенные функции, которые были заложены в "фирменные" драйвера.
Как использовать символы и знаки пунктуации в качестве горячих клавиш?Символы, которые выдает клавиатура напрямую, без дополнительного нажатия клавиши Shift, можно использовать как обычные клавиши, без всяких прочих условий, за исключением точки с запятой, которая прописывается как (`;::). Вот пример использования акцента в качестве горячей клавиши:
При использования символов, для которых необходимо предварительное нажатие клавиши Shift (например @ и ?) необходимо прописывать комбинацию клавиш Shift и той клавиши, на которой находится искомый символ. Например, если вам нужно записать как горячие клавиши комбинацию Control+Звездочка, делаем так:
Клавиши-модификаторы всегда соотносятся с именованными клавишами. Например, если вы хотите использовать комбинацию Ctrl+Alt+Win, используйте ^!LWin или ^!RWin вместо ^!#. Для клавиши Space используйте запись ^Space вместо "^ ". Примечание: клавиши-модификаторы нажимаются перед нажатием именованных клавиш. Так, в нашем первом примере сначала нажимаются клавиши Ctrl+Alt, а уж затем - LWin или RWin (правая или левая клавиша "Windows").
Как переназначить на клавиши или кнопки мыши другие символы/клавиши?Смотрите статью о переназначении клавиш.
Можно ли сделать так, чтобы горячие клавиши или строки автозамены посылались исключительно для одной программы? Другими словами, во всех других приложениях эти клавиши работали бы как самые обычные клавиши, и только в нужной мне программе ими бы включались соответствующие скрипты?В нижеприведенном примере клавиша NumpadEnter сконфигурирована таким образом, что работает как обычный NumpadEnter до тех пор, пока окно программы "CAD Editor" не становится активным. Обратите внимание на использование символа $ в записи "$NumpadEnter". Такая запись сообщает программе, что клавиша имеет возможность "посылать сама себя".
Рассмотрим также и другой метод, но он работает только в том случае, если программа "CAD Editor" изначально сконфигурирована таким образом, что совершенно не реагирует на нажатие клавиши NumpadEnter. Префикс из тильды (~) превращает NumpadEnter в незаблокированную горячую клавишу (клавишу, которая работает как "горячая клавиша", но при этом всегда посылается активному окну). То есть запись вида ~NumpadEnter позволяет использовать клавишу NumpadEnter как обычный NumpadEnter всё то время, пока она не запускает наш скрипт:
Рассмотрим следующий пример:
Теперь сделаем так, чтобы Numpad0 работал как обычный Numpad0 до тех пор, пока он нам не понадобится для запуска нашей комбинации, описанной выше:
Префикс $ необходим для предотвращения появления диалога ошибки, сигнализирующей о возникновении бесконечного цикла (так как наша горячая клавиша "посылает сама себя"). В дополнение скажем, что команда выполняется в момент возвращения (подъёма вслед за нажатием) клавиши.
Существует ли способ, позволяющий использовать в своих целях "встроенные" в Windows сочетания клавиш, например такие, как Win+U (Utility Manager) и Win+R (Run)? Можно ли их изменить или отключить совсем?Смотрите соответствующую статью о переназначении и запрещении горячих клавиш.
На моей клавиатуре есть специальная клавиша 000. Можно ли её использовать как горячую клавишу?Да, вы можете её использовать. В нашем примере показано, как можно использовать клавишу 000, превратив её в знак равенства. В строке скрипта "Send, =" Вы можете заменить знак равенства на всё, что вам угодно. Примечание: пример доступен по ссылке, которая имеется в оригинале этой статьи.