1

Тема: AHK: GUI переменная edit в sleep

Вот код:

Gui, Add, Edit, vEdit1 x22 y20 w120 h40 
Gui, Show, x165 y100 h213 w371, New GUI Window
Return

CoordMode, Pixel
SetTimer, GetPixel, 100
 
GetPixel:
   PixelSearch,,, 69, 150, 563, 626, 0x006FFF, 2, FAST
   Gui, Submit, NoHide
   If !ErrorLevel
   {
      SoundPlay, % A_WinDir "\Media\tada.wav"
      Sleep, Edit1
   }
   
   Return

F5::Reload
F6::ExitApp
GuiClose:
ExitApp

Необходимо чтобы в GUI в поле edit можно было задавать кол-во секунд ожидания в строке sleep?

2 (изменено: YMP, 2012-02-12 17:56:13)

Re: AHK: GUI переменная edit в sleep

Gui, Add, Edit,  x22 y20 w120 h40 vTime
Gui, Show, x165 y100 h213 w371, New GUI Window
Return

CoordMode, Pixel
SetTimer, GetPixel, 100
 
GetPixel:
   PixelSearch,,, 69, 150, 563, 626, 0x006FFF, 2, FAST
   Gui, Submit, NoHide
   If !ErrorLevel
   {
      SoundPlay, % A_WinDir "\Media\tada.wav"
      Sleep, % Time * 1000  ; Чтобы получить миллисекунды.
   }
   
   Return

F5::Reload
F6::ExitApp
GuiClose:
ExitApp

3

Re: AHK: GUI переменная edit в sleep

YMP пишет:
Gui, Add, Edit,  x22 y20 w120 h40 vTime
Gui, Show, x165 y100 h213 w371, New GUI Window
Return

CoordMode, Pixel
SetTimer, GetPixel, 100
 
GetPixel:
   PixelSearch,,, 69, 150, 563, 626, 0x006FFF, 2, FAST
   Gui, Submit, NoHide
   If !ErrorLevel
   {
      SoundPlay, % A_WinDir "\Media\tada.wav"
      Sleep, % Time * 1000  ; Чтобы получить миллисекунды.
   }
   
   Return

F5::Reload
F6::ExitApp
GuiClose:
ExitApp

нет не реагирует, походу вообще не ищет пиксел...?

4

Re: AHK: GUI переменная edit в sleep

Тьфу ты, блин, не заметил, что у вас таймером запускается. Команда Return останавливает выполнение кода ещё не доходя то таймера. Перенесите её после SetTimer.

5 (изменено: lprooo, 2012-02-12 19:05:51)

Re: AHK: GUI переменная edit в sleep

Да заработало, спасибо!

Блин оказывается и мой первый способ работал только return мешал.:lol:

6

Re: AHK: GUI переменная edit в sleep

вообщем новая проблема, не могу разобраться с checkbox, нужно чтобы когда чекбокс =1 выполнялась подпрограмма а когда =0 то нет?

Gui, Add, Edit, x12 y40 w100 h30 vEdit1
Gui, Add, CheckBox, x12 y70 w100 h30 vbox1,checkbox1
Gui, Add, CheckBox, x12 y100 w100 h30 , checkbox2
Gui, Add, Radio, x122 y40 w70 h20 , Radio
Gui, Add, Radio, x122 y70 w70 h30 , Radio
Gui, Add, Radio, x122 y110 w70 h20 , Radio
Gui, Add, Radio, x212 y40 w90 h20 , Radio
Gui, Add, Radio, x212 y70 w90 h30 , Radio
Gui, Add, Radio, x212 y110 w90 h20 , Radio
Gui, Add, Text, x12 y10 w100 h30 , sleep
Gui, Add, Text, x122 y10 w70 h30 , text
Gui, Show, x165 y100 h139 w314, prog
   Gui, Submit, NoHide
if box1 = 1
{
CoordMode, Pixel

SetTimer, getpixel, 100
getpixel:
   PixelSearch,,, 69, 150, 563, 626, 0x006FFF, 2, FAST
    Gui, Submit, NoHide
   If !ErrorLevel
   {
      SoundPlay, % A_WinDir "\Media\tada.wav"
      Sleep, Edit1 
   }
}
   Return
F6::ExitApp
GuiClose:
ExitApp

7

Re: AHK: GUI переменная edit в sleep

А когда он у вас 1? Я вижу, что он проверяется в процессе создания Gui. Навряд ли вы такой проворный, что успеете щёлкнуть.

8

Re: AHK: GUI переменная edit в sleep

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

9

Re: AHK: GUI переменная edit в sleep

Теоретически всё правильно. А что, она запускается?

10

Re: AHK: GUI переменная edit в sleep

запускается без ошибок, но молчит, или вообще не запускает подпрограмму или незнаю.

11

Re: AHK: GUI переменная edit в sleep

Не должна запускаться, по идее. Чекбокс ведь не отмечен изначально. Вставьте MsgBox туда и убедитесь.

12 (изменено: lprooo, 2012-02-13 21:36:19)

Re: AHK: GUI переменная edit в sleep

msgbox не выдает, так как быть то?Выдает когда переменная равна 0, а когда 1 то не выдает. а нужно чтобы при выставленной галочке выдавал msgbox, а при убранной не выдавал(это на примере этого кода)

Gui, Add, CheckBox,  x12 y70 w100 h30 vcf1,cf 
Gui, Show, x165 y100 h139 w314, prog
 Gui, Submit, NoHide
if cf1 = 0
{
msgbox, text
}
   Return
F6::ExitApp

13 (изменено: creature.ws, 2012-02-13 21:35:49)

Re: AHK: GUI переменная edit в sleep


; Добавляем элементы gui
Gui, Add, Edit, x12 y40 w100 h30 vEdit1
Gui, Add, CheckBox, x12 y70 w100 h30 vbox1,checkbox1
Gui, Add, CheckBox, x12 y100 w100 h30 , checkbox2
Gui, Add, Radio, x122 y40 w70 h20 , Radio
Gui, Add, Radio, x122 y70 w70 h30 , Radio
Gui, Add, Radio, x122 y110 w70 h20 , Radio
Gui, Add, Radio, x212 y40 w90 h20 , Radio
Gui, Add, Radio, x212 y70 w90 h30 , Radio
Gui, Add, Radio, x212 y110 w90 h20 , Radio
Gui, Add, Text, x12 y10 w100 h30 , sleep
Gui, Add, Text, x122 y10 w70 h30 , text
Gui, Show, x165 y100 h139 w314, prog
; Сразу после прорисовки окна считываем в соответствующие переменные содержимое|состояние элементов gui
Gui, Submit, NoHide
; Начало блока 1
if box1 = 1
{
    CoordMode, Pixel
    SetTimer, getpixel, 100                         ; Установка таймера. Метка которая активируется по таймеру может находится вне секции автовыполнения
}
; Конец блока 1
; Конец секции автовыполнения
Return
; Метка выполняющаяся по таймеру
getpixel:
    PixelSearch,,, 69, 150, 563, 626, 0x006FFF, 2, FAST
    Gui, Submit, NoHide
    If !ErrorLevel
    {
       SoundPlay, % A_WinDir "\Media\tada.wav"   ; Произвольное действие
       Sleep, %Edit1%                            ; Sleep принимает в качестве параметра число. В данном случае число в переменной Edit1
    }
Return
;Произвольные горячие клавиши и условные метки
F6::
GuiClose:
ExitApp

Выше ваш код с комментариями. Логика работы сохранена
Обратите внимание — переменная box1 не равна 1 в момент проверки, т.о. таймер не будет запущен.

14

Re: AHK: GUI переменная edit в sleep

В смысле? Вы чего хотите-то? Опишите задумку.
Галке в чекбоксе появиться неоткуда до проверки box1. Так что ничего удивительного.

15 (изменено: lprooo, 2012-02-13 21:42:47)

Re: AHK: GUI переменная edit в sleep

Опишу подробно на примере :
Если в checkbox ставиться галочка то должен начать выполняться этот код

CoordMode, Pixel

SetTimer, cf2, 100
cf2:
   PixelSearch,,, 69, 150, 563, 626, 0x006FFF, 2, FAST
    Gui, Submit, NoHide
   If !ErrorLevel
   {
      SoundPlay, % A_WinDir "\Media\tada.wav"
      Sleep, Edit1
}

если галочку убрать то код должен перестать выполняться.

16

Re: AHK: GUI переменная edit в sleep

Вы бы какой-то один шаблон использовали, а не фрагменты «примеров», запутаться легко ведь.

17

Re: AHK: GUI переменная edit в sleep

ок, вот сам скрипт оригинал

Gui, Add, Edit, x12 y40 w100 h30 vEdit1
Gui, Add, CheckBox, x12 y70 w100 h30 vbox1,checkbox1
Gui, Add, CheckBox, x12 y100 w100 h30 , checkbox2
Gui, Add, Radio, x122 y40 w70 h20 , Radio
Gui, Add, Radio, x122 y70 w70 h30 , Radio
Gui, Add, Radio, x122 y110 w70 h20 , Radio
Gui, Add, Radio, x212 y40 w90 h20 , Radio
Gui, Add, Radio, x212 y70 w90 h30 , Radio
Gui, Add, Radio, x212 y110 w90 h20 , Radio
Gui, Add, Text, x12 y10 w100 h30 , sleep
Gui, Add, Text, x122 y10 w70 h30 , text
Gui, Show, x165 y100 h139 w314, prog
   Gui, Submit, NoHide
if box1 = 1
{
CoordMode, Pixel

SetTimer, getpixel, 100
getpixel:
   PixelSearch,,, 69, 150, 563, 626, 0x006FFF, 2, FAST
    Gui, Submit, NoHide
   If !ErrorLevel
   {
      SoundPlay, % A_WinDir "\Media\tada.wav"
      Sleep, Edit1 
   }
}
   Return
F6::ExitApp
GuiClose:
ExitApp

Если поставить галку в чек бокс 1 то должна начаться выполняться подпрограмма getpixel
Если галки нет в чек боксе то getpixel не должен выполняться.

18

Re: AHK: GUI переменная edit в sleep

Отлично, по оригиналу — читайте сообщение #13.

19

Re: AHK: GUI переменная edit в sleep

creature.ws пишет:

Отлично, по оригиналу — читайте сообщение #13.

не работает молчит ...

20

Re: AHK: GUI переменная edit в sleep

Ага, понятно, вы желаете получить не помощь, а рабочий скрипт. Извините, не интересно

21

Re: AHK: GUI переменная edit в sleep

Т.е. чекбокс должен работать как выключатель? Если угадал, то так можно:


Gui, Add, Edit, x12 y40 w100 h30 vEdit1
Gui, Add, CheckBox, x12 y70 w100 h30 vbox1 gbox1,checkbox1
Gui, Add, CheckBox, x12 y100 w100 h30 , checkbox2
Gui, Add, Radio, x122 y40 w70 h20 , Radio
Gui, Add, Radio, x122 y70 w70 h30 , Radio
Gui, Add, Radio, x122 y110 w70 h20 , Radio
Gui, Add, Radio, x212 y40 w90 h20 , Radio
Gui, Add, Radio, x212 y70 w90 h30 , Radio
Gui, Add, Radio, x212 y110 w90 h20 , Radio
Gui, Add, Text, x12 y10 w100 h30 , sleep
Gui, Add, Text, x122 y10 w70 h30 , text
Gui, Show, x165 y100 h139 w314, prog

CoordMode, Pixel
Return

box1:
    Gui, Submit, NoHide
    If box1 = 1
        SetTimer, getpixel, 100
    Else
        SetTimer, getpixel, Off
Return

getpixel:
   PixelSearch,,, 69, 150, 563, 626, 0x006FFF, 2, FAST
   Gui, Submit, NoHide
   If !ErrorLevel
   {
      SoundPlay, % A_WinDir "\Media\tada.wav"
      Sleep, Edit1 
   }
Return

F6::ExitApp
GuiClose:
ExitApp

22 (изменено: lprooo, 2012-02-13 22:13:18)

Re: AHK: GUI переменная edit в sleep

ну так я же написал свой код скрипта как понимаю , мне не нужен готовый скрипт. Просто хочу понять как работает checkbox. Ладно буду сам дальше пробывать и на этом тоже спасибо.:)


YMP да переключатель.
ПОлучается не хватало лишь элемента "gbox1" ?

23

Re: AHK: GUI переменная edit в sleep

gBox1 это g-label, который активируется при изменении элемента к которому он приписан. Теперь «выполнение» скрипта будет происходить после установки галочки в соответствующий чекбокс.

24

Re: AHK: GUI переменная edit в sleep

Спасибо за помощь и терпение