Что нового

[Мышь, клавиатура] Макрос для клавиатуры и возможно (?) внедрение в процесс

SeWeR

Новичок
Сообщения
4
Репутация
0
Версия AutoIt: 3.3.6.1

Описание:
Здравствуйте! Нужен скрипт/макрос или хотя-бы пример, который будет очень быстро нажимать определённые клавиши на клавиатуре. Например:
1 -> Пробел -> 2 -> ЛКМ -> 1 -> Пробел -> 4 -> ЛКМ -> 2 -> ЛКМ -> 1
Примеров могу привести много. К сожалению пока точно не знаю, нужно ли будет внедрение в процесс. Будем надеяться, что нет. :smile:
Имеется введу не Num'клавиши, а обычные - находящиеся под функциональными (F1, F2, F3 etc.).
Если можно, то огромная просьба внедрить отключение данного процесса, ну нажатие клавиш. Например включение и выключение кнопкой Shift, Tab или Alt. Разницы вроде нет, для меня. :IL_AutoIt_1:

Примечания:
Буде очень благодарен, если вы сделаете готовый макет, с тем клавишами, что указаны выше.
Дальше постараюсь разобраться сам, если что - спрошу. Заранее огромное спасибо. ;)
 

axlwor

Скриптер
Сообщения
657
Репутация
147
можно. тут каждая пятая тема об этом.
сразу после решения узнают, что стоит защита и нажатие клавиш бесмысленно без ее снятия.
Код:
send()
controlsend()
controlclick()


+ установка горячих клавиш
 
Автор
S

SeWeR

Новичок
Сообщения
4
Репутация
0
axlwor, а можешь написать уже готовый скрипт?) Буду очень благодарен.
Я просто только вчера услышал от друга про AutoIt, поэтому написать сам с 0 нечего не смогу.

P.S. Защиты не должно быть, не тот стиль игры. :smile:
 

axlwor

Скриптер
Сообщения
657
Репутация
147
Код:
#Include <HotKey.au3>

Global Const $VK_ESCAPE = 0x1B

_HotKeyAssign($CK_SHIFT, '_Booms')
_HotKeyAssign(BitOR($CK_CONTROL, $VK_ESCAPE), '_Exit')

While 1
	Sleep (1000)
WEnd
Exit

Func _Booms()
	Send('1')
	Send('{SPACE}')
	Send('2')
	MouseClick ("left")
	Send('1')
	Send('{SPACE}')
	Send('4')
	MouseClick ("left")
	Send('2')
	MouseClick ("left")
	Send('1')
EndFunc

Func _Exit()
	Exit
EndFunc

библиотеку качаем отсюда
 
Автор
S

SeWeR

Новичок
Сообщения
4
Репутация
0
Нечего не работает. Клавиши вообще сами не нажимаются. Проверял в блокноте.
Удерживал шифт, просто нажимал - ноль внимания :(
В трее программа постоянно пишет Script Paused, меня это страшно удивляет.
Видимо я чего-то не понимаю, если это готовый скрипт, то почему после нажатии клавиши Shift, скрипт не жмет последовательно нужные мне клавиши. Даже в блокноте. :shok:
 

Yuri

AutoIT Гуру
Сообщения
737
Репутация
282
Вот пример. За основу взят пример из справки.
Код:
Global $Paused
HotKeySet("{PAUSE}", "TogglePause");поставить/снять паузу
HotKeySet("{ESC}", "Terminate") ;выход
HotKeySet("+z", "PressKey") ;запуск (комбинация Shift + z)

While 1
    Sleep(100)
WEnd

Func TogglePause()
    $Paused = NOT $Paused
    While $Paused
        sleep(100)
        ToolTip('Script is "Paused"',0,0)
    WEnd
    ToolTip("")
EndFunc

Func Terminate()
    Exit 0
EndFunc

Func PressKey()
    While 1
        ;Sleep(100)
        Send("1")
        Send("{SPACE}")
        Send("2")
        MouseClick ("left")
        Send("1")
        Send("{SPACE}")
        Send("4")
        MouseClick ("left")
        Send("2")
        MouseClick ("left")
        Send("1")
    WEnd
EndFunc
 
Автор
S

SeWeR

Новичок
Сообщения
4
Репутация
0
Юрий, спасибо. Этот работает, но немного по-другому. Здесь полностью моя вина, я не описал все точно.
Тут нажатие клавиш идет бесконечно. А мне надо, что бы нажало определённый набор клавиш и все.
Повторное нажатие Shift и опять выполнило нажатие список нужных клавиш. Не бесконечно только. ;)
 

Yuri

AutoIT Гуру
Сообщения
737
Репутация
282
SeWeR
Тогда вот:
Код:
HotKeySet("{ESC}", "Terminate") ;выход
HotKeySet("z", "PressKey") ;запуск  (одна клавиша z)

While 1
    Sleep(100)
WEnd

Func Terminate()
    Exit 0
EndFunc

Func PressKey()        
        Send("1")
        Send("{SPACE}")
        Send("2")
        MouseClick ("left")
        Send("1")
        Send("{SPACE}")
        Send("4")
        MouseClick ("left")
        Send("2")
        MouseClick ("left")
        Send("1")    
EndFunc
 

Remington

Новичок
Сообщения
1
Репутация
0
Господа прогеры, а помогите и мне.

Для игры хочу макрос сделать.

при нажатии левой кнопки мыши 1 раз, он нажимает левый контрол, потом левую кнопку мышки, еще раз левую кнопку и еще раз контрол задержки по 40мс между действиями.

Желательно что бы на клавише ф1 была пауза для макроса.

Спасибо.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Remington,
Предупреждение За нарушение общих правил (пункт В.4):
Не лепите несколько вопросов разной тематики в один пост. По типу "Ребят, а ещё такой вопрос...". Каждый вопрос в свою тему.


С уважением, ваш Модератор.
 
Верх