1 (изменено: Selja8, 2014-07-24 09:30:04)

Тема: AHK: Говорящие часы с будильником.

Доброго времени суток.
Вот собственно часть объемного кода для моих часов, которые умеют произносить время по нажатию клавиши:


#Include %A_ScriptDir%
Pause::
777 := ""
777=%A_Hour%%A_Min%
gosub %777%
return
;**********ДОПУСТИМ**********
0909:
SoundPlay,x.wav            , wait
SoundPlay,9.wav            , wait
SoundPlay,Hours.wav        , wait
SoundPlay,9.wav            , wait
SoundPlay,Minutes.wav      , wait
return
;*****************************

Помогите пожалуйста вставить следующий код:


;*********************************************
;Если время из строчки ниже, то gosub %777%
Time= 0230, 0600, 0800, 1100, 1900, 2000, 0000
;*********************************************

Обещаю по окончании написания выложить весь скрипт с файлами :-) .

2 (изменено: Alectric, 2014-07-24 10:23:39)

Re: AHK: Говорящие часы с будильником.

Ничего непонятно, но скорее всего так:

if (777="0230" or 777="0230" or 777="0600" or 777="0800" or 777="1100" or 777="1900" or 777="2000" or 777="0000)
  gosub %777%

А лучше всего использовать так:

soundplay,%a_hour%.wav

И т.д.
Без добавления кучи меток.

Win 10 x64
AHK v1.1.33.02
                       Справка тебе в помощь.

3

Re: AHK: Говорящие часы с будильником.

Time = 0230,0600,0800,1100,1900,2000,0000

777 = 1900 

if 777 in %Time%
    MsgBox gosub %777%
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

4 (изменено: Selja8, 2014-07-24 14:09:23)

Re: AHK: Говорящие часы с будильником.

Большое Всем спасибо.

Alectric,

soundplay,%a_hour%.wav

Использовать не представляется возможным. Исходники не позволяют.
А,

if (777="0230" or 777="0230" or 777="0600" or 777="0800" or 777="1100" or 777="1900" or 777="2000" or 777="0000)
  gosub %777%

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

serzh82saratov, именно то что нужно. Я рад. Благодарю.

5 (изменено: Alectric, 2014-07-24 15:27:18)

Re: AHK: Говорящие часы с будильником.

Selja8 пишет:

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

Так это было перечисление будильников что-ли?

Selja8 пишет:

Использовать не представляется возможным. Исходники не позволяют.

Даже в таком виде?


; где-то в коде или по кнопке
intro=x  ; Предполагаю - что-то вроде вступления

if a_hour in 01,21  ; Варианты вроде  час|часа|часов
  hours=Hour  ; тут должны быть названия ваших файлов содержащих варианты
else if a_hour in 02,03,04,22,23
  hours=Houres
else if a_hour in 05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20
  hours=Hours

if a_hour in 01,21  ; Варианты вроде минута|минуты|минут
  Minutes=Minut  ; тут должны быть названия ваших файлов содержащих варианты
else if a_hour in 02,03,04,22,23
  Minutes=Minutes
else if a_hour in 05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20
  Minutes=Minuts

gosub,SayTime

saytime:
SoundPlay,%intro%.wav            , wait
SoundPlay,%a_hour%.wav            , wait
SoundPlay,%Hours%.wav        , wait
SoundPlay,%A_min%.wav            , wait
SoundPlay,%Minutes%.wav      , wait
return

Естественно, что придется подгонять названия файлов или вариантов содержимого переменных "intro, hours, Minutes".

Win 10 x64
AHK v1.1.33.02
                       Справка тебе в помощь.

6

Re: AHK: Говорящие часы с будильником.

OFF: Вопрос не по теме к serzh82saratov
Как можно использовать условие "in" в комбинации с обычным сравнением?
Например:

if (string in %string% and a=a)

И вообще возможно ли?

Win 10 x64
AHK v1.1.33.02
                       Справка тебе в помощь.

7

Re: AHK: Говорящие часы с будильником.

В примечании же написано по русски:

Операторы "between", "is", "in" и "contains" не поддерживаются в выражениях.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

8 (изменено: Alectric, 2014-07-24 15:46:29)

Re: AHK: Говорящие часы с будильником.

OFF: Спасибо. Давно не заглядывал в онлайн справку.
А свежая версия "chm" для скачивания будет когда-нибудь или об этом даже не думать?

Win 10 x64
AHK v1.1.33.02
                       Справка тебе в помощь.

9 (изменено: Selja8, 2014-07-24 17:20:12)

Re: AHK: Говорящие часы с будильником.

Помогите пожалуйста в окно GUI сделать CHKBOX c записью второй строки в INI такого плана:

#Include %A_ScriptDir%
HideArr := Object()
applicationname=oclock
SetingsTime=2000
;**************
1=NUKEXPLO.wav
2=MEHANICS.waw
3=MEHANIx.waw
sound= %1%
;**************


loop
{
gosub ini
sleep 1500
777 := ""
777=%A_Hour%%A_Min%
if 777 in %clock2%
{
SoundPlay,%sound%        , wait
gosub %777%
}
} 

f2::

SETTINGS:
            
        Gui,Destroy
        Gui,Add,GroupBox, x12 y10 w230 h350,clock
        Gui,Add,Button, x202 y380 w100 h30 GSETTINGSOK,Сохранить
        Gui,Add,Button, x332 y380 w100 h30 GSETTINGSCANCEL,&Отмена
        Gui,Add,Edit,x22 y30 w210 h320 vsclock,%clock2%
        Gui,Show, x127 y87 h427 w509,%applicationname% Settings
    Return


SETTINGSOK:
        Gui,Submit
        clock:=sclock
        IniWrite,%clock%,%applicationname%.ini,Settings,Time
    Return

SETTINGSCANCEL:
        Gui,Destroy
    Return

INI:
    IfNotExist,%applicationname%.ini
        IniWrite, %SetingsTime% ,%applicationname%.ini,Settings,Time
        IniRead,clock2,%applicationname%.ini,Settings,Time
    If clock2=ERROR
        clock2=1200
    return

В заранее благодарен.

10

Re: AHK: Говорящие часы с будильником.

Selja8 пишет:

сделать CHKBOX c записью второй строки в INI такого плана:

Непонятно... Какой второй строки? Какого плана? Второй строки в предоставленном коде?

Win 10 x64
AHK v1.1.33.02
                       Справка тебе в помощь.

11 (изменено: Selja8, 2014-07-24 17:34:30)

Re: AHK: Говорящие часы с будильником.

Извините, сайт перегружен.

В GUI окне box с 3-мя переключателями мелодии будильника.

После нажатия кнопки "Сохранить" ведётся запись в INI файл.
Строка 1-время через запятую.

В строке 2 надо записать выбранный нами переключатель.
1 переключатель=1
2 переключатель=2
3 переключатель=3

"AUDIO=1" или "AUDIO=2"
В представленном коде.

12

Re: AHK: Говорящие часы с будильником.

Или же могу предложить полный архив.
https://yadi.sk/d/0nCkFe10XFywe

13 (изменено: Alectric, 2014-07-24 17:39:03)

Re: AHK: Говорящие часы с будильником.

У функций "IniWrite" "IniRead" есть параметр, называемый "Key", таким образом нет нужды разделять на строки содержимое ini файла.
Просто задайте другой "Key" (т.е. "ключ") и настройка сохранится в него.

Win 10 x64
AHK v1.1.33.02
                       Справка тебе в помощь.

14

Re: AHK: Говорящие часы с будильником.

Selja8 пишет:

Или же могу предложить полный архив.

ДВЕНАДЦАТЬ!!! FUCKING ТЫСЯЧ СТРОК??? Вы прикалываетесь, что ли?

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

15

Re: AHK: Говорящие часы с будильником.

teadrinker пишет:
Selja8 пишет:

Или же могу предложить полный архив.

ДВЕНАДЦАТЬ!!! FUCKING ТЫСЯЧ СТРОК??? Вы прикалываетесь, что ли?

OFF: Мой вариант ему "некатит".

Win 10 x64
AHK v1.1.33.02
                       Справка тебе в помощь.

16 (изменено: Selja8, 2014-07-27 10:52:42)

Re: AHK: Говорящие часы с будильником.

Alectric,

Вариант шикарный, только некоторых цифр не хватает. Минут например.

17

Re: AHK: Говорящие часы с будильником.

Да тут с любым вариантом можно в сотню строк уложиться, думаю. Это ещё с запасом.

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

18

Re: AHK: Говорящие часы с будильником.

Selja8 пишет:

Вариант шикарный, только некоторых цифр не хватает. Минут например.

Предполагалось что Вы сами его доработаете, я дал Вам только пример, как это можно осуществить проще.

Win 10 x64
AHK v1.1.33.02
                       Справка тебе в помощь.

19

Re: AHK: Говорящие часы с будильником.

Если есть возможность упростить, то я только за.

20

Re: AHK: Говорящие часы с будильником.

Ну так в чем проблема? Берите пример и редактируйте под себя.

Win 10 x64
AHK v1.1.33.02
                       Справка тебе в помощь.

21

Re: AHK: Говорящие часы с будильником.

Согласен, думаю справлюсь.
И всё же как быть с настройками и INI?

22

Re: AHK: Говорящие часы с будильником.

teadrinker пишет:

ДВЕНАДЦАТЬ!!! FUCKING ТЫСЯЧ СТРОК???

Такого ещё небыло. Завидуешь.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

23 (изменено: Alectric, 2014-07-24 18:06:18)

Re: AHK: Говорящие часы с будильником.

У Вас в коде 2-е строки записи, вот пример корректного использования:

IniWrite,%clock%,%applicationname%.ini,Settings,clock
IniWrite, %SetingsTime% ,%applicationname%.ini,Settings,SetingsTime

Для чтения соответственно использовать нужные ключи.

IniRead,clock,%applicationname%.ini,Settings,clock
IniRead,SetingsTime,%applicationname%.ini,Settings,SetingsTime

Вот ссылки кстати:
http://www.script-coding.com/AutoHotkey/IniRead.html
http://www.script-coding.com/AutoHotkey/IniWrite.html

OFF:

serzh82saratov пишет:
teadrinker пишет:

ДВЕНАДЦАТЬ!!! FUCKING ТЫСЯЧ СТРОК???

Такого ещё небыло. Завидуешь.

Последний рекорд был 5754 строк, наверное. Назывался "Гигантский скрипт" не помню автора.
А "OFF:" необязательно писать? Я не знал...

Win 10 x64
AHK v1.1.33.02
                       Справка тебе в помощь.

24

Re: AHK: Говорящие часы с будильником.

Спасибо.

25

Re: AHK: Говорящие часы с будильником.

Alectric пишет:

А "OFF:" необязательно писать? Я не знал...

Не обязательно, наверно, но с OFF флуд выглядит культурнее. Но лучше, конечно, не флудить вовсе.

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

26 (изменено: Alectric, 2014-07-24 18:29:13)

Re: AHK: Говорящие часы с будильником.

Вот так можно выделить десятки минут (я заметил они у Вас используются отдельно).

StringTrimRight,DesM,a_min,1
msgbox,% DesM
SoundPlay,%DesM%0m.wav        , wait

Аналогично с минутами без десятков:

StringTrimLeft,MinM,a_min,1
msgbox,% MinM
SoundPlay,%MinM%.wav        , wait

Win 10 x64
AHK v1.1.33.02
                       Справка тебе в помощь.

27 (изменено: Selja8, 2014-07-24 19:39:53)

Re: AHK: Говорящие часы с будильником.

;||часы||1|2|21|22|23||
if A_hour in 01,02,21,22,23
  A_hour=%A_HOUR%H  
;||минуты||1|2|30|40|50||
if A_min in 01,02,30,40,50  
  A_min=%A_min%M

Не работает. Подскажите пожалуйста в чём ошибка?

28 (изменено: Selja8, 2014-07-24 19:51:04)

Re: AHK: Говорящие часы с будильником.

Спасибо огромное на сегодня я всё.

29 (изменено: Alectric, 2014-07-24 19:34:48)

Re: AHK: Говорящие часы с будильником.

Selja8 пишет:

;||часы||1|2|21|22|23||
if a_hour in 01,02,21,22,23
A_hour=%A_HOUR%H 
;||минуты||1|2|30|40|50||
  A_min=%A_min%M

Встроенные переменные (те, которые начинаются с "A_") нельзя использовать как свои (в смысле им нельзя присвоить другие значения).
Используйте выдуманные переменные вместо "A_hour=" и "A_min=".

Win 10 x64
AHK v1.1.33.02
                       Справка тебе в помощь.

30 (изменено: serzh82saratov, 2014-07-24 21:14:07)

Re: AHK: Говорящие часы с будильником.

Selja8 там же есть логика, так что можно было всё неперебирать.
Этого должно быть достаточно, чтобы правильно озвучить любые варианты:


#SingleInstance Force
SetWorkingDir %A_ScriptDir%
Global compliance := {}
  
Loop 60 
    n := A_Index-1, n := n < 10 ? 0 n : n, a := StrSplit(n) 
    , compliance[n] := a[2] > 4 || a[2] = 0 || a[1] = 1 ? 3 : a[2] > 1 && a[2] < 5 ? 2 : 1 

F3:: Speech(A_Hour, A_Min) 
 
Speech(h, m)  { 
    a := StrSplit(h)
    SoundPlay, % (h = "00" ? 0 : a[1] = 0 ? "" : a[1] = 1 ? h : a[1] 0) ".wav", wait
    SoundPlay, % (a[1] = 1 || a[2] = 0 ? "" : a[2]) ".wav", wait
    SoundPlay, % "Hour_" compliance[h] ".wav", wait
    a := StrSplit(m)
    SoundPlay, % (a[1] = 0 ? "" : a[1] = 1 ? m : a[1] 0) ".wav", wait
    SoundPlay, % (a[1] = 1 || (a[2] = 0 && a[1] > 1) ? "" : a[2] = 1 || a[2] = 2 ? a[2] "M" : a[2]) ".wav", wait
    SoundPlay, % "Min_" compliance[m] ".wav", wait 
}  
    
Esc::     
    ExitApp 

Тут следует переименовать некоторые файлы таким образом,

+ думаю сообразите

clock.ahk
Clock.wav
Hour_1.wav         Час
Hour_2.wav         Часа
Hour_3.wav         Часов
MEHANICS.WAV
MEHANIX.WAV
Min_1.wav         Минута
Min_2.wav         Минуты
Min_3.wav         Минут
NUKEXPLO.WAV
oclock.ini
X.WAV
0.WAV
1.WAV
1M.WAV
2.WAV
2M.WAV
3.WAV
4.WAV
5.WAV
6.WAV
7.WAV
8.WAV
9.WAV
10.WAV
11.WAV
12.WAV
13.WAV
14.WAV
15.WAV
16.WAV
17.WAV
18.WAV
19.WAV
20.WAV
30.WAV
40.WAV
50.WAV

Некоторые файлы были продублированы, я их удалил.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

31 (изменено: Selja8, 2014-07-25 10:21:07)

Re: AHK: Говорящие часы с будильником.

Serzh82saratov, всё получилось спасибо Вам.
Только вот теперь не получается вставить свой цикл:

loop
{
gosub ini
sleep 1500
777 := ""
777=%A_Hour%%A_Min%
if 777 in %clock2%
{
SoundPlay,%ALARM%        , wait
gosub 555
}
} 

32

Re: AHK: Говорящие часы с будильником.

А как именно не получается, надо по гороскопу смотреть?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

33

Re: AHK: Говорящие часы с будильником.

#SingleInstance Force
SetWorkingDir %A_ScriptDir%
Global compliance := {}
  
applicationname=oclock
SetingsTime=2000
;**************
1=NUKEXPLO.wav
2=MEHANICS.waw
3=MEHANIx.waw
4=NUKEXPLO2.mp3
ALARM= %1%
;**************

Loop 60 
    n := A_Index-1, n := n < 10 ? 0 n : n, a := StrSplit(n) 
    , compliance[n] := a[2] > 4 || a[2] = 0 || a[1] = 1 ? 3 : a[2] > 1 && a[2] < 5 ? 2 : 1 
loop
{
gosub ini
sleep 1500
777 := ""
777=%A_Hour%%A_Min%
if 777 in %clock2%
{
SoundPlay,%ALARM%        , wait
gosub 555
}
} 
  


F3:: gosub 555
555:
SoundPlay, INTRO_Metro.mp3, wait
Speech(A_Hour, A_Min) 
return    
Speech(h, m)  { 
    a := StrSplit(h)
    SoundPlay, % (h = "00" ? 0 : a[1] = 0 ? "" : a[1] = 1 ? h : a[1] 0) ".wav", wait
    SoundPlay, % (a[1] = 1 || a[2] = 0 ? "" : a[2]) ".wav", wait
    SoundPlay, % "Hour_" compliance[h] ".wav", wait
    a := StrSplit(m)
    SoundPlay, % (a[1] = 0 ? "" : a[1] = 1 ? m : a[1] 0) ".wav", wait
    SoundPlay, % (a[1] = 1 || (a[2] = 0 && a[1] > 1) ? "" : a[2] = 1 || a[2] = 2 ? a[2] "M" : a[2]) ".wav", wait
    SoundPlay, % "Min_" compliance[m] ".wav", wait 
}  
    
Esc::     
    ExitApp 
    
f2::

SETTINGS:
            
        Gui,Destroy
        Gui,Add,GroupBox, x12 y10 w230 h350,clock
        Gui,Add,Button, x202 y380 w100 h30 GSETTINGSOK,Сохранить
        Gui,Add,Button, x332 y380 w100 h30 GSETTINGSCANCEL,&Отмена
        Gui,Add,Edit,x22 y30 w210 h320 vsclock,%clock2%
        Gui,Show, x127 y87 h427 w509,%applicationname% Settings
    Return


SETTINGSOK:
        Gui,Submit
        clock:=sclock
        IniWrite,%clock%,%applicationname%.ini,Settings,Time
    Return

SETTINGSCANCEL:
        Gui,Destroy
    Return

INI:
    IfNotExist,%applicationname%.ini
        IniWrite, %SetingsTime% ,%applicationname%.ini,Settings,Time
        IniRead,clock2,%applicationname%.ini,Settings,Time
    If clock2=ERROR
        clock2=1200
    return
    
^F1::reload

Если ставлю его после Loop 60, то он не работает, если перед, то Loop 60 не выполняется.

34

Re: AHK: Говорящие часы с будильником.

Если ставлю его после Loop 60, то он не работает

Почему же работает у меня:

Loop 60 
    n := A_Index-1, n := n < 10 ? 0 n : n, a := StrSplit(n) 
    , compliance[n] := a[2] > 4 || a[2] = 0 || a[1] = 1 ? 3 : a[2] > 1 && a[2] < 5 ? 2 : 1 
Loop
{
    MsgBox
}
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

35

Re: AHK: Говорящие часы с будильником.

Да, таком виде работает. И %ВСЕ% работают.  Тогда в чём ошибка? Будильник всё равно не работает.

36 (изменено: Selja8, 2014-07-25 11:04:54)

Re: AHK: Говорящие часы с будильником.

serzh82saratov пишет:

У меня работает.

loop
{
msgbox %ALARM% простая переменная
gosub ini
msgbox %clock2%
sleep 1500
777=%A_Hour%%A_Min%
if 777 in %clock2%
{
Msgbox %ALARM% переменная вместо SoundPlay    
gosub 555
}
} 

msgbox %ALARM% переменная вместо SoundPlay НЕ ВЫПОЛНЯЕТСЯ.

37

Re: AHK: Говорящие часы с будильником.

Будильник всё равно не работает.

У меня работает.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

38 (изменено: Selja8, 2014-07-25 11:13:16)

Re: AHK: Говорящие часы с будильником.

Loop 60 
    n := A_Index-1, n := n < 10 ? 0 n : n, a := StrSplit(n) 
    , compliance[n] := a[2] > 4 || a[2] = 0 || a[1] = 1 ? 3 : a[2] > 1 && a[2] < 5 ? 2 : 1 
    loop
    {
    msgbox %ALARM% простая переменная
    gosub ini
    msgbox %clock2%
    sleep 1500
    777=%A_Hour%%A_Min%
    if 777 in %clock2%
    
    msgbox %ALARM% переменная вместо SoundPlay    
    gosub 555
    
    } 

А в таком виде:

msgbox %ALARM% переменная вместо SoundPlay

  -пропускает, а

gosub 555


  -выполняет.

При этом 

msgbox %ALARM% простая переменная
 gosub ini
    msgbox %clock2%

работает.

39

Re: AHK: Говорящие часы с будильником.

Ну так нововведения тут не причём. На работу вашего цикла они никак невлияют. Вы просто сами не можете понять (или другим объяснить), чего вы хотите добится в этом цикле.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

40 (изменено: Selja8, 2014-07-27 10:45:54)

Re: AHK: Говорящие часы с будильником.

В прошлой версии скрипта всё работало.

+ открыть спойлер
#Include %A_ScriptDir%
HideArr := Object()
applicationname=oclock
SetingsTime=2000
;**************
1=NUKEXPLO.wav
2=MEHANICS.waw
3=MEHANIx.waw
sound= %1%
;**************


loop
{
gosub ini
sleep 1500
777 := ""
777=%A_Hour%%A_Min%
if 777 in %clock2%
{
SoundPlay,%sound%        , wait
gosub %777%
}
}


F22::
777 := ""
777=%A_Hour%%A_Min%
gosub %777%
return

0000:
SoundPlay,clock.wav        , wait
SoundPlay,x.wav            , wait
SoundPlay,0.wav            , wait
SoundPlay,Hours.wav        , wait
SoundPlay,0.wav            , wait
SoundPlay,Minutes.wav    , wait
return

f2::

SETTINGS:
            
        Gui,Destroy
        Gui,Add,GroupBox, x12 y10 w230 h350,clock
        Gui,Add,Button, x202 y380 w100 h30 GSETTINGSOK,Сохранить
        Gui,Add,Button, x332 y380 w100 h30 GSETTINGSCANCEL,&Отмена
        Gui,Add,Edit,x22 y30 w210 h320 vsclock,%clock2%
        Gui,Show, x127 y87 h427 w509,%applicationname% Settings
    Return


SETTINGSOK:
        Gui,Submit
        clock:=sclock
        IniWrite,%clock%,%applicationname%.ini,Settings,Time
    Return

SETTINGSCANCEL:
        Gui,Destroy
    Return

INI:
    IfNotExist,%applicationname%.ini
        IniWrite, %SetingsTime% ,%applicationname%.ini,Settings,Time
        IniRead,clock2,%applicationname%.ini,Settings,Time
    If clock2=ERROR
        clock2=1200
    return

41

Re: AHK: Говорящие часы с будильником.

А сейчас что не работает?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

42

Re: AHK: Говорящие часы с будильником.

loop
{
gosub ini
sleep 1500
777 := ""
777=%A_Hour%%A_Min%
if 777 in %clock2%
{
SoundPlay,%ALARM%        , wait
gosub 555
}
} 

Сейчас не работает условие-

if 777 in %clock2%
{
SoundPlay,%ALARM%        , wait
gosub 555
}

43

Re: AHK: Говорящие часы с будильником.

Значит что то не так с переменной clock2.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

44 (изменено: Selja8, 2014-07-25 12:56:43)

Re: AHK: Говорящие часы с будильником.

Посмотрите пожалуйста, я уже всю голову себе сломал. Переменная работает. Условие нет.
https://yadi.sk/d/a5UQKhWRXJpzT

45

Re: AHK: Говорящие часы с будильником.

Не надо ломать голову, так ведь и сломать можно. Надо просто прочитать справку.
If var [not] in value1,value2,...

Пробелы и табуляции до и после запятых имеют значение

Здесь после запятых пробелы не пишутся.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

46 (изменено: Selja8, 2014-07-25 20:16:27)

Re: AHK: Говорящие часы с будильником.

Все заработало.
Завтра доделаю настройки.
Еще раз спасибо, всего доброго.

47

Re: AHK: Говорящие часы с будильником.

А не проще ли использовать сам  Голосовой движок SAPI5 "Алена" и прикрутить к нему скрипт?
http://rutracker.org/forum/viewtopic.php?t=3475243

Win10 x64

48 (изменено: Selja8, 2014-07-26 20:08:01)

Re: AHK: Говорящие часы с будильником.

https://yadi.sk/d/KY5MhSzIXk5hw
Код.

+ открыть спойлер
#SingleInstance Force
SetWorkingDir %A_ScriptDir%
HideArr := Object()
Global compliance := {}
  
applicationname=oclock
SetingsTime=1200
;**************
a1=NUKEXPLO.wav
a2=MEHANICS.waw
a3=MEHANIx.waw
a4=NUKEXPLO2.mp3
SeALARM= %A3%
i1=Metro.mp3
i2=X.wav
i3=Clock.wav
SeINTRO= %i2%
SeHKI=^printscreen
SeHKS=^#printscreen
;**************
gosub ini
Loop 60 
    n := A_Index-1, n := n < 10 ? 0 n : n, a := StrSplit(n) 
    , compliance[n] := a[2] > 4 || a[2] = 0 || a[1] = 1 ? 3 : a[2] > 1 && a[2] < 5 ? 2 : 1 
    loop
    {
    
    sleep 1500
    777=%A_Hour%%A_Min%
    gosub ini
    if 777 in %clock2% 
    {
    SoundPlay, %ALARM% , wait    
    gosub 555
    }
    } 
return
  


!space:: gosub 555
555:
SoundPlay, %INTRO%, wait
Speech(A_Hour, A_Min) 
return    
Speech(h, m)  { 
    a := StrSplit(h)
    SoundPlay, % (h = "00" ? 0 : a[1] = 0 ? "" : a[1] = 1 ? h : a[1] 0) ".wav", wait
    SoundPlay, % (a[1] = 1 || a[2] = 0 ? "" : a[2]) ".wav", wait
    SoundPlay, % "Hour_" compliance[h] ".wav", wait
    a := StrSplit(m)
    SoundPlay, % (a[1] = 0 ? "" : a[1] = 1 ? m : a[1] 0) ".wav", wait
    SoundPlay, % (a[1] = 1 || (a[2] = 0 && a[1] > 1) ? "" : a[2] = 1 || a[2] = 2 ? a[2] "M" : a[2]) ".wav", wait
    SoundPlay, % "Min_" compliance[m] ".wav", wait 
}  
    return
 
    
#!space::

SETTINGS:
        Gui,Destroy
        Gui,Add,GroupBox, x12 y10 w230 h350,clock
        Gui,Add,Button, x202 y380 w100 h30 GSETTINGSOK,Сохранить
        Gui,Add,Button, x332 y380 w100 h30 GSETTINGSCANCEL Default, &Отмена
        Gui,Add,Edit,x22 y30 w210 h320 vsclock,%clock2%
        Gui,Show, x127 y87 h427 w509,%applicationname% Settings %A_hour%:%A_min%
        Gui, Add, GroupBox, x252 y10 w220 h140 , ALARM
        Gui, Add, Radio, x262 y30 w200 h20 Group vsA1 , NUKEXPLO
        Gui, Add, Radio, x262 y60 w200 h20 vsA2 , MEHANICS
        Gui, Add, Radio, x262 y90 w200 h20 vsA3 , MEHANIX
        Gui, Add, Radio, x262 y120 w200 h20 vsA4 Checked, NUKEXPLO2 
        Gui, Add, GroupBox, x252 y160 w220 h110 , INTRO
        Gui, Add, Radio, x262 y180 w200 h20 vsi1 Group Checked, METRO
        Gui, Add, Radio, x262 y210 w200 h20 vsi2, X
        Gui, Add, Radio, x262 y240 w200 h20 vsi3, Clock
        Gui, Add, Button, x72 y380 w100 h30 GExit, Exit_Clock
    Return

Exit:
 ExitApp
 
SETTINGSOK:
        Gui,Submit
        clock:=sclock
        HKI:=sHKI
        HKS:=sHKS
        if sA1 > 0
        sALARM:=A1
        else if sA2 > 0
        sALARM:=A2
        else if sA3 > 0
        sALARM:=A3
        else if sA4 > 0
        sALARM:=A4
        if si1 > 0
        II:=i1
        else if si2 > 0
        II:=i2
        else if si3 > 0
        II:=i3
        IniWrite,%clock%,%applicationname%.ini,Settings,Time
        IniWrite,%sALARM%,%applicationname%.ini,Settings,ALARM
        IniWrite,%II%,%applicationname%.ini,Settings,INTRO
    Return

SETTINGSCANCEL:
        Gui,Destroy
    Return

INI:
    IfNotExist,%applicationname%.ini
    {
        IniWrite, %SetingsTime% ,%applicationname%.ini,Settings,Time
        IniWrite, %SeALARM% ,%applicationname%.ini,Settings,ALARM
        IniWrite, %SeINTRO% ,%applicationname%.ini,Settings,INTRO
    } else
    {
        IniRead,clock2,%applicationname%.ini,Settings,Time
        IniRead,ALARM,%applicationname%.ini,Settings,ALARM
        IniRead,INTRO,%applicationname%.ini,Settings,INTRO
    }
    If clock2=ERROR
        clock2=1200
    If ALARM=ERROR
        ALARM=MEHANIx.waw
    If INTRO=ERROR
        INTRO=x.waw
    If HKI=ERROR
        HKI=^printscreen
    If HKS=ERROR
        HKS=^#printscreen
    return
    
^F1::reload

Правда я так и не доделал админку.
Но в целом всё работает.
Всем огромное спасибо, без Вас я бы не справился.

49 (изменено: Selja8, 2014-07-27 10:43:52)

Re: AHK: Говорящие часы с будильником.

Zanoza пишет:

А не проще ли использовать сам  Голосовой движок SAPI5 "Алена" и прикрутить к нему скрипт?

Наверное не очень хороший вариант.
Попробовал ,установил, работает. Конечно мило, но с точки зрения кроссплатформенности и простоты использования - сложно.
Допустим моя мама не сможет установить такие часы никогда и никуда.