@bbb1717 [[VARIABLE]] = [[VARIABLE]].toLowerCase() нижний регистр
[[VARIABLE]] = [[VARIABLE]].toUpperCase() верхнии соответственно
Передать в ручное управление на n секунд?
-
Здравствуйте. Подскажите можно ли в старой (23я) версии БАС как то передать в ручное управление на n секуннд. Если в ручном управлении ничего не происходит со стороны юзера то басу возвращалось бы автоматическое управление.
Если в старой версии нет такого, не реализовано ли это в новых версиях? -
@kuzkuz Это действие не имеет ограничений по времени и продлится до тех пор, пока пользователь ничего не введет.
Как костыльное решение может попробовать использовать его в асинхронной функции? Тогда после запуска фукции сделать ожидание по времени, проверяя полученный результат фунции. Фунция может остаться висеть в ожидании, но скрипт пойдет дальше.
-
@Gryner said in Передать в ручное управление на n секунд?:
@kuzkuz Это действие не имеет ограничений по времени и продлится до тех пор, пока пользователь ничего не введет.
Как костыльное решение может попробовать использовать его в асинхронной функции? Тогда после запуска фукции сделать ожидание по времени, проверяя полученный результат фунции. Фунция может остаться висеть в ожидании, но скрипт пойдет дальше.
А не, это если ожидание ввода пользователя сделать. А с ручным управлением не получится.
-
@Gryner said in Передать в ручное управление на n секунд?:
@kuzkuz
Как костыльное решение может попробовать использовать его в асинхронной функции? Тогда после запуска фукции сделать ожидание по времени, проверяя полученный результат фунции. Фунция может остаться висеть в ожидании, но скрипт пойдет дальше.а получится ли... если при передаче в управление должно происходить взаимодействие юзверя с браузером.
-
@Gryner said in Передать в ручное управление на n секунд?:
@Gryner said in Передать в ручное управление на n секунд?:
@kuzkuz Это действие не имеет ограничений по времени и продлится до тех пор, пока пользователь ничего не введет.
Как костыльное решение может попробовать использовать его в асинхронной функции? Тогда после запуска фукции сделать ожидание по времени, проверяя полученный результат фунции. Фунция может остаться висеть в ожидании, но скрипт пойдет дальше.
А не, это если ожидание ввода пользователя сделать. А с ручным управлением не получится.
Это интересно.
Условно - я передаю в ручное управление юзеру при регистрации на форуме. Там нужно заполнить поле логин пароль. Хотелось бы если юзер не вводит в ручную то через N сек машина берет управление на себя -
@kuzkuz теоретически возможно, в асинхронной функции получить от пользователя ввод текста, который уйдет в глобальную переменную. В основном скрипте отслеживать значение этой переменной в течение некоторого времени. После окончания которого продолжить с исходными параметрами
-
@Gryner said in Передать в ручное управление на n секунд?:
@kuzkuz теоретически возможно, в асинхронной функции получить от пользователя ввод текста, который уйдет в глобальную переменную. В основном скрипте отслеживать значение этой переменной в течении некотого времени. После окончания которого продолжить с исходными параметрами
@Gryner said in Передать в ручное управление на n секунд?:
@kuzkuz теоретически возможно, в асинхронной функции получить от пользователя ввод текста, который уйдет в глобальную переменную. В основном скрипте отслеживать значение этой переменной в течении некотого времени. После окончания которого продолжить с исходными параметрами
Логика примерно такая?
Вызов асинхронной функции и при этом основной скрипт "спать" заданное время.
По окончании заданного времени скрипт начинает работать и смотрит если в глобальной переменной есть текст то то печатает его в поле и нажимает "логиниться" (условно).
Что то я подумал сложно это, может быть ошибка (опечатка) и тогда какой то кирдык... -
@kuzkuz Я же говорю ,что это костыль, но он может работать. Логику ты понял, защиту от опечаток и ошибок тоже можно сделать циклом проверки. Ожидание изменения переменной тоже можно сделать циклом с паузой допустим 10 сек, через заданное количество циклов выйти из цикла.
-
@Gryner said in Передать в ручное управление на n секунд?:
У тебя же что то предусмотрено на тот случай, если пользователь ничего не делал и скрипт сам продолжился?
И да, в однопотоке это реально, в многопотоке проблемно.Да!
Ладно, примерно понял. Буду пробовать.
Жаль конечно что функция взаимодействия юзера не имеет такой фишки! -
@Gryner said in Передать в ручное управление на n секунд?:
У тебя же что то предусмотрено на тот случай, если пользователь ничего не делал и скрипт сам продолжился?
И да, в однопотоке это реально, в многопотоке проблемно.Читаю про "ожидание ввода пользователя"
Это действие **не имеет ограничений по времени и продлится до тех пор, пока пользователь ничего не введет.** -
@Gryner said in Передать в ручное управление на n секунд?:
@kuzkuz если ничего не ввести, асинхронная функция останется висеть в ожидании. Основной скрипт прождав какое то время пойдет дальше.
Прикольно. В принципе даже получилось для одного потока +- сделать наброски.
Сейчас затык с тем, как быть в многопотоке. Как сделать так чтобы в нужный поток вернулись введенные данные а не куда попало. Вижу что при вызове функции асинхронно есть THREAD_ID, но куда чего как пока не понимаю -
@kuzkuz нужно сделать не просто ожидание изменения глобальной переменной переменной, а получить результат ассинхронной функции с тем же THREAD_ID. Результатом может быть как раз тот же введенный результат. Для многопотока это будет правильнее. а вот чтобы пользователь понял ,для какого потока он водит данные, то через глобальную переменную передать в ассинхронную функцию номер потока например и при запросе ввода указать этот поток.
-
@Gryner said in Передать в ручное управление на n секунд?:
@kuzkuz нужно сделать не просто ожидание изменения глобальной переменной переменной, а получить результат ассинхронной функции с тем же THREAD_ID. Результатом может быть как раз тот же введенный результат. Для многопотока это будет правильнее. а вот чтобы пользователь понял ,для какого потока он водит данные, то через глобальную переменную передать в ассинхронную функцию номер потока например и при запросе ввода указать этот поток.
ЛОГИЧНО! Но мне пока не понятно как это сделать.
- Да, нужно пользователю явно показать для какого потока он вводит данные
- Если бы можно было создавать глобальный массив где ячейка это номер потока , а значение это то что ввели было бы супер! Вот поэтому пока и не понимаю. В тоже время не сделать глобальную переменную типа
INPUT_1
INPUT_4
INPUT_7
т.е. так бы было явно понятно что значения для потоков 1,4,7 соответственно.
Видимо надо искать примеры реализаций (=
-
1 Перед открытием ассинхронной функции номер потока передать в глобальную переменную. В ассинхронной функции получить эту глобальную переменную и сразу перевести в локальную, чтобы избежать конфликта с другими потоками. В тексте, который показывается юзеру указать эту локальную переменную . пользователь вводит данные, фукция завершается и передает результат. В основном скрипте цикл ожидания