Ошибка C#

  • Автор темы Автор темы modeler
  • Дата начала Дата начала

modeler

Client
Регистрация
14.11.2014
Сообщения
62
Реакции
5
Баллы
8
ZennoPoster работает исправно, однако время от времени выдаёт подобную ошибку:
"Выполнения действия CSharp OwnCode Сбой при выполнении запрошенной операции с буфером обмена"
На этот код

var descr = project.Variables["kusok_stati"].Value;
System.Windows.Forms.Clipboard.SetText(descr);
instance.ActiveTab.KeyEvent("v","press","ctrl");

С чем может быть связана данная ошибка? Спасибо
 
При чём если работает задача в ProjectMaker то подобная ошибка не возникает. Быть может связано со старой версией зеннопостер?
 
  • Оценить
Реакции: shutxxx
Если в постере во многопотоке работает, может быть несколько потоков одновременно пробуют обратится к буферу.
Попробуйте лочить процесс. Вот код - на форуме кто-то выкладывал

lock(SyncObjects.InputSyncer) // блокировка
{
var descr = project.Variables["content"].Value;
// сохраняем предыдущее состояние буфера
String previous_text = null;
previous_text = System.Windows.Forms.Clipboard.GetText();
// сохраняем нужный текст в буфер и вставляем его (программно делаем CTRL+V)
System.Windows.Forms.Clipboard.SetText(descr);
instance.ActiveTab.KeyEvent("v","press","ctrl");
// стираем буфер и возвращаем его к первоначальному состоянию
System.Windows.Forms.Clipboard.Clear();
System.Windows.Forms.Clipboard.SetText(previous_text);
}
 
Кажись помогло! Спасибо!!!
Потестирую денёк и отпишусь о работоспособности.
 
К сожалению опять таже ошибка ...
 
Кто нибудь сможет помочь?
 
Ну сделайте цикл. Чтобы несколько раз пробовало вставить через буфер, если иногда не получается с 1-го раза!
 
Циклом если начинает выбивать ошибку то часами может фигачить)) ... оказалось вообщем что даже если ошибка всё равно вставляется, фигня какая то ... поставил пропускать если ошибка ... думаю теперь поможет
 
Опять столкнулся с подобным) Отследил почему так. Когда экран виндовса перевожу в режим блокировки, то есть видимо буфер instance.ActiveTab.KeyEvent("v","press","ctrl"); не работает) Какая то есть альтернатива?
 
а зачем ты экран блокируешь? машина для работы должна быть активной.
у этого метода другая проблема - 6-8 потоков и невозможно что то самому делать паралельно на компе (в смысле редактирования текстов, программ и т п). а так потоки ждут друг друга, накладок нет со вставками.
 

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