Автоматизация рутины с AutoHotKey

Здравствуйте! Сегодня я хочу познакомить вас с замечательным инструментом автоматизации под названием AutoHotKey!

С ним вы сможете:

1) Программировать действия мышкой, нажатия клавиш;

2) Быстро заполнять однотипные бланки, формы;

3) Ставить на горячие клавиши заклинания, кастовать их в течение миллисекунд после перезарядки (что бывает критично);

4) Автоматизировать какие-либо рутинные действия и идти пить кофе.


Сразу предупрежу - писать скрипты поначалу очень капризное занятие. Будут такие ситуации, что код почему-то не работает, и вам придется думать полдня где вы совершили ошибку. Листать документацию. Просить помощи в интернете. Проверять синтаксис.

Однако вложенное время окупается с лихвой. При достаточном освоении AutoHotKey сэкономит вам кучу времени и нервов.


В данном посте я дам лишь описание конкретных примеров применения скриптинга на практике и расскажу про те подводные камни, которые не описаны в документации.


Итак, начнем. Ссылка на программу:

https://autohotkey.com/download/ahk-install.exe (3 Мб)


Написание кода ведется в файлах *.ahk, которые редактируются обычным блокнотом.

Создайте текстовый файл и измените его расширение.

Автоматизация рутины с AutoHotKey Autohotkey, Автоматизация, Программирование, Офисные будни, Образование, Длиннопост

Затем откройте его с помощью блокнота. Теперь вы готовы к работе!

Перейдем к практике.

Напишите


F1:: Send Здравствуйте{!}


Сохраните изменения. Запустите скрипт двойным кликом. Встаньте на какое-нибудь текстовое поле и нажмите F1. Первый опыт скриптинга у вас уже есть.

!, #, ^, +  это служебные знаки. Для того, чтобы напечатать их, нужно оформить их скобками.

Для выключения скрипта нажмите на его иконке возле часов, затем Exit.


Краткое введение закончено, дальше пойдут лишь небольшие советы.


1) Добавьте к скрипту

F12:: Suspend, Toggle

, чтобы ставить/снимать его с паузы клавишей F12


2) Чтобы горячая клавиша не блокировалась скриптом и выполняла также свою обычную функцию, пишите ~.

~F3:: Send {Down}


3)

1::

Send {Tab 5}привет{Enter}  ;пять раз таб, привет, энтер

Click 100, 100  ;клик по заданным координатам, отсчитывается слева-сверху

Click, 2  ;клик два раза

Click right  ;клик правой кнопкой

Send {Down}{Left}{Up}

Send {PgUp}{PgDn}

Send {Space}{Del}

Send {b down}

Sleep, 1000  ;зажать b, ждать 1 секунду, отпустить

Send {b up}  

Return  ;конец списка команд, вызываемых кнопкой "1"


Полный список клавиш смотрите в документации. Пуск -> AutoHotKey -> AutoHotKey HelpFile -> Mouse and Keyboard -> Send


4)

^F1::  ;при нажатии на Ctrl+F1

MouseGetPos, X, Y  ;выдаст текущие координаты курсора

MsgBox, %X%, %Y%

Clipboard = %X%, %Y%  ;и скопирует их в буфер обмена

Return


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

Можно заставить скрипт отсчитывать координаты от левого верхнего угла экрана, предварительно прописав:


CoordMode, Mouse, Screen


Вернуться обратно:


CoordMode, Mouse, Window


5) Модификаторы: "^" = Ctrl, "+" = Shift, "!" = Alt.

Send !{Tab}  ;Alt+Tab

Send +{Home}

Send ^{vk56}  ;Ctrl+V


Почему именно {vk56}, а не {v}? Потому что ^{v} будет работать только при английской раскладке, при русской пришлось бы написать ^{м}.

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


Список наиболее часто используемых виртуальных кодов:


Send ^{vk43} ;Ctrl+C

Send ^{vk56} ;ctrl+V

Send ^{vk58} ;ctrl+X

Send ^{vk41} ;ctrl+A

Send ^{vk5A} ;ctrl+Z

Send ^{vk53} ;ctrl+S

Send ^{vk51} ;ctrl+Q

Send ^{vk57} ;ctrl+W

Send ^{vk52} ;ctrl+R

Send ^{vk42} ;ctrl+B

Send ^{vk4E} ;ctrl+N

Send ^{vk4C} ;ctrl+L


Аналогично, если вы хотите сделать буквенную клавишу горячей, лучше обратиться к ней через ее виртуальный код:


vk56::Send {Click}  ;посылает клик при нажатии на "м" или "v".


Полный список виртуальных кодов клавиш: http://www.kbdedit.com/manual/low_level_vk_list.html


6) Быстро разворачиваем фотографии правильной стороной.

В стандартной утилите просмотра фотографий Windows есть опция "Развернуть картинку"

Автоматизация рутины с AutoHotKey Autohotkey, Автоматизация, Программирование, Офисные будни, Образование, Длиннопост

NumPad1:: Send ^{,}

NumPad2:: Send ^{.}


Обратите внимание, что эти клавиши работают только при английской раскладке.

Английские точка с запятой расположены справа от клавиши "m" и являются отдельными клавишами. Русская точка и запятая находятся слева от шифта и объединены в одну клавишу.

И еще: чтобы нажать Numpad1 и 2, должна гореть лампочка NumLock.


7)

~1::

Loop,

{

If A_Cursor=Unknown

Click

Sleep, 20

If GetKeyState("2","p")=1

Break

}

F12::Suspend, Toggle


При нажатии кнопку 1 скрипт будет посылать клики, если заметит, что курсор принял форму руки. Нажатие кнопки 2 (и непродолжительное ее удерживание) разрывает цикл.

Осторожно, если вы наведете мышь на ссылки браузера при активном цикле, он вам их откроет!


Таким образом я автоматизировал прохождение флеш игры Deanimator.

Достаточно навести мышкой на зомби, и профессор сам стреляет, да еще и со скоростью пулемета!

http://www.de-animator.com/deanimator.swf

Автоматизация рутины с AutoHotKey Autohotkey, Автоматизация, Программирование, Офисные будни, Образование, Длиннопост

8)

1::

MouseGetPos, xpos, ypos

MouseClick, left, 130, 70, , 0 ; [WhichButton , X, Y, ClickCount, Speed, D|U, R]

MouseMove, xpos, ypos, 0

Return


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

Цифры 0 в обоих операторах отвечают за скорость перемещения курсора, то есть мгновенно.

Можно закрепить за клавишей 1 горохострел, за 2 - подсолнух и т.д., и быстро без напряга сажать растения.

(координаты 130, 70 вам, скорее всего, придется поменять. Воспользуйтесь пунктом 4)

Автоматизация рутины с AutoHotKey Autohotkey, Автоматизация, Программирование, Офисные будни, Образование, Длиннопост

9) Допустим, вам нужно поставить звездочку или другой символ в конце каждой строки.

Автоматизация рутины с AutoHotKey Autohotkey, Автоматизация, Программирование, Офисные будни, Образование, Длиннопост

NumPad1::

Send {*}{Up}{End}

Return


Ставим звездочку, переходим вверх, идем в конец строки. Готово!

Если нужно удалить символ в конце каждой строки, пишем:


NumPad1::

Send {Backspace}{Up}{End}

Return


Если нужно удалить два символа:


NumPad1::

Send {Backspace 2}{Up}{End}

Return


10) Нужно щелкать мышью как можно чаще? Не проблема!

Автоматизация рутины с AutoHotKey Autohotkey, Автоматизация, Программирование, Офисные будни, Образование, Длиннопост

~1::

While GetKeyState("1","p")=1

{

Click

Sleep 20

}

Return


Данный скрипт посылает клики каждые 20 мс при нажатой клавише "1".

Или можно так. Посылаем клики до тех пор, пока не будет нажата клавиша "2".


1::

While GetKeyState("2","p")=0

{

Click

Sleep 20

}

Return



Ладно, на этом пока все. Будут вопросы - обращайтесь!

Можно даже сделать так: пишите какие типичные рутинные операции нужно разобрать, и они появятся в следующем посте!


P.S.

/*

Многострочный комментарий.

Для выключения участков кода

*/

Лига образования

4.3K поста21.8K подписчика

Добавить пост

Правила сообщества

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


ДЛЯ АВТОРОВ:


Приветствуются:

-уважение к читателю и открытость

-желание учиться

Не рекомендуются:

-публикация недостоверной информации


ДЛЯ ЧИТАТЕЛЕЙ:


Приветствуются:

-конструктивные дискуссии на тему постов

Не рекомендуются:

-личные оскорбления и провокации

-неподкрепленные фактами утверждения


В этом сообществе мы все союзники - мы все хотим учиться! :)

Вы смотрите срез комментариев. Показать все
54
Автор поста оценил этот комментарий

Уважаемый ТС. Я очень ценю ваше стремление к познанию нового ПО, но есть одно но. Работа со скриптами может увлечь далеко не каждого пользователя. Есть гораздо более дружественная программа с более расширенным функционалом. Называется xStarter.

раскрыть ветку (77)
59
Автор поста оценил этот комментарий

Чем лучше?

Я тут за autoit если что)))

раскрыть ветку (43)
19
Автор поста оценил этот комментарий

Плюсую с autoit можно даже напрямую с directx работать

раскрыть ветку (32)
13
Автор поста оценил этот комментарий

AutoIt не только с DirectX  может работать, но и таблицами, браузерами и другими программами. И он не требует большого контроля.

раскрыть ветку (30)
15
Автор поста оценил этот комментарий

Autoit вообще шикарен.
Синтаксис запоминается(а в случае, если это первый опыт кодинга - то учится) за пару часов.
Довольно широкая русскоязычная и англоязычная поддержка форумов и сайтов с обилием примеров на любой вкус.
В общем, +1 за AutoIt.

раскрыть ветку (5)
2
Автор поста оценил этот комментарий

А в нем можно написать лайкер для сайта? А то я сейчас кликерманом пользуюсь (узнал о нем, когда еще в игры играл много лет назад). Но, к сожалению, там до конца все не автоматизируешь.

раскрыть ветку (4)
4
Автор поста оценил этот комментарий

Можно =)
Единственное, что мне не приходилось что-то делать для сайтов, поэтому элегантных методов автоматизации через запросы не подскажу.
Но через поиск по картинке/пикселям или подобным ключевым вещам - вполне.

Единственный минус последних вариантов - автоматизация будет работать только в активном окне, и свернуть всё и заняться своими делами - не получится =)
Но для таких костылей я запускаю другой костыль - виртуалку с виндой, и запускаю всё там)

раскрыть ветку (3)
Автор поста оценил этот комментарий

Ну для этого у меня есть свободный ноут есть. Сейчас так и делаю. Пока пинаю МПХ в офисе, пишу кликеру команду делать то-то и то-то на втором ноуте. И пока он пол часа занят, листаю интернеты. Но хотелось бы, чтобы он сам, без моего участия делал все. Попробую проштутдировать форум. :) Спасибо.

раскрыть ветку (2)
Автор поста оценил этот комментарий

PhantomJS

браузер из командной строки. Пишется сценарий на жабаскрипте, запускается...

раскрыть ветку (1)
Автор поста оценил этот комментарий

Я, к сожалению, далек от темы программирования.

1
Автор поста оценил этот комментарий

а с таблицами как? через доступ к элементам интерфейса?

раскрыть ветку (21)
7
Автор поста оценил этот комментарий
Работает с любой версией Word, Excel, другими приложениями офиса через майкрософтовский COM-объект. Типа как "изнутри".
Типичная инструкция:
$vRange = $oWorksheet.Range($vRange)
$vRange.EntireRow.Delete($iShift)

ПыСы. Я довольно продвинутый пользователь AutoIt, обращайтесь.
раскрыть ветку (20)
Автор поста оценил этот комментарий

а как быть с накладными, там вначале шапка идет что-то типа:

Фирма ООО "Кнуты и пряники"
дата: 26.08.2008

Номер заказа: №12583г8941


а дальше уже таблица. Я как ботописатель думал графически определять текст и границы таблицы.


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

И конец таблицы.


Пока смутно представляю как сделать.

Если не трудно, во имя лиги лени подскажите :)

раскрыть ветку (1)
Автор поста оценил этот комментарий
Дайте скрин этого экрана, посмотрю. Данные в полях оставлять не обязательно, мне токо глянуть
Автор поста оценил этот комментарий

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

раскрыть ветку (6)
1
Автор поста оценил этот комментарий
Телеграм, пользователь @veretragna
раскрыть ветку (5)
DELETED
Автор поста оценил этот комментарий

Приветствую! Уместно ли будет задать вопрос по autoit в телеграме?

раскрыть ветку (4)
Автор поста оценил этот комментарий

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

раскрыть ветку (3)
DELETED
Автор поста оценил этот комментарий

Эх, жаль. Я даже текст в тележке набросал, но кнопку отправить не нажал :)

раскрыть ветку (2)
Автор поста оценил этот комментарий
Привет! А можно считывать число из directx приложения по определённой координате (в идеале получать координату относительно определённой картинке в том же окне) и записывать его в таблицу, тем самым создав подобие логгера?? Спасибо)
1
Автор поста оценил этот комментарий

Ладно, ячейки экселя, думаю, можно "пощупать" через всякие конструкции.

А ленту экселя? Там где "Главная", "Разметка страницы" и т.д.


Что еще из популярных программ я могу пощупать? Интерфейс Пикабу? Ютуб?

Скайп? Вконтакте?

раскрыть ветку (5)
2
Автор поста оценил этот комментарий
Скайп - когда-то была библиотека-прослойка для автоматизации, но скайп закрыл свой API и теперь ни одним языком нельзя его автоматизировать изнутри. Только снаружи, отправляя команды окну.
2
Автор поста оценил этот комментарий
Интерфейсы сайтов разных можно пощупать через COM-объект браузера IE. Грубо говоря, создается экземпляр IE и для щелчков становятся доступны все элементы DOM. Можно даже исполнять свой джаваскрипт в этом экземпляре браузера.
$oIE = _IECreate()
_IENavigate($oIE, "www.youtube.com")
$temp = _IEGetObjById($oIE, "элемент")
_IEAction($temp, "click")
1
Автор поста оценил этот комментарий
Лента экселя не нужна, абсолютно все операции текущей версии Эксель доступны через COM.
раскрыть ветку (2)
Автор поста оценил этот комментарий

Знаю, но у меня теоретический интерес. Можно или нет?

раскрыть ветку (1)
2
Автор поста оценил этот комментарий
Только опосредованно, я не видел в интерфейсе COM методов контроля над интерфейсом.
Автор поста оценил этот комментарий

а в 1с сможет поля заполнять? Мне например надо ежедневно контакты заносить, а мне лень..

раскрыть ветку (3)
5
Автор поста оценил этот комментарий

Может. Но если есть доступ на запуск обработок - проще написать обработку прямо на языке 1с.

Да, надо знать 1с, но изучить основы 1с проще чем изучить основы AutoIt.

1
Автор поста оценил этот комментарий
Видел где-то на форумах тему с 1С, но сам не смотрел, т.к. не приходилось пока иметь дела. Точно можно некоторые операции делать через оконные команды
1
Автор поста оценил этот комментарий

Можно, либо через обращение к элементам окна напрямую (до этого я еще не дорос).

Либо через четко выверенные комбинации клавиш и кликов.


Можно, например, запустить 1с


Run, C:\program files\1c\1c.exe


Ждем пока он загрузится,


WinWaitActive, 1С:Предприятие ООО "Ромашка"


И так далее.

Автор поста оценил этот комментарий

Плюсую вопрос про таблицы.

раскрыть ветку (1)
Автор поста оценил этот комментарий
1
Автор поста оценил этот комментарий

Рекомендую почитать: http://autoit-script.ru/index.php?board=19.0

мне было интересно, товарищ Belfigor, годноту пишет)

7
Автор поста оценил этот комментарий
Синтаксис данной приблуды очень похож на AutoIT. Уж не знаю, кто с кого списывал. В любом случае, как человек, который автоматизировал работу отдела из сотни сотрудников и кучу сценариев, которые сутками обрабатывались (само собой, падая на голову за день до сдачи) рекомендую и вам, и @netwizard, забить на скриптовые поделки и взять нормальные инструменты, если у вас нет проблем с компиляцией. Я переписал тот же AutoIT на C#, получив удобную (в те времена) библиотеку, которая даже с банальными операциями вроде поиска окна и отправки команд отдельным элементам (ComboBox, ListBox) работала в несколько раз быстрее и надежнее, тогда, как AutoIT могла просто зауиснуть на 762 документе из 30000 в 3 часа ночи. Сейчас же все более распространение получают WPF и UWP, у которых может не быть WinAPI подложки. Такими элементами вы будете управлять только клавиатурой и мышью. Сейчас же существует куча готовых библиотек для автоматизации UI, которые с этим справляются. Опять же, нормальный язык программирования позволит вам раюотать и напрямую с объектами окруэения. Та же операция доюавления звездочки в конце строки решается автозаменой \r\n на *\r\n (впрочем, с этим справится и нормальный текстовый редактор, вроде Notepad++). AutoIT - хороший способ войти в мир автоматизации, не нцжно искать библиотеки, не нужно ставить Visual Studio или, прости хоспади, IntelliJ. Но задерживаться на нем я настоятельно не рекомендую.
раскрыть ветку (2)
2
Автор поста оценил этот комментарий

С того времени 868 дней, я уже и забыл про autoit =)

Сейчас больше интересуюсь веб.

Освоил полный цикл разработки bitrix, практикую gulp, хочу webpack, ror, laravel, node.js и тд.

Можно сказать что сейчас автоматизацией занимается gulp.

Автор поста оценил этот комментарий

Спасибо, подумаем.

1
Автор поста оценил этот комментарий
Согласен, autoit. И как вариант hardcor - lua script
раскрыть ветку (4)
Автор поста оценил этот комментарий

а можно ссылочку на hardcor и кратко инфу об отличиях от autoit, если знаете?

раскрыть ветку (3)
Автор поста оценил этот комментарий
Точную ссыль на немецкий проект не дам, т.к. С телефона, но загуглите это ll.sCmd Reference Manual файл pdf, а хардкорной состовляющей в этом ппоекте является то, что для запуска нужна оболочка lgs, которая поставляется с продуктами Logitech серии G.
P.S. Никто не обещал, что будет просто.
раскрыть ветку (2)
Автор поста оценил этот комментарий

ой всё, лучше с подробными доками autoit разбираться)

Это легче, но все равно спасибо.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Даже не спорю. Обеими руками за. Autoit лучший. И русское сообщество там просто замечательное.
Автор поста оценил этот комментарий

а можно клик по области хоткею присвоить?

раскрыть ветку (1)
Автор поста оценил этот комментарий

За хоткей не скажу, могу только по autoit, да и то последний раз наверное год назад что-то делал на нем.

И кстати, в смысле клик по области?

5
Автор поста оценил этот комментарий

Может кому-то пригодится: JitBit MacroRecorder

Отличная простенькая программа.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

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

2
Автор поста оценил этот комментарий

Ничего лучше и проще Clickermann нет и не будет.

2
Автор поста оценил этот комментарий
А еще можно взять клаву\мышь сразу с макросами и настроить через графический интерфейс. Скучнее, затратнее, но быстрее и проще точно.
раскрыть ветку (4)
Автор поста оценил этот комментарий

Мышь с макросами умеет организовывать циклы? Не сарказм, реально интересно.

раскрыть ветку (3)
7
Автор поста оценил этот комментарий

Конечно. Например, A4 X7. В левом верхнем углу видно, что можно делать циклы и условные переходы на конкретные строки макроса

Иллюстрация к комментарию
Иллюстрация к комментарию
Автор поста оценил этот комментарий

Всм зациклено повторять действие? Сам на своей не проверял (софтверно ограниченный  функционал макросов, лень разблокировать, все дела), но судя по наличию в мануале "Проверьте что цикл не прекращается" должна уметь.

раскрыть ветку (1)
Автор поста оценил этот комментарий

Хотя, разумеется, не факт, что это умеет вообще каждая мышь с макросами.

1
Автор поста оценил этот комментарий

Кстати для совсем чайников есть такая штука Automatic Mouse and Keyboard

Автор поста оценил этот комментарий

А кто подскажет название подобной же программы автоматизации, куда прямо в код можно вставлять куски изображений и она будет их искать на экране ? (т.е. дополнительных функций по распознаванию писать не нужно)

раскрыть ветку (15)
5
Автор поста оценил этот комментарий

Хочешь прохождение Алаваровских игр с поиском предметов автоматизировать?

2
Автор поста оценил этот комментарий

Кибор, там есть полное визуальное программирование. То есть просто создавать можно рисованными блоками логику. и он в скрипт преобразует.
http://kibor-bot.com/stat/visual-programming.php

1
Автор поста оценил этот комментарий

Sikuli

раскрыть ветку (12)
Автор поста оценил этот комментарий

Хотел создать скрипт, которой при нажатом numlock будет многократно кликать мышкой, если нажать лкм.

Вот мой скрипт, который не работает:

LButton::

Loop,

{

If NumLockMode=on

Click

Sleep, 40

If NumLockMode=off

Break

}

раскрыть ветку (6)
1
Автор поста оценил этот комментарий

https://autohotkey.com/docs/commands/GetKeyState.htm


F1::

GetKeyState, arbuz, NumLock, T


If arbuz = D

MsgBox, NumLock is ON


If arbuz = U

MsgBox, NumLock is OFF


Return

1
Автор поста оценил этот комментарий

F1::

Loop,

{

GetKeyState, arbuz, NumLock, T

If arbuz = D

Click


Sleep 40


If arbuz = U

Break

}

Return

раскрыть ветку (4)
Автор поста оценил этот комментарий

спасибо, у меня получилось реализовать немного другими командами, хотя я и немного не понял, что значит D и U. Down и up?

И вот тут ещё не ясно, что означает "P":

if not GetKeyState("F1", "P")

break

кстати, у меня почему-то не получается. сделать так, чтобы при выключенном numlocke F1 выполнял изначальную функцию. То есть я хотел сделать так, чтобы при включённом numlock выполнялись скрипты, а при выключенном клавиши работали нормально.

раскрыть ветку (2)
1
Автор поста оценил этот комментарий

Читаем инструкцию https://autohotkey.com/docs/commands/GetKeyState.htm,

находим

GetKeyState, state, CapsLock, T ; D if CapsLock is ON or U otherwise.

Делаем вывод, что D - капслок включен, U - выключен.

Автор поста оценил этот комментарий

https://autohotkey.com/board/topic/60119-suppress-hotkeys-wh...


#If GetKeyState("Numlock","T")


F1::

MsgBox, 1

Return


#If

Автор поста оценил этот комментарий

То есть при выключенном NumLock F1 не работает так, как должна. Просто не рабочая кнопка.

Автор поста оценил этот комментарий

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

Run, howin32.exe, "C:\Program Files (x86)\winclone

sleep 1000

WinWaitActive Window_clone_1

Send 55523@gmail.com

Send {TAB}

Send 55523

Send {ENTER}

А как мне сделать ввод логина и пароля в уже запущенные окна, допустим их названия Window_clone_1 Window_clone_2 Window_clone_3 Window_clone_4
Заранее спасибо

раскрыть ветку (4)
Автор поста оценил этот комментарий

Нужно 1) активировать окно с таким названием 2) дождаться пока система переключит на него фокус 3) ввести пароль


WinActivate Window_clone_1

WinWaitActive Window_clone_1

Send 55523@gmail.com

Send {TAB}

Send 55523

Send {ENTER}

sleep 1000


WinActivate Window_clone_2

WinWaitActive Window_clone_2

...

раскрыть ветку (3)
1
Автор поста оценил этот комментарий

спасибо

Автор поста оценил этот комментарий

Еше один вопрос - при запушенном скрипте который отправляет нажатие клавивиш в определенное окно
Пример -

ControlSend,, 1, Window_clone_2
sleep 300
ControlSend,, 2, Window_clone_2

sleep 300
перестают работать кнопки - Alt, ctrl, tab (тоесть они работаю через раз)  можно это както поправить? или это зависит из-за параметра sleep , тоесть если я нажимаю  допустим альт и в это время скрипт отсылает нажатие в окно то альт не сработает? я правильно понял или это происходит из-за чего-то другого?

раскрыть ветку (1)
Автор поста оценил этот комментарий

Вот что нашел:

By default, modifier keystrokes (Control, Alt, Shift, and Win) are sent as they normally would be by the Send command. This allows command prompt and other console windows to properly detect uppercase letters, control characters, etc. It may also improve reliability in other ways.


However, in some cases these modifier events may interfere with the active window, especially if the user is actively typing during a ControlSend or if the Alt key is being sent (since Alt activates the active window's menu bar). This can be avoided by explicitly sending modifier up and down events as in this example:


ControlSend, Edit1, {Alt down}f{Alt up}, Untitled - Notepad


То есть везде где используется ControlSend, надо клавиши обрамлять в {Alt down}<клавиша>{Alt up}

Автор поста оценил этот комментарий

с AHK можно познакомится в более игровой среде например в SAMP( San Andersan Multi Player), там это более интереснее применяется

Автор поста оценил этот комментарий

подскажите пожалуйста

нужны хоткеи для мгновенного клика по заданной области

раскрыть ветку (6)
Автор поста оценил этот комментарий

Как понять по области? Можно кликнуть по точке внутри некой области


SendMode Input

1::

Click A, B

Return


где A B координаты точки

раскрыть ветку (5)
Автор поста оценил этот комментарий

Сэр, мне нужен один такой Бот на игру могу заплатить до ну он простенький (Для вас)) Надо сделать так чтоб когда на экране  Изображение было нажимался NumPad4 А если не было то NumPad6. Жду пока увидите буду рад сотрудничить с вами жду ссылку на ваш ВК чтоб отправить избрпажение.

раскрыть ветку (1)
Автор поста оценил этот комментарий

Если сможете вот Вкhttps://vk.com/mypageisthis

Автор поста оценил этот комментарий

Привет подскажи как переименовать окно виндовс через AHK ?

раскрыть ветку (2)
Автор поста оценил этот комментарий

Здесь есть решение на разных языках в том числе на AHK

Автор поста оценил этот комментарий

Ой, ссылку забыл http://forum.oszone.net/post-2420892.html

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку