Что нового

Запуск функции по нажатию горячей клавиши.

shift72

Новичок
Сообщения
86
Репутация
2
Здравствуйте.
Как осуществить запуск кода:
Код:
Send("{RCTRL}")
Sleep ("100")
Send("{RCTRL}")
Sleep ("100")
Send("{RIGHT}")
Sleep ("100")

По нажатию клавиши например "F2"

Отыскал на форуме пример:
Код:
#Include <Misc.au3>

While 1
    If _IsPressed(71) Then ;~ Запуск по нажатию F2
        Do
            Send('{END}')  
            Sleep(4000) 
        Until _IsPressed(72) <> 0 ;~ Стоп по нажатию F3
    EndIf
    Sleep(100)
Wend


Но мне не нужно чтоб команда постоянно повторялась. Мне нужно чтоб по нажатию F2 скрипт сработал один раз и ждал пока я нажму еще раз.
Без :
Код:
While 1
Wend

Скрипт не работает....
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
http://autoit-script.ru/autoit3_docs/functions/HotKeySet.htm
 
Автор
S

shift72

Новичок
Сообщения
86
Репутация
2
Можно на примере?


Добавлено:
Сообщение автоматически объединено:

Не срабатывает. Тачнее работает. Но этот скрипт у меня для игры. Я разварачиваю ее и он не срабатывает. На рабочем стале в текстовом документе тестил все работает. А вот в игре нет...
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
shift72 [?]
Можно на примере?
Тебе дали ссылку, там есть пример, что из него не понятно?

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

shift72

Новичок
Сообщения
86
Репутация
2
Тебе дали ссылку, там есть пример, что из него не понятно?
В начале ссылки небыло никакой. Потом сообщение поправили.
Ну значит в игре стоит блок от нажатия внешних клавиш, или какой то внутренний хук.
Ничего там не стоит игруля на стадии бета теста. Если запускать скрипт на премере того что я отписал выше он сробатывает. Но цикл повторяется вновь и вновь
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
В начале ссылки небыло никакой. Потом сообщение поправили.

В начале было:
Код:
HotKeySet


Но я подумал что кликнуть ПКМ по этой функции ты ни за что не догадаешься (оказался прав), то предоставил тебе прямую ссылку на описание этой функции. С примером.
:reading_book:
 
Автор
S

shift72

Новичок
Сообщения
86
Репутация
2
Ладно. Давай только не умничай... За помощь спасибо. Но в игре почему то макрос не срабатывает....
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
shift72 [?]
Ничего там не стоит
Откуда такая уверенность?

игруля на стадии бета теста
Это не аргумент в пользу отсутствия блока/хука.

Если запускать скрипт на премере того что я отписал выше он сробатывает. Но цикл повторяется вновь и вновь
А зачем использовать цикл?
Ты же уже знаешь что там, выше по ссылке, есть пример, почему не использовать его?
 
Автор
S

shift72

Новичок
Сообщения
86
Репутация
2
Ты же уже знаешь что там, выше по ссылке, есть пример, почему не использовать его?
Вот это работает но цикл постоянно повторяется:

Код:
#Include <Misc.au3>

While 1
    If _IsPressed(71) Then ;~ Запуск по нажатию F2
        Do
            Send('{END}')  
            Sleep(4000) 
        Until _IsPressed(72) <> 0 ;~ Стоп по нажатию F3
    EndIf
    Sleep(100)
Wend


Без тегов

Код:
While 1
Wend


т.е. вот так:

Код:
#Include <Misc.au3>

While 1
    If _IsPressed(71) Then ;~ Запуск по нажатию F2
        Do
            Send('{END}')  
            Sleep(4000) 
        Until _IsPressed(72) <> 0 ;~ Стоп по нажатию F3
    EndIf
    Sleep(100)
Wend

Код не пашит я не в курсе почему.

Вот это работает, но когда разворачиваешь игру не работает

Код:
; Нажимайте Esc, чтобы завершить скрипт, и Pause/Break, чтобы приостановить

Global $Paused
HotKeySet("{PAUSE}", "TogglePause")
HotKeySet("{ESC}", "Terminate")
HotKeySet("+!d", "ShowMessage") ; Shift-Alt-d для вызова сообщения

MsgBox(4096, 'Сообщение', 'Нажмите горячую клавишу Pause/Break,'&@CRLF&'чтобы увидеть как это работает.')

;=== Тело программы должно находится здесь ;===
While 1
    Sleep(100)
WEnd
;===

Func TogglePause()
    $Paused = Not $Paused
    While $Paused
        Sleep(100)
        ToolTip('Скрипт приостановлен')
    WEnd
    ToolTip("")
EndFunc

Func Terminate()
    Exit 0
EndFunc

Func ShowMessage()
    MsgBox(4096,"","Это сообщение.")
EndFunc
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
shift72 [?]
Вот это работает но цикл постоянно повторяется
А что мешает убрать цикл?

Код:
#Include <Misc.au3>

While 1
    If _IsPressed(71) Then ;~ Запуск по нажатию F2
		Send("{RCTRL}")
		Sleep ("100")
		Send("{RCTRL}")
		Sleep ("100")
		Send("{RIGHT}")
		Sleep ("100")
    EndIf
	
    Sleep(100)
Wend


И цикл кстати будет повторяться до нажатия F3.

когда разворачиваешь игру не работает
Я уже написал по этому вопросу выше.
 
Автор
S

shift72

Новичок
Сообщения
86
Репутация
2
А что мешает убрать цикл?
Как его убрать?
пс побывал чтоб в конце кода нажималось ф3 но не прокатывает. Скрипт все равно повторяется.
 
Автор
S

shift72

Новичок
Сообщения
86
Репутация
2
Я же показал в примере.
Сори у меня 3 часа ночи... Невнимателен. Игра ушла на патч. Ждать не буду. Завтра проверю и отпишу.


Добавлено:
Сообщение автоматически объединено:

Спасибо работает.
Интересно почему не срабатывал другой код из примера в справке по функции?
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
shift72 [?]
Интересно почему не срабатывал другой код из примера в справке по функции?
Цитирую себя же!
[?]
значит в игре стоит блок от нажатия внешних клавиш, или какой то внутренний хук.


P.S.
[info border=#0000ff float=left]На форуме принято помечать тему решенной после получения ответа на свой вопрос!
Вверху или внизу темы нажмите на ссылку такого вида:
package_old.gif
Тема не решена
[/info]
 
Верх