Что нового

как назначить горячие клавиши скрипту AutoitX?

GOODVIN

Новичок
Сообщения
5
Репутация
0
Зарегестрировал AutoItX3.dll
Создал *.vbs
Написал нужный мне скрипт:
Код:
Set oShell = WScript.CreateObject("WScript.Shell")
Set oFS = WScript.CreateObject("Scripting.FileSystemObject")
Set oAutoIt = WScript.CreateObject("AutoItX3.Control")

oAutoIt.Sleep 1000
oAutoIt.Send("{a down}")
  oAutoIt.Send("{a up}")
oAutoIt.Send("{a down}")
oAutoIt.Send("{a up}")

Да, да, знаю, простенький и фсё такое, но я только начинаю и этот скрипт как-раз то, что мне нужно.
Однако дальше просто застрял, скрипт эмулирует нажатие указанной клавиши лишь при запуске скрипта, т.е. вот кликаю по нему, он нажимает 2 раза "а" и останавливается. А нужно, чтобы при нажатии определённого сочетания клавиш или клавиши можно было остановить\запустить выполнение скрипта а также выйти из него. В обычном Autoit к примеру я реализовывал это следующим образом:
Код:
Global $Paused
HotKeySet("{PAUSE}", "TogglePause")
HotKeySet("{ESC}", "Terminate")
HotKeySet("{z}", "Sending")
 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 Sending()
   Send("{a down}")
  Send("{a up}")
     Send("{a down}")
  Send("{a up}")
 EndFunc

Но AutoitX ругается :( . В справке не нашёл, перерыл уже весь инет, нигде ничего, изредка какая-то обрывочная информация встречается, вообщем я уже в ступоре(((, помогите пожалуйста, подскажите как в AutoitX если это вообще возможно, назначить горячие клавиши для запуска\паузы\выключения скрипта.
 
Автор
GOODVIN

GOODVIN

Новичок
Сообщения
5
Репутация
0
читал правила, а что не там топик создал разве? раздел вроде называется autoitX, он тут на форуме единственный посвящённый autoitX, поэтому сюда и написал, или ещё что-то?
Ребят ну подскажите нюбу, кто знает как назначить в autoitX горячие клавиши. И вот по ходу дела ещё вопросик в тему созрел, можно ли задать одну горячую главишу и на старт и на стоп скрипта?
:(
 

alex33

Скриптер
Сообщения
1,457
Репутация
186
GOODVIN, Всё, теперь всё так и всё правильно... :smile:
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967

alex33

Скриптер
Сообщения
1,457
Репутация
186
Если на старт и на стоп скрипта то предлогаю создать два ярлыка и назначить им клавиши...
 
Автор
GOODVIN

GOODVIN

Новичок
Сообщения
5
Репутация
0
Garrett сказал(а):
GOODVIN [?]
как назначить в autoitX горячие клавиши

Никак.
Нет у вас методов против Кости Сапрыкина
В AutoItX3.Control тоже нет такого метода, равно как и VBScript не имеет аналога функции HotKeySet.

P.S. Пользуйтесь Autoit.
ну я бы и пользовался молча в тряпочку, но для стоящей передо мной задачи подходит только AutoitX, а тут вот нашла коса на камень(

alex33 сказал(а):
Если на старт и на стоп скрипта то предлогаю создать два ярлыка и назначить им клавиши...
это как? не совсем понял? если не трудно пример любой.
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
а это в свойствах ярлыка есть пункт "Быстрый вызов". туда вписываем сочетание нужных клавиш и сохраняем. точнее не вписываем а выбираем, что предлагает система. к примеру нажми в том пункте на клавишу с цифрой 1
 
Автор
GOODVIN

GOODVIN

Новичок
Сообщения
5
Репутация
0
вообщем спасибо ребята, топик моно закрывать, пойду мозг ломать, что прописать в wsh, чтобы при старте другого скрипта первый скрипт останавливался.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
[info border=#0000ff float=left]На форуме принято помечать тему решенной после получения ответа на свой вопрос!
Вверху или внизу темы нажмите на ссылку такого вида:
package_old.gif
Тема не решена
[/info]
 

erlik

Продвинутый
Сообщения
317
Репутация
84
OffTopic:
для стоящей передо мной задачи подходит только AutoitX
Что за странная мания у новичков использовать инструмент не по назначению... Во-первых, функция аналогичная send и так есть в vbs (SendKeys) - зачем ее вытаскивать из AutoItX? Во-вторых - для эмуляции нажатий и установки хоткеев идеально подходит AutoHotKey - ответвление AutoIt в том направлении, в котором последний, к сожалению, не стал развививаться.
Скажем, твои два кода на AutoHotKey выглядели бы примерно так:
Код:
; вирт. код клавиши Z - vk5A
vk5A::
; выполняем действие в цикле
Loop {
Sleep 1000
Send {a down}
Send {a up}
Send {a down}
Send {a up}
}
return 

F6::Suspend  ; заморозить действие горячих клавиш 
Esc::ExitApp ; выход из скрипта
Pause::Pause ; поставить скрипт на паузу\запуск

Согласись - проще не бывает. И я бы выбрал для решения подобных задач именно AHK, а не AutoIT, хотя и на нем можно. Но так проще и не нужно изобретать велосипеды.
 
Автор
GOODVIN

GOODVIN

Новичок
Сообщения
5
Репутация
0
erlik сказал(а):
OffTopic:
для стоящей передо мной задачи подходит только AutoitX
Что за странная мания у новичков использовать инструмент не по назначению... Во-первых, функция аналогичная send и так есть в vbs (SendKeys) - зачем ее вытаскивать из AutoItX? Во-вторых - для эмуляции нажатий и установки хоткеев идеально подходит AutoHotKey - ответвление AutoIt в том направлении, в котором последний, к сожалению, не стал развививаться.
Скажем, твои два кода на AutoHotKey выглядели бы примерно так:
Код:
; вирт. код клавиши Z - vk5A
vk5A::
; выполняем действие в цикле
Loop {
Sleep 1000
Send {a down}
Send {a up}
Send {a down}
Send {a up}
}
return 

F6::Suspend  ; заморозить действие горячих клавиш 
Esc::ExitApp ; выход из скрипта
Pause::Pause ; поставить скрипт на паузу\запуск

Согласись - проще не бывает. И я бы выбрал для решения подобных задач именно AHK, а не AutoIT, хотя и на нем можно. Но так проще и не нужно изобретать велосипеды.
Та не эт не мания), я и средствами вб пробовал - не тыкает в нужном приложении, в приложениях винды тыкает, а там где мне надо, нажатия не эмулируются, autohotkey пробовал - всё как надо эмулируется, но блочится нужным мне окном, autoit - та же история, что и с autohotkey, один autoitX выручает - способен тыкать там где нужно и не блочится, вот только беда в нём с горячими клавишами. пробовал сейчас с ярлыками, не очень конфортно, да и не совсем корректная работа получается с скриптом, нашёл выход из положения, написал второй скрипт на другом языке поставив бессконечный цикл, собственно что-то вроде перенаправления получилось , с грячими клавишами проблем нет, теперь нажатием 1 клавиши запускаю свой скрипт на autoitX и повторным нажатием той же клавиши останавливаю его. Вообщем ладно, ещё раз спасибо всем кто откликнулся, вопрос закрыт.
 
Верх