Буфер обмена в контексте БАС.



  • Как сделать так чтобы буфер обмена внутри БАС был отделен от всей остальной системы? Т.е. чтобы <CONTROL>V получал доступ только к буферу БАС? Вставка текста с интервалом 0 мс не подходит.



  • @Mic said in Буфер обмена в контексте БАС.:

    Как сделать так чтобы буфер обмена внутри БАС был отделен от всей остальной системы? Т.е. чтобы <CONTROL>V получал доступ только к буферу БАС? Вставка текста с интервалом 0 мс не подходит.

    Ни как, BAS использует буферобмена системы



  • @Fox Как быть если сайт, в поле которого я пытаюсь вставить текст дописывает некоторые слова (работает что-то вроде автозаполнения). Т.е. фактически он портит мой текст своими вставками. Общий буфер обмена использовать нельзя, т.к. на компьютере могут работать и случайно подменить текст скопировав что-то другое.

    Может есть функция ввод текста целиком, а не побуквенно с интервалом 0 мс? БАС же как-то вставляет весь текст с помощью буфера.



  • @Mic у действия "ввод текста" поставить галочку "отключить эмуляцию мыши и клавиатуры"



  • @GameBot Но это же не изменит побуквенное введение текста



  • изолировать буфер не получится. Но можно писать в него, непосредственно перед вставкой, минимизировав вероятность того, что в буфере будет мусор. После вставки, буфер можно почистить.
    А чтоб не пересекались данные из разных потоков, запись в буфер блокируйте через глобальную переменную.



  • @Mic а через dom js нельзя вставить текст?



  • @tet-vivi said in Буфер обмена в контексте БАС.:

    @Mic а через dom js нельзя вставить текст?

    Действие "Ввод текста" с отключеной эмуляцией клавиатуры итак вводит текст через js



  • @tet-vivi said in Буфер обмена в контексте БАС.:

    @Mic а через dom js нельзя вставить текст?

    Очень муторно. Там каждая строчка в поле ввода текста это отдельный элемент на странице. Да и через js не хочется менять страницу.

    На сколько я понимаю при ctrl+v БАС читает буфер и вставляет его разом, а не побуквенно. Почему нельзя взять переменную и также использовать ее целиком без буфера?



  • @Mic said in Буфер обмена в контексте БАС.:

    На сколько я понимаю при ctrl+v БАС читает буфер и вставляет его разом, а не побуквенно. Почему нельзя взять переменную и также использовать ее целиком без буфера?

    Ctrl+v в BAS работает так же как если бы вы выполняли эту комбинацию клавиш на клавиатуре. Чтобы вводить этот текст по буквам вам нужно взять переменную с буфера обмена и использовать ее в действии "Ввод текста".



  • @spacerange said in Буфер обмена в контексте БАС.:

    Чтобы вводить этот текст по буквам

    Речь о том чтобы ввести весь текст сразу, а не по буквам.



  • @Mic Тогда нужно просто в "Ввод текста" поставить скорость ввода на 0 и не отключать эмуляцию клавиатуры и мыши.



  • @spacerange said in Буфер обмена в контексте БАС.:

    поставить скорость ввода на 0

    Не работает. Все равно буквы появляются по очереди, а не все сразу.



  • Я одного не пойму, в чем смысл для БАС чтение и запись в общий с системой буфер? Запись другой программой в буфер и чтение его из БАС, или наоборот, когда такое вообще может пригодиться?
    За то есть полная невозможность исключить случайную подмену буфера пользователем скрипта. Не кажется ли вам, что разумнее сделать локальный буфер внутри БАС по умолчанию или, как минимум, добавить возможность использования локального буфера.
    Может @support и @Fox смогут посодействовать в решении этой проблемы в новых версиях БАС?



  • @Mic said in Буфер обмена в контексте БАС.:

    Я одного не пойму, в чем смысл для БАС чтение и запись в общий с системой буфер? Запись другой программой в буфер и чтение его из БАС, или наоборот, когда такое вообще может пригодиться?

    https://community.bablosoft.com/topic/3207/копировать-как-rich-text-text-html
    Модуль изначально добавили в BAS, чтобы можно было читать\изменять\записывать данные в системный буфер обмена. То есть вы можете заранее сохранить в файл данные, которые будете вставлять через буферобмена на сайте и загружать их в буферобмена непосредственно перед вводом ctrl+v

    За то есть полная невозможность исключить случайную подмену буфера пользователем скрипта.

    Записывайте данные в буферобмена непосредственно перед использованием и добавьте блокировку буферобмена через глобальную переменную

    Не кажется ли вам, что разумнее сделать локальный буфер внутри БАС по умолчанию или, как минимум, добавить возможность использования локального буфера.
    Может @support и @Fox смогут посодействовать в решении этой проблемы в новых версиях БАС?

    Я не знаю как можно реализовать локальный буферобмена (свой для каждого потока) и нет времени искать для этого возможные решения. А @support уже озвучивал план развития BAS


Log in to reply