Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в эту темуОткрыть новую тему
> Автовыключение по таймеру, Или
Levo222
сообщение 17.6.2020, 1:47
Сообщение #1


*****

Journeyman
Сообщений: 388
Регистрация: 18.11.2017
Группа: Пользователи
Наличность: 297
Пользователь №: 18.689



Другому условию.
Вобщем нужен скрипт, который по истечении указанного времени/или по еще одному условию пройдётся последовательно по нескольким окнам и выключит их(выполнит необходимые действия для конкретного окна с условием)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 17.6.2020, 2:03
Сообщение #2


**********

Elder
Сообщений: 2.908
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 18415
Пользователь №: 16.971
Возраст: 29



Код
--lua
local t = os.clock() + 3.5  -- 3.5 секунды

while t > os.clock() do  -- ждать
    hint (string.format("%.3f", tostring( t - os.clock() )))
    wait (10)
end

log('Нужные действия')
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Levo222
сообщение 17.6.2020, 3:29
Сообщение #3


*****

Journeyman
Сообщений: 388
Регистрация: 18.11.2017
Группа: Пользователи
Наличность: 297
Пользователь №: 18.689



Цитата(cirus @ 17.6.2020, 6:03) *

Код
%.3f


Что означает? Как это формат времени расшифровывается?

Я так понял while единственный оператор позволяющий скрипту работать непрерывно? Остальные просто доходят до конца и выключаются. Странно что нет условия ожидание скрипта "до востребования" - ожидания какого-то действия.

Вопрос скорее был как прожать действия по истечению времени одновременно в несколько окон. Но похоже я понял...
Код
log('Нужные действия')
H = workwindindow1(findwindow okno1)
A = workwindow2(findwindow okno2)
B = workwindow2(findwindow okno3)
C = workwindow2(findwindow okno4)
For i=1, #H do
Send ("exit")
Wait 100
end
for i=1, #A do
Send ("exit")
Wait 100
end
for i=1, #B do
Send ("exit")
Wait 100
end
for i=1, #C do
Send ("exit")
Wait 100
end
Как-то так


1. Как можно передвинуть hint из нижнего угла в любую точку координат?
2. Как задать время в минутах?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 17.6.2020, 11:16
Сообщение #4


**********

Elder
Сообщений: 2.908
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 18415
Пользователь №: 16.971
Возраст: 29



Цитата
%.3f
Что означает?

Означает округлить число до 3 разрядов после десятичного разделителя. Т. е. из числа 12.3456789 останется только 12.345.
Цитата
Странно что нет условия ожидание скрипта "до востребования" - ожидания какого-то действия.

Скрипт должен догаться что вам нужно? Пишите нужное действие он будет ожидать. Изменение цвета, нажатие клавиши или ещё что-то.
Цитата
1. Как можно передвинуть hint из нижнего угла в любую точку координат?

https://forum.uokit.com/index.php?s=&sh...st&p=436867
Цитата
2. Как задать время в минутах?

1 минута - 60 секунд ...
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Levo222
сообщение 17.6.2020, 11:51
Сообщение #5


*****

Journeyman
Сообщений: 388
Регистрация: 18.11.2017
Группа: Пользователи
Наличность: 297
Пользователь №: 18.689



Цитата(cirus @ 17.6.2020, 15:16) *

Так, одной проблемой меньше.

Цитата(cirus @ 17.6.2020, 15:16) *

1 минута - 60 секунд ...


Но отображать то всё равно будет в секундах?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 17.6.2020, 12:46
Сообщение #6


**********

Elder
Сообщений: 2.908
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 18415
Пользователь №: 16.971
Возраст: 29



Цитата
Но отображать то всё равно будет в секундах?

Перевод времени из секунд в минуты и обратно это математика 2й класс...
Код
--lua
function time (t)
    local m = math.floor( (math.floor(t) % 3600) / 60)
    local s = (math.floor(t) % 3600) % 60
    return string.format("%02d:%02d", m, s)
end


local minute = 2.5  -- 2.5 минуты
local t = os.clock() + minute * 60

while t > os.clock() do  -- ждать
    hint (time (t - os.clock()))
    wait (100)
end

log('Нужные действия')
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Levo222
сообщение 17.6.2020, 16:35
Сообщение #7


*****

Journeyman
Сообщений: 388
Регистрация: 18.11.2017
Группа: Пользователи
Наличность: 297
Пользователь №: 18.689



А, Так. стоп

Что-то пошло не так:
(IMG:https://i.ibb.co/WvqmMZX/IMG-20200618-075920.jpg)

А, я даже понял на какой строке он выдаёт ошибку:
Workwindow(h [I][1])
Что-то в буковках в скобках не сходится. Что они обозначают?

У меня вот эта часть кода смутные сомнения вызывает:
Код
log('Нужные действия')
H = workwindindow1(findwindow okno1)
A = workwindow2(findwindow okno2)
B = workwindow2(findwindow okno3)
C = workwindow2(findwindow okno4)
For i=1, #H do
Send ("exit")
Wait 100
end
for i=1, #A do
Send ("exit")
Wait 100
end
for i=1, #B do
Send ("exit")
Wait 100
end
for i=1, #C do
Send ("exit")
Wait 100
end
Как-то так

Внутри надо делать привязку к каждому окну? Или достаточно чтобы в начале? ААААААААААААААААААААААА!!!!!!!!
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 10.7.2020, 19:05
Designed by Nickostyle