Ошибка C#

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");

С чем может быть связана данная ошибка? Спасибо
 

modeler

Client
Регистрация
14.11.2014
Сообщения
62
Благодарностей
5
Баллы
8
При чём если работает задача в ProjectMaker то подобная ошибка не возникает. Быть может связано со старой версией зеннопостер?
 
  • Спасибо
Реакции: shutxxx

evgen_po

Client
Регистрация
27.08.2013
Сообщения
847
Благодарностей
528
Баллы
93
Если в постере во многопотоке работает, может быть несколько потоков одновременно пробуют обратится к буферу.
Попробуйте лочить процесс. Вот код - на форуме кто-то выкладывал

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);
}
 

modeler

Client
Регистрация
14.11.2014
Сообщения
62
Благодарностей
5
Баллы
8
Кажись помогло! Спасибо!!!
Потестирую денёк и отпишусь о работоспособности.
 

modeler

Client
Регистрация
14.11.2014
Сообщения
62
Благодарностей
5
Баллы
8
К сожалению опять таже ошибка ...
 

modeler

Client
Регистрация
14.11.2014
Сообщения
62
Благодарностей
5
Баллы
8
Кто нибудь сможет помочь?
 

evgen_po

Client
Регистрация
27.08.2013
Сообщения
847
Благодарностей
528
Баллы
93
Ну сделайте цикл. Чтобы несколько раз пробовало вставить через буфер, если иногда не получается с 1-го раза!
 

modeler

Client
Регистрация
14.11.2014
Сообщения
62
Благодарностей
5
Баллы
8
Циклом если начинает выбивать ошибку то часами может фигачить)) ... оказалось вообщем что даже если ошибка всё равно вставляется, фигня какая то ... поставил пропускать если ошибка ... думаю теперь поможет
 

modeler

Client
Регистрация
14.11.2014
Сообщения
62
Благодарностей
5
Баллы
8
Опять столкнулся с подобным) Отследил почему так. Когда экран виндовса перевожу в режим блокировки, то есть видимо буфер instance.ActiveTab.KeyEvent("v","press","ctrl"); не работает) Какая то есть альтернатива?
 

izubr

Client
Регистрация
11.05.2011
Сообщения
520
Благодарностей
219
Баллы
43
а зачем ты экран блокируешь? машина для работы должна быть активной.
у этого метода другая проблема - 6-8 потоков и невозможно что то самому делать паралельно на компе (в смысле редактирования текстов, программ и т п). а так потоки ждут друг друга, накладок нет со вставками.
 

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