Нужна помощь в решении со вставкой текста из буфера обмена.

backoff

Client
Регистрация
20.04.2015
Сообщения
6 013
Благодарностей
6 449
Баллы
113
Ситуация такая.
Есть шаб, тот использует эмуляцию клавы, а именно, CTRL+V. Так как эмулировать ввод текста слишком долго.
Шаблон сделан под сайт который почти весь на аяксе и многие страницы и функции просто подгружаются. И пришел к выводу, что проще переключаться посредством клавы.

В итоге. Проблема конечно же возникла при много потоке. Именно тот момент, который берет текст и вставляет в буфер, а потом делает вставку. Казалось бы какая-то тысячная доля секунды, но этого хватает чтобы вместо ссылки вставить название или еще какую другую хрень. Ну или просто крашнуть шарп.

Вопрос!
Как эмулировать клаву, мгновенную вставку текста из переменной, не за действуя буфер обмена?

или предложите свое решение
 
Последнее редактирование:

doc

Client
Регистрация
30.03.2012
Сообщения
8 685
Благодарностей
4 641
Баллы
113
просто нужно локать процесс помещения текста в буфер и послед. ctrl+v
Н форуме ведь есть где-то сниппет от @Lord_Alfred
 
  • Спасибо
Реакции: backoff и arhip1985

backoff

Client
Регистрация
20.04.2015
Сообщения
6 013
Благодарностей
6 449
Баллы
113

doc

Client
Регистрация
30.03.2012
Сообщения
8 685
Благодарностей
4 641
Баллы
113
Спасибо за наводку....
поиск дал результ.
если кому надо, то лежит тут - http://zennolab.com/discussion/threads/snippet-vstavki-iz-bufera-obmena-dlja-zennoposter-mnogopotochnyj-s-blokirovkami-don-shampinon.33359/

Кстати, doc, а твой варик рабочий?
я про этот - http://zennolab.com/discussion/threads/lok-potokov-ctrl-v.33337/#post-242569
должен быть рабочим. Но я бы заменил SyncObject на SyncObjects.InputSyncer
Ассоциативно это более правильно
 

backoff

Client
Регистрация
20.04.2015
Сообщения
6 013
Благодарностей
6 449
Баллы
113
Пришла мысля в голову, внезапно.
А зачем так изголяться если можно сделать с помощью:

Код:
instance.WaitFieldEmulationDelay();
instance.SendText(project.Variables["message"].Value, 0);
по идее должно сработать?
просто у меня куча мест где берется из буфера, а тут получается просто эмулируется? или я не прав?

то есть будет не вставка, а быстрая эмуляция.
 
Последнее редактирование:

backoff

Client
Регистрация
20.04.2015
Сообщения
6 013
Благодарностей
6 449
Баллы
113
в общем протестил, оба варика рабочие. но есть небольшое НО

при использовании большого объема текста эта функция ( instance.SendText(project.Variables["message"].Value, 0); ) не спасает, то есть даже при нуле тратится большое количество времени на заполнение.
при небольших объемах я использую ее.

при больших, сниппет лорда.
 

backoff

Client
Регистрация
20.04.2015
Сообщения
6 013
Благодарностей
6 449
Баллы
113
при использовании сниипета лорда, все равно выпадает ошибка

Выполнение действия CSharp OwnCode Сбой при выполнении запрошенной операции с буфером обмена.

как пофиксить можно?
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)