1 (изменено: Vault, 2011-04-28 09:03:18)

Тема: AHK: Определение введенного символа => многократное воспроизведение

Доброго времени суток.
Собственно нужна помощь с написанием программки.
Суть программы :  вводим любой символ в поле Gui,  Hotkey , например букву Q.
Скрипт сворачиваем. После этого , при первом нажатии Q выводится, допустим,

loop
{
send {Q}
sleep, 200
click
sleep, 200
}

повторное нажатие Q - останавливает скрипт

Проблема заключается в том, что я не знаю, как переменную из поля Hotkey преобразовать в кнопку, которую можно использовать в команде send

2

Re: AHK: Определение введенного символа => многократное воспроизведение

Vault пишет:

Скрипт сворачиваем.

Что ты под этим понимаешь?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

3 (изменено: Vault, 2011-04-29 16:15:35)

Re: AHK: Определение введенного символа => многократное воспроизведение

Программу в  трей.
В принципе, в реализации программы неясно только каким образом определить код нажатой клавиши, запомнить её, что бы в дальнейшем использовать её в команде send

4 (изменено: teadrinker, 2011-04-29 16:39:33)

Re: AHK: Определение введенного символа => многократное воспроизведение

Чтобы извлечь клавишу, введённую в контрол Hotkey, можно воспользоваться командой Gui, Submit. При её использовании введённая клавиша (или клавиши) сохраняются в ассоциированную с контролом переменную, а окно скрывается (если скрывать не нужно, тогда пишется Gui, Submit, NoHide). Или можно применить команду GuiControlGet.
Например:

   Gui, Add, Hotkey, vChoosenKeys
   Gui, Add, Button, wp hp, OK
   Gui, Show
   Return

ButtonOK:
   Gui, Submit
   MsgBox, %ChoosenKeys%
   Return
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

5 (изменено: Vault, 2011-04-30 18:59:03)

Re: AHK: Определение введенного символа => многократное воспроизведение

Спасибо большое, но всё таки я переоценил свои возможности
Подскажите пожалуйста, как это -

   Gui, Add, Hotkey, vChoosenKeys
   Gui, Add, Button, wp hp, OK
   Gui, Show
   Return

ButtonOK:
   Gui, Submit
   Return

совместить с нужным мне результатом программы

i:=0
loop {
if not GetKeyState("%ChoosenKeys%","P")
break
if i
{
send {%ChoosenKeys%}
sleep, 20
click
click
sleep, 10
i:=0
}
else
{
send {%ChoosenKeys%}
sleep, 20
click
click
sleep, 10
i:=1
}
}
return

Сам проморочился весь  день, ничего не получается
Заранее благодарен

6

Re: AHK: Определение введенного символа => многократное воспроизведение

Ты пишешь:

if not GetKeyState("%ChoosenKeys%","P")
break

Правильно ли я понял, что ты хочешь, чтобы цикл работал только при нажатой выбранной клавише, а при её отпускании прекращался?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

7

Re: AHK: Определение введенного символа => многократное воспроизведение

Да, именно так

8

Re: AHK: Определение введенного символа => многократное воспроизведение

Так как-нибудь:

   Gui, Add, Hotkey, vChosenHotkey
   Gui, Add, Button, wp hp, OK
   Gui, Show
   Return

ButtonOK:
   GuiControlGet, ChosenHotkey,, ChosenHotkey
   Gui, Destroy
   Hotkey, $%ChosenHotkey%, HotkeyWork, On
   Return

HotkeyWork:
   While GetKeyState(ChosenHotkey, "P")
   {
      i = 0
      if i
      {
         send {%ChoosenKeys%}
         sleep, 20
         click
         click
         sleep, 10
         i = 0
      }
      Else
      {
         send {%ChoosenKeys%}
         sleep, 20
         click
         click
         sleep, 10
         i = 1
      }
   }
   Return
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

9

Re: AHK: Определение введенного символа => многократное воспроизведение

Спасибо