В вашем случае, если вы делаете только перераспределение клавиш, вероятно, не стоит включать какие-либо из этих строк за исключениемSendMode , Input
, так как это самый надежный режим отправки.Вы упоминаете, что делали "довольно интенсивные и быстрые вещи с этим сценарием";что именно это означает, будет точно определять, нужны ли строки заголовка.
Примечания
1. #NoEnv рекомендуется для всех сценариев, он отключает переменные среды.
2. Значение по умолчанию #MaxHotkeysPerInterval вместе с #HotkeyInterval остановит ваш скрипт, показывая окна сообщений, если в нем есть какой-то быстрый цикл автозапуска.Просто задайте какое-нибудь безумное недостижимое большое число, чтобы игнорировать этот предел.
3. ListLines и #KeyHistory - функции, используемые для «регистрации ваших ключей».Отключите их, поскольку они полезны только для целей отладки.
4. Установка более высокого приоритета для программы Windows должна повысить ее производительность.Используйте AboveNormal / A.Если вам кажется, что ситуация ухудшается, прокомментируйте или удалите эту строку.
5. Значение SetBatchLines по умолчанию заставляет ваш скрипт спать 10 миллисекунд каждую строку.Сделайте это -1, чтобы не спать (но не забудьте включить по крайней мере один Sleep в ваши циклы, если они есть!)
6. Даже если SendInput игнорирует SetKeyDelay, SetMouseDelay и SetDefaultMouseSpeed, имея этизадержка в -1 повышает скорость SendEvent на тот случай, если SendInput недоступен и возвращается к SendEvent.
7. SetWinDelay и SetControlDelay могут повлиять на производительность в зависимости от сценария.
8. SendInput - самый быстрый метод отправки.SendEvent (по умолчанию) - 2-е место, SendPlay - 3-е место (хотя это самое совместимое).SendInput не подчиняется SetKeyDelay, SetMouseDelay, SetDefaultMouseSpeed;в этом режиме нет задержки между нажатиями клавиш.
9. Если вы не используете SetTimer, функция сна высокой точности полезна, когда вам нужна надежность в миллисекундах в ваших скриптах.Это может быть проблематично при использовании с SetTimer в некоторых ситуациях, потому что этот метод сна приостанавливает весь сценарий.Чтобы использовать это, вот пример, который ждет 16,67 миллисекунды: DllCall("Sleep",UInt,16.67)
10. При использовании PixelSearch для сканирования одного пикселя одного цветового варианта, неиспользуйте параметр Fast.Согласно моим оценкам, в этом случае обычный PixelSearch работает быстрее, чем PixelSearch Fast.
11. Согласно документации (этот текст находится в установочном файле), Unicode x64bit версияAHK быстрее, используйте его, когда доступно.