Autohotkey почему может не работать

Содержание
  1. Почему не работает ahk
  2. Синтаксис языка
  3. Горячие клавиши, строки автозамены и переназначение клавиш
  4. AutoHotkey в Windows 10-Горячие клавиши не работают в некоторых приложениях
  5. 4 ответов
  6. AHK: Работал потом перестал работать скрипт
  7. Сообщения 5
  8. 1 Тема от Dworkin 2011-06-28 06:23:22 (изменено: Dworkin, 2011-06-28 17:20:14)
  9. Тема: AHK: Работал потом перестал работать скрипт
  10. 2 Ответ от teadrinker 2011-06-28 11:22:31
  11. Re: AHK: Работал потом перестал работать скрипт
  12. AHK: Почему в моём скрипте иногда hotkey перестаёт работать?
  13. Сообщения 9
  14. 1 Тема от Drugoy 2015-12-29 03:17:30
  15. Тема: AHK: Почему в моём скрипте иногда hotkey перестаёт работать?
  16. 2 Ответ от serzh82saratov 2015-12-29 03:30:58 (изменено: serzh82saratov, 2015-12-29 03:33:59)
  17. Re: AHK: Почему в моём скрипте иногда hotkey перестаёт работать?
  18. 3 Ответ от Alectric 2015-12-29 06:56:58
  19. Re: AHK: Почему в моём скрипте иногда hotkey перестаёт работать?
  20. 4 Ответ от Drugoy 2015-12-29 14:48:01
  21. Re: AHK: Почему в моём скрипте иногда hotkey перестаёт работать?
  22. 5 Ответ от Drugoy 2015-12-30 20:02:11
  23. Re: AHK: Почему в моём скрипте иногда hotkey перестаёт работать?
  24. 6 Ответ от Drugoy 2016-01-01 23:34:29
  25. Re: AHK: Почему в моём скрипте иногда hotkey перестаёт работать?
  26. 7 Ответ от Malcev 2016-01-01 23:48:23
  27. Re: AHK: Почему в моём скрипте иногда hotkey перестаёт работать?
  28. 8 Ответ от stealzy 2016-01-02 00:10:20 (изменено: stealzy, 2016-01-02 00:21:00)
  29. Re: AHK: Почему в моём скрипте иногда hotkey перестаёт работать?
  30. 9 Ответ от Drugoy 2016-01-02 05:50:47 (изменено: Drugoy, 2016-01-02 06:18:50)
  31. Re: AHK: Почему в моём скрипте иногда hotkey перестаёт работать?

Почему не работает ahk

Синтаксис языка

Двойные кавычки («) имеют специальное назначение, только если они соотносятся с выражениями. Во всех же остальных случаях они трактуются как обычные символы. Также, при запуске какой либо программы или файла, операционная система как правило требует наличия кавычек в строке адреса, если там содержатся пробелы. Например:

Читайте также:  Как настроить макс фан контрол

Имена переменных всегда заключаются в значки процентов, за исключением случаев, которые в представленных примерах выделены жирным шрифтом:

  1. В параметрах, которые являются входными или выходными переменными: StringLen, OutputVar, InputVar.
  2. В левой части присвоения строки переменной: Var = 123abc.
  3. В левой части не содержащего выражений if-оператора: If Var1 0 MsgBox, Превышено время ожидания или окно закрыто. else MsgBox, Ваша страничка загружена. Return

Команда 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.

Читайте также:  Как настроить бесконтактную оплату qiwi

Я использую несколько языковых раскладок на клавиатуре. Почему команда 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 всё то время, пока она не запускает наш скрипт:

NumpadEnter:: IfWinNotActive, CAD Editor Return ; Если же окно нашей программы стало активным, выполняется следующее действие: Send, abc Return

Рассмотрим следующий пример:

Теперь сделаем так, чтобы Numpad0 работал как обычный Numpad0 до тех пор, пока он нам не понадобится для запуска нашей комбинации, описанной выше:

Префикс $ необходим для предотвращения появления диалога ошибки, сигнализирующей о возникновении бесконечного цикла (так как наша горячая клавиша «посылает сама себя»). В дополнение скажем, что команда выполняется в момент возвращения (подъёма вслед за нажатием) клавиши.

Существует ли способ, позволяющий использовать в своих целях «встроенные» в Windows сочетания клавиш, например такие, как Win+U (Utility Manager) и Win+R (Run)? Можно ли их изменить или отключить совсем?

Смотрите соответствующую статью о переназначении и запрещении горячих клавиш.

На моей клавиатуре есть специальная клавиша 000. Можно ли её использовать как горячую клавишу?

Да, вы можете её использовать. В нашем примере показано, как можно использовать клавишу 000, превратив её в знак равенства. В строке скрипта «Send, =» Вы можете заменить знак равенства на всё, что вам угодно. Примечание: пример доступен по ссылке, которая имеется в оригинале этой статьи.

Источник

AutoHotkey в Windows 10-Горячие клавиши не работают в некоторых приложениях

простой скрипт типа

используется для работы под Windows 7. Теперь, когда я повышен до Windows 10, он не работает, когда некоторые окна активны. Особенно LButton -горячие клавиши могут испортить все, что приводит к ситуации, когда вам действительно нужен диспетчер задач.

вот небольшой список приложений, в которых клавиш не распознано больше: (вместо этого, как из приведенного выше скрипта, простой a is отправлено)

где он работает: (примеры)

  • редактор
  • скайп
  • приложения для Windows В общем
  • средство помочь
  • Открыть Офис
  • (большинство программ)

может ли кто-нибудь воспроизвести это?

Что случилось с AutoHotkey в Win10?

Как это может быть исправлено?

(AHKscript верс. 1.1.22.3 Unicode и 64-разрядная версия)

4 ответов

поскольку Windows 10 только что была выпущена, это очень важный вопрос, и я уверен, что многие пользователи оценят помощь в получении их скриптов для правильной работы на этой новой ОС. Возможно, кто-то подумал, что этот вопрос был широким по охвату или, возможно, неправильно классифицирован, поскольку это проблема Windows, а не конкретная проблема AutoHotkey?

насколько я понимаю, проблема заключается в новых настройках UAC. Простое решение-запустить скрипт от имени администратора. К сделайте это Правой Кнопкой Мыши на файле — > выберите «Запуск от имени администратора»

У меня нет прямого ответа на вопрос о запуске приложения или файла всегда как администратор (в Windows 10), но это руководство, которое я нашел, похоже, охватывает все возможные способы сделать это в Windows 10.

Другой альтернативой является проверка скрипта, если он работает как Admin, если не перезагрузить как Admin. Код был извлечен из файла справки:

галочку «выполнять эту программу от имени администратора» в:

autohothey.exe > свойства > совместимость > настройки

все поисковая система также не работает для меня.

перед компиляцией .сценарий ahk .exe решит любые проблемы.

в Windows 10 снова дал мне проблемы.

следующая информация помогла мне исправить это:

в Windows 8 и более поздних версиях UAC можно отключить, только изменив реестр, и это нарушает приложения.

Как я уже сказал,» выключение » UAC на панели управления в Windows 8 и более поздних версиях просто подавляет подсказки Да/нет; программы по-прежнему выполняются с ограниченные привилегии по умолчанию.

отключить UAC через реестр, вам нужно будет перейти в меню Пуск поле поиска и введите regedit.exe и перейдите к следующему ключ:

на правой стороне, вы должны увидеть параметр EnableLUA, который вы хотите настроить как следует:

также на странице howtogeek:

просто скачайте, распакуйте, и дважды щелкните на ReallyDisableUAC-Win7.файл reg для отключения UAC.

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

есть также включенный файл взлома реестра, чтобы повторно включить его как что ж.

полностью отключить UAC. Как вы заметили, это убьет приложения в Windows 10 (или 8).

создайте исправленный исполняемый файл с помощью EnableUIAccess, а затем используйте этот исполняемый файл для запуска сценария.

попробуйте запустить exe с правами администратора (т. е. щелкните правой кнопкой мыши на exe, а затем запустите его как администратор).

Источник

AHK: Работал потом перестал работать скрипт

Чтобы отправить ответ, вы должны войти или зарегистрироваться

Сообщения 5

1 Тема от Dworkin 2011-06-28 06:23:22 (изменено: Dworkin, 2011-06-28 17:20:14)

  • Dworkin
  • Участник
  • Неактивен
  • Рейтинг : [ 4 | 0 ]

    Тема: AHK: Работал потом перестал работать скрипт

    Здраствуйте. Вот второй день как пишу скрипты для себя для игры. Но вот столкнулся с проблемой.

    Вначале работал, потом после получаса попыток добавить что он прерывался, он перестал работать.
    У меня даже команду

    не вопроизводит зато если вместо «w» поставить «Up» работает. не пойму почему работал, а потом перестал. У меня ноут.

    2 Ответ от teadrinker 2011-06-28 11:22:31

    • teadrinker
    • Администратор
    • Неактивен
    • Рейтинг : [ 709 | 0 ]

      Re: AHK: Работал потом перестал работать скрипт

      Dworkin, зайди сюда, прочитай всё внимательно, отредактируй название темы. Кроме того, у нас принято в одной теме ограничиваться одним вопросом, отредактируй текст поста.

      Источник

      AHK: Почему в моём скрипте иногда hotkey перестаёт работать?

      Чтобы отправить ответ, вы должны войти или зарегистрироваться

      Сообщения 9

      1 Тема от Drugoy 2015-12-29 03:17:30

      • Drugoy
      • Заблокирован
      • Неактивен
      • Рейтинг : [ 11 | 0 ]

        Тема: AHK: Почему в моём скрипте иногда hotkey перестаёт работать?

        Здравствуйте.
        Наблюдаю проблему в своём скрипте, когда по какой-то причине hotkey перестаёт работать без видимых на то причин.
        Весь скрипт состоит из инициализации, различных хоткеев, функций и меток.
        Проблема происходит со вполне конкретными хоткеями, так что привожу только часть скрипта: инициализацию, проблемные хоткеи и одну используемую метку.

        Как видно из кода — в попытке разобраться что же чёрт возьми происходит — я добавил команды для отладки.
        Это не помогло, т.к. когда происходит вышеописанный глюк — хоткеи тупо не срабатывают, так что в отладочном журнале в этот момент ничего не оседает.

        Глюк исправляется только 2 способами: рестартом скрипта или же просто открытием меню его иконки в трее.
        Журнал выполнения команд тоже не показывает ничего, что помогло бы в расследовании инцидента: судя по журналу, когда происходит глюк скрипт просто отдыхает: у строки Return хоткея просто продолжает тикать таймер, как будто новых нажатий хоткея не происходит.

        Помогите разобраться, в чём может быть дело? Глюк появляется в произвольный момент, может прям во время кручения колеса (т.е. последовательного многократного wheelup/down), а может и в любой другой момент. Появляется не часто, несколько раз в день, никакого другого софта, который работал бы с колесом мыши — в системе не используется, да и «лечение» глюка тоже, в общем-то, странное.

        p.s.: вырезанная часть скрипта никак не влияет на работу оставшегося куска кода.

        2 Ответ от serzh82saratov 2015-12-29 03:30:58 (изменено: serzh82saratov, 2015-12-29 03:33:59)

        • serzh82saratov
        • Разработчик
        • Неактивен
        • Рейтинг : [ 411 | 0 ]

          Re: AHK: Почему в моём скрипте иногда hotkey перестаёт работать?

          Попробуйте то что выполняется по горячей клавише, запускать через метку по таймеру.

          Ну и на всякий, если есть #UseHook, On, то не надо использовать $ в префиксе хоткея.

          3 Ответ от Alectric 2015-12-29 06:56:58

          • Alectric
          • Разработчик
          • Неактивен
          • Рейтинг : [ 117 | 1 ]

            Re: AHK: Почему в моём скрипте иногда hotkey перестаёт работать?

            Что показывает ListLines после зависания? Или ее невозможно открыть?

            4 Ответ от Drugoy 2015-12-29 14:48:01

            • Drugoy
            • Заблокирован
            • Неактивен
            • Рейтинг : [ 11 | 0 ]

              Re: AHK: Почему в моём скрипте иногда hotkey перестаёт работать?

              Попробуйте то что выполняется по горячей клавише, запускать через метку по таймеру.

              Ну и на всякий, если есть #UseHook, On, то не надо использовать $ в префиксе хоткея.

              Это я уже добавил в попытке избавиться от глюка, раньше скрипт был без этой команды.

              Что показывает ListLines после зависания? Или ее невозможно открыть?

              Журнал выполнения команд тоже не показывает ничего, что помогло бы в расследовании инцидента: судя по журналу, когда происходит глюк скрипт просто отдыхает: у строки Return хоткея просто продолжает тикать таймер, как будто новых нажатий хоткея не происходит.

              5 Ответ от Drugoy 2015-12-30 20:02:11

              • Drugoy
              • Заблокирован
              • Неактивен
              • Рейтинг : [ 11 | 0 ]

                Re: AHK: Почему в моём скрипте иногда hotkey перестаёт работать?

                Попробуйте то что выполняется по горячей клавише, запускать через метку по таймеру.

                Увы, глюк снова проявился.

                6 Ответ от Drugoy 2016-01-01 23:34:29

                • Drugoy
                • Заблокирован
                • Неактивен
                • Рейтинг : [ 11 | 0 ]

                  Re: AHK: Почему в моём скрипте иногда hotkey перестаёт работать?

                  Похоже на какой-то баг AutoHotkey: с совершенно другим скриптом наблюдаются аналогичные проблемы.

                  7 Ответ от Malcev 2016-01-01 23:48:23

                  • Malcev
                  • Разработчик
                  • Неактивен
                  • Рейтинг : [ 538 | 0 ]

                    Re: AHK: Почему в моём скрипте иногда hotkey перестаёт работать?

                    Возможно в синхронных посылах WinHttpRequest причина.
                    Попробуй посылать асинхронно — мне помогло.

                    8 Ответ от stealzy 2016-01-02 00:10:20 (изменено: stealzy, 2016-01-02 00:21:00)

                    • stealzy
                    • Разработчик
                    • Неактивен
                    • Рейтинг : [ 170 | 1 ]

                      Re: AHK: Почему в моём скрипте иногда hotkey перестаёт работать?

                      Возможно, что у вас оказывается зажатой (логически) какая-либо клавиша, из-за чего хоткеи перестают работать.
                      1) После зависания понажимайте вручную все ваши Ctrl, Shift и Tab. Если скрипт «отвиснет» — причина найдена.
                      Либо попробуйте поставить * перед ними — *WheelUp::
                      2) Также поставьте ToolTip сразу после хоткеев, чтобы знать наверняка, срабатывают они или нет.

                      9 Ответ от Drugoy 2016-01-02 05:50:47 (изменено: Drugoy, 2016-01-02 06:18:50)

                      • Drugoy
                      • Заблокирован
                      • Неактивен
                      • Рейтинг : [ 11 | 0 ]

                        Re: AHK: Почему в моём скрипте иногда hotkey перестаёт работать?

                        Нда, зря я смешал две проблемы в 1 топик: скриншутер и правда срабатывает всегда, если закомментировать вызов функции upload(), а значит дело и правда в работе с сетью.
                        Malcev, я не умею, можешь показать как это делается?

                        stealzy, не, там дело не в логическом залипании модификаторов и отладку я провожу outputdebug’ом, а не tooltip’ами — так надёжней.

                        EDIT: Асинхронно отправлять научился, осталось только придумать как грамотно очередь сделать, но это уже оффтопик.

                        Источник

Оцените статью