Try using "Template" action and construct your text with hyerlinks than paste it to page.
Other option is to create simple LOCAL html page somewhere on your hard disk with
desired text and links, than open that local html page in another tab in BAS and than copy
from that tab to the tab where you are working.
Передать в ручное управление на 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 Перед открытием ассинхронной функции номер потока передать в глобальную переменную. В ассинхронной функции получить эту глобальную переменную и сразу перевести в локальную, чтобы избежать конфликта с другими потоками. В тексте, который показывается юзеру указать эту локальную переменную . пользователь вводит данные, фукция завершается и передает результат. В основном скрипте цикл ожидания