1

Тема: AHK: Взаимодейтсвия GUI со скриптом.

Добрый вечер, в деле я новичок, решил написать программу которая будет спамить сообщениями каждые 10 секунд, её я сделал. Проблема возникла - как сделать включение и отключение программы? Не полной паузы, а что бы потом можно было нажать на ту же кнопку и скрипт возобновилася.
Решил пойти другим путем и сделать приятнее на вид скрипт.
Хочу использовать GUI меню что бы выглядело примерно так:
http://i51.fastpic.ru/big/2013/0205/c3/ad1819e4a5ec5a95b9f2a2c26080ccc3.jpg

2

Re: AHK: Взаимодейтсвия GUI со скриптом.

как сделать включение и отключение программы

Для отключения программы можно воспользоваться этим замечательным красным крестиком в правом верхнем углу окна отображенного на приложенном изображении.
Соответственно, для включения уместно воспользоваться двойным кликом по исполняемому файлу программы.

Вы имели в виду что-то иное? Конкретизируйте.

3

Re: AHK: Взаимодейтсвия GUI со скриптом.

Та картинка которую я привел в пример, я сделал в фотошопе.
Сам код есть но он просто запускается и всё, я хочу его одаптировать под GUI

HotKey, F1, spam,
spam:

Loop 
{
    {
        Send Куплю шмот на дк не точенный{enter}
        Sleep, 10000
    }
}
    return

4

Re: AHK: Взаимодейтсвия GUI со скриптом.

Enter::
Repeat:
   ++itr
   InputBox, outputVar
           , % "Some title"
           , % "      set "(itr=1 ? "text":"rate")" (step: "itr ")"
           ,
           , 175
           , 120
           , A_ScreenWidth/2-87
           , A_ScreenHeight/2-60
           ,
           ,
           , % "Input "(itr=1 ? "anything":"digits only")" here"
   If ErrorLevel
   {
      itr:=""
      SetTimer, SomeLabel, Off
      Return
   }
   If (itr=2 And Not outputVar~="^[0-9]*\.?[0-9]+$")
   {
      --itr
      Goto, Repeat
   }
   `(itr=1 ? content:=outputVar:rate:=outputVar)
   Goto, % itr=1 ? "Repeat":"Continue"
Continue:
   itr:=""
   SetTimer, SomeLabel, % rate
   Return

SomeLabel:
   MsgBox, 262144, % A_Space, % "content:`n"content "`n`nrate: "rate, % 0.5
;    Send, % content "{Enter}"
   Return

~Esc::
   KeyWait, Esc
   If A_TimeSinceThisHotkey>300
      ExitApp
   Return

5 (изменено: creature.ws, 2013-02-07 12:51:34)

Re: AHK: Взаимодейтсвия GUI со скриптом.

Еще один пример:

Gui, MainWindow: Margin, 10, 10
Gui, MainWindow: Add, text,, Введите текст:
Gui, MainWindow: Add, Edit, w250 vtext, Куплю шмот на дк не точенный{enter}
Gui, MainWindow: Add, text,, частота:
Gui, MainWindow: Add, Edit, x+5 w25 vfrequency limit3 number, 10
Gui, MainWindow: Add, text, x+5, сек
Gui, MainWindow: Add, Button, x+5 gStart, Старт
Gui, MainWindow: Add, Button, x+5 gPause, Пауза
Gui, MainWindow: Show
return

MainWindowGUIClose:
    ExitApp

Start:
    Gui, MainWindow: Submit, nohide
    SetTimer, SendText, % frequency * 1000
    return

Pause:
    SetTimer, SendText, Off
    return

SendText:
    SendInput %text%
    return

И ещё один:

Gui, Margin, 20, 12
Gui, Add, Text,, Введите текст:
Gui, Add, Edit, w210 vtext
Gui, Add, Text,, частота:
Gui, Add, Edit, x+6 w25 vfrequency limit3 number -wrap, 10
Gui, Add, Text, x+6, сек
Gui, Add, Button, x+6 w51 gStart, Старт
Gui, Add, Button, x+6 w51 gPause, Пауза
Gui, Add, Checkbox, xm gToggleAdvSettingsWindow HWNDHWNDcheckbox, расширенные настройки
Gui, +HWNDHWNDmain
Gui, Show, Hide

VarSetCapacity(rect, 16)
DllCall("GetClientRect", "Ptr", HWNDmain, "Ptr", &rect)
clientH := NumGet(rect, 12, "Int")

Gui, Add, Text, y+20, Введите заголовок окна:
Gui, Add, Edit, w210 vwinTitle
Gui, Add, Radio, vsendtoActive Checked, отправлять текст если окно активно
Gui, Add, Radio, vsendtoMinimized, отправлять текст в неактивное окно
Gui, Show, h%clientH%
return

GUIClose:
    ExitApp

Start:
    Gui, Submit, nohide

    if (useAdvSettings && !winTitle)
        errorMessage .= "Введите заголовок окна в которое следует отправлять текст, либо отключите расширенные настройки`n`n"

    if !text
        errorMessage .= "Введите текст`n`n"

    if !frequency
        errorMessage .= "Укажите требуемую частоту отправки`n`n"

    if (errorMessage) {
        MsgBox, 16,, %errorMessage%, 5
        errorMessage := ""
        return
    }

    SetTimer, SendText, % frequency * 1000
    SoundPlay, *48
    return

Pause:
    SetTimer, SendText, Off
    SoundPlay, *64
    return

SendText:
    if (useAdvSettings) {
        if (sendtoMinimized && WinExist(winTitle))
            ControlSend,, %text%
        else if (sendtoActive && WinActive(winTitle))
            SendInput %text%
    }
    else SendInput %text%
    return

ToggleAdvSettingsWindow:
    ControlGet, useAdvSettings, Checked,,, ahk_id %HWNDcheckbox%
    Gui, Show, % useAdvSettings? "Autosize" : "h" . clientH
    return

6 (изменено: Meow Grey, 2013-02-07 02:09:18)

Re: AHK: Взаимодейтсвия GUI со скриптом.

creature.ws
спасибо - это оно.
Вы её писали собственноручно? Или делали меню через SmartGUI?

7 (изменено: creature.ws, 2013-02-07 02:48:44)

Re: AHK: Взаимодейтсвия GUI со скриптом.

Или делали меню через SmartGUI?

Меню?  Нет там меню
GUI — Прочитайте про относительные координаты элементов окна, xm xs x+n и прочие, SmartGUI станет бесполезен как только вы свыкнетесь с принятым способом «создания GUI».

8

Re: AHK: Взаимодейтсвия GUI со скриптом.

creature.ws пишет:

Или делали меню через SmartGUI?

Меню?  Нет там меню
GUI — Прочитайте про относительные координаты элементов окна, xm xs x+n и прочие, SmartGUI станет бесполезен как только вы свыкнетесь с принятым способом «создания GUI».

Спасибо, вы мне очень помогли!