1

Тема: AHK: Изменилось значение то

У меня есть скрипт:

string := A_Hour
Loop {
if (String = String)
else 
Msgbox Час изменился на %A_Hour%
}

Но он не работает, мне нужно, чтобы если час изменился, то он это писал в Msgbox, всем спасибо.

2 (изменено: belyankin12, 2017-11-04 23:26:00)

Re: AHK: Изменилось значение то

Во-первых не вижу смысла вообще в строчке if (...). И не только потому, что у вас запись примерно такая: If (1 = 1), а ещё и потому, что у вас нет действия в случае есть string = string, а потому в этой строчке смысла нет. Две строчки if else можно заменить, использовав вместо "=" "!=". А во-вторых, переменная не обновляется при обращению к ней, для таких целей можете использовать функцию, но гораздо эффективнее использовать статичную переменную и while.

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

3

Re: AHK: Изменилось значение то

belyankin12, так я и спросил как сделать.

4 (изменено: belyankin12, 2017-11-04 23:47:02)

Re: AHK: Изменилось значение то

Ну я вам и ответил, что непонятного? Я не напишу код за вас, я только скажу вам алгоритмы и назову нужные команды. Вы должны сами дойти до понимания логики выполнения вашей задачи, тогда я смогу быть уверен в том, что вы научитесь решать эту задачу самостоятельно.

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

5 (изменено: Coffi, 2017-11-04 23:52:56)

Re: AHK: Изменилось значение то

Блин опять пришлось искать на англоязычных форумах - https://autohotkey.com/board/topic/846-and-operators/

6

Re: AHK: Изменилось значение то

belyankin12, я ничего не просил за меня писать. Я просил подсказать так же, как и эти ребята -
its <>

Sample:
If MyVariable <> MyExpectation ; AHK's advanced syntax
      MsgBox, Damn !

IfNotEqual, MyVariable, MyExpectation; MsgBox, | ; AutoIt2's syntax

7

Re: AHK: Изменилось значение то

Я не понимаю чем вы недовольны тогда. Подсказка есть, что непонятно - спрашивайте.

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

8

Re: AHK: Изменилось значение то

belyankin12 пишет:

Во-первых не вижу смысла вообще в строчке if (...). И не только потому, что у вас запись примерно такая: If (1 = 1), а ещё и потому, что у вас нет действия в случае есть string = string, а потому в этой строчке смысла нет. Две строчки if else можно заменить, использовав вместо "=" "!=". А во-вторых, переменная не обновляется при обращению к ней, для таких целей можете использовать функцию, но гораздо эффективнее использовать статичную переменную и while.

Спасибо, но я так и не понял, как реализовать ваш алгоритм в действии, так что-ли:

String := A_Hour
While A_Hour != String
Msgbox Час изменился

9

Re: AHK: Изменилось значение то

Все верно. Только фигурные и круглые скобки расставьте и все.

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

10

Re: AHK: Изменилось значение то

Так?

String := A_Min
While (A_Min != String)
{
Msgbox % "Минута изменилась на значение " A_Min
}

11

Re: AHK: Изменилось значение то

А сорян я дебил. Вот скрипт:

Loop {
While (A_Min != String)
{
String := A_Min
Msgbox % "Минута изменилась на значение " A_Min
}
}

12

Re: AHK: Изменилось значение то

Вот еще вариант:

Loop {
string := A_Min
if (String <> A_Min)
{
Msgbox % "Минута изменилась на " A_Min
}
}

13 (изменено: belyankin12, 2017-11-05 01:19:12)

Re: AHK: Изменилось значение то

В посте 11 только код нелогичный и неверный. Нелогичный в том, что у вас цикл в цикле. Неправильный в том, что постоянная переменная обновляется с каждой итерацией цикла и у вас опять выходит условие if (1 = 1). Вне цикла должна быть сохранена постоянная переменная, с которой вы будете сравнивать переменную минуты.

Ну а теперь о While.


Loop {
    if (1 != 1) {
        msgbox, 1 != 1
    }
}

While (1 != 1) {
    msgbox, 1 != 1
}

Я привел два цикла, один классический, другой с условием. Оба работают абсолютно одинаково. Разбирайтесь.

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

14

Re: AHK: Изменилось значение то

belyankin12 пишет:

While (1 != 1) {
    msgbox, 1 != 1
}

Тут без Loop не работает.

15

Re: AHK: Изменилось значение то

Оно и не сработает никогда, условие не будет достигнуто, попробуйте любое другое, выполнимое условие. Я для наглядности его придумал, но видимо неудачный пример у меня был.

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

16

Re: AHK: Изменилось значение то

Coffi, код не оформлен, поэтому отображается криво. Обрамите его тегом "code".