lock(SyncObjects.InputSyncer) // блокировка
{
var descr = project.Variables["Thema"].Value ;
if (String.IsNullOrEmpty(descr)) {
throw new Exception("Пустой текст для вставки");
}
// сохраняем предыдущее состояние буфера
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();
if (!String.IsNullOrEmpty(previous_text)) {
System.Windows.Forms.Clipboard.SetText(previous_text);
}}