@selector said in как найти размеры изображения (ширина и высота в пикселях) через код в браузере:
задача найти размеры изображения до его скачивания,
Нельзя узнать размеры картинки, не скачивая ее.
Здравствуйте. Подскажите можно ли в старой (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. Результатом может быть как раз тот же введенный результат. Для многопотока это будет правильнее. а вот чтобы пользователь понял ,для какого потока он водит данные, то через глобальную переменную передать в ассинхронную функцию номер потока например и при запросе ввода указать этот поток.
ЛОГИЧНО! Но мне пока не понятно как это сделать.
1 Перед открытием ассинхронной функции номер потока передать в глобальную переменную. В ассинхронной функции получить эту глобальную переменную и сразу перевести в локальную, чтобы избежать конфликта с другими потоками. В тексте, который показывается юзеру указать эту локальную переменную . пользователь вводит данные, фукция завершается и передает результат. В основном скрипте цикл ожидания