Автор Тема: как назначить горячие клавиши скрипту AutoitX?  (Прочитано 8862 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн GOODVIN [?]

  • Новичок
  • *
  • Сообщений: 5
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.10.2
Зарегестрировал AutoItX3.dll
Создал *.vbs
Написал нужный мне скрипт:
Код: AutoIt [Выделить]
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 к примеру я реализовывал это следующим образом:
Код: 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 если это вообще возможно, назначить горячие клавиши для запуска\паузы\выключения скрипта.
« Последнее редактирование: Май 18, 2014, 09:30:44 от GOODVIN »

Русское сообщество AutoIt

как назначить горячие клавиши скрипту AutoitX?
« Отправлен: Май 17, 2014, 16:55:51 »

Оффлайн alex33 [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 1353
  • Репутация: 169
  • Пол: Мужской
    • alekssamos ВКонтакте
    • Награды
  • Версия AutoIt: 3.3.12.0
GOODVIN  [?]
Цитировать
В обычном Autoit к примеру я реализовывал это следующим образом
Вставь ниже стоящий код в соответствующие теги [autoit][/autoit] и почитай правила форума.

Оффлайн GOODVIN [?]

  • Новичок
  • *
  • Сообщений: 5

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

Оффлайн alex33 [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 1353
  • Репутация: 169
  • Пол: Мужской
    • alekssamos ВКонтакте
    • Награды
  • Версия AutoIt: 3.3.12.0
GOODVIN, Всё, теперь всё так и всё правильно... :)

Русское сообщество AutoIt

Re: как назначить горячие клавиши скрипту AutoitX?
« Ответ #3 Отправлен: Май 18, 2014, 09:53:17 »

Оффлайн Garrett [?]

  • Глобальный модератор
  • *
  • Сообщений: 3682
  • Репутация: 934
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
GOODVIN  [?]
Цитировать
как назначить в autoitX горячие клавиши

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

P.S. Пользуйтесь Autoit.

Скорблю и помню.




Оффлайн alex33 [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 1353
  • Репутация: 169
  • Пол: Мужской
    • alekssamos ВКонтакте
    • Награды
  • Версия AutoIt: 3.3.12.0
Если на старт и на стоп скрипта то предлогаю создать два ярлыка и назначить им клавиши...

Оффлайн GOODVIN [?]

  • Новичок
  • *
  • Сообщений: 5

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.10.2
GOODVIN  [?]
Цитировать
как назначить в autoitX горячие клавиши

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

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

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

Оффлайн joiner [?]

  • Расмус-бродяга
  • AutoIt Гуру
  • *****
  • Сообщений: 2385
  • Репутация: 410
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
а это в свойствах ярлыка есть пункт "Быстрый вызов". туда вписываем сочетание нужных клавиш и сохраняем. точнее не вписываем а выбираем, что предлагает система. к примеру нажми в том пункте на клавишу с цифрой 1
Были времена, когда солнце было ярче, трава зеленее, а водка сорокоградуснее

Русское сообщество AutoIt

Re: как назначить горячие клавиши скрипту AutoitX?
« Ответ #7 Отправлен: Май 19, 2014, 02:05:05 »

Оффлайн GOODVIN [?]

  • Новичок
  • *
  • Сообщений: 5

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.10.2
вообщем спасибо ребята, топик моно закрывать, пойду мозг ломать, что прописать в wsh, чтобы при старте другого скрипта первый скрипт останавливался.

Оффлайн madmasles [?]

  • Глобальный модератор
  • *
  • Сообщений: 7789
  • Репутация: 2313
  • Пол: Мужской
  • Награды За модерирование форума
    • Награды
  • Версия AutoIt: 3.3.x.x
На форуме принято помечать тему решенной после получения ответа на свой вопрос!
Вверху или внизу темы нажмите на ссылку такого вида:
Тема не решена

Оффлайн erlik [?]

  • Продвинутый
  • ***
  • Сообщений: 317
  • Репутация: 83
    • Награды
  • Версия AutoIt: 3.3.8.1
OffTopic
Цитировать
для стоящей передо мной задачи подходит только AutoitX
Что за странная мания у новичков использовать инструмент не по назначению... Во-первых, функция аналогичная send и так есть в vbs (SendKeys) - зачем ее вытаскивать из AutoItX? Во-вторых - для эмуляции нажатий и установки хоткеев идеально подходит AutoHotKey - ответвление AutoIt в том направлении, в котором последний, к сожалению, не стал развививаться.
Скажем, твои два кода на AutoHotKey выглядели бы примерно так:
Код: AutoIt [Выделить]
; вирт. код клавиши 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 [?]

  • Новичок
  • *
  • Сообщений: 5

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.10.2
OffTopic
Цитировать
для стоящей передо мной задачи подходит только AutoitX
Что за странная мания у новичков использовать инструмент не по назначению... Во-первых, функция аналогичная send и так есть в vbs (SendKeys) - зачем ее вытаскивать из AutoItX? Во-вторых - для эмуляции нажатий и установки хоткеев идеально подходит AutoHotKey - ответвление AutoIt в том направлении, в котором последний, к сожалению, не стал развививаться.
Скажем, твои два кода на AutoHotKey выглядели бы примерно так:
Код: AutoIt [Выделить]
; вирт. код клавиши 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 и повторным нажатием той же клавиши останавливаю его. Вообщем ладно, ещё раз спасибо всем кто откликнулся, вопрос закрыт.

Русское сообщество AutoIt

Re: как назначить горячие клавиши скрипту AutoitX?
« Ответ #11 Отправлен: Май 20, 2014, 23:28:18 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
19 Ответов
9257 Просмотров
Последний ответ Январь 06, 2010, 21:07:51
от CreatoR
7 Ответов
5447 Просмотров
Последний ответ Январь 29, 2011, 19:20:13
от Suppir
2 Ответов
2551 Просмотров
Последний ответ Май 17, 2011, 13:31:55
от CreatoR
3 Ответов
2804 Просмотров
Последний ответ Апрель 22, 2012, 22:00:10
от Leanna
0 Ответов
1846 Просмотров
Последний ответ Декабрь 25, 2012, 15:09:49
от inververs
0 Ответов
2597 Просмотров
Последний ответ Декабрь 06, 2013, 11:19:39
от ZED
3 Ответов
1799 Просмотров
Последний ответ Январь 07, 2014, 09:09:21
от madmasles
3 Ответов
931 Просмотров
Последний ответ Июнь 04, 2014, 13:41:03
от madmasles
0 Ответов
3665 Просмотров
Последний ответ Март 10, 2016, 16:39:12
от belovkirill
1 Ответов
152 Просмотров
Последний ответ Март 15, 2017, 09:12:05
от Malderin