Выделить (Ctrl+A) | Копировать (Ctrl+C) | Вставить (Ctrl+V) на C#

Roman*

Client
Регистрация
25.09.2013
Сообщения
1 657
Благодарностей
656
Баллы
113
Встретился неудобный редактор HTML, с которого не взять полное значение элемента, так что выложу код на C#, которые выделяет, копирует, вставляет (Ctrl+A)(Ctrl+C)(Ctrl+V), думаю в хозяйстве пригодится.
Выделить, копировать, положить в переменную
Код:
instance.ActiveTab.KeyEvent("a","press","ctrl");//выделяем текст
instance.ActiveTab.KeyEvent("c","press","ctrl");//копируем текст в буфер
project.Variables["text"].Value = System.Windows.Forms.Clipboard.GetText();//кладем текст в переменную text
Вставить
Код:
var textcr = project.Variables["text"].Value;
System.Windows.Forms.Clipboard.SetText(textcr);
instance.ActiveTab.KeyEvent("v","press","ctrl");//вставить текст из переменной
А то ведь это самое популярное, чего нет в зенопостере -
выделить Ctrl+a, копировать Ctrl+c, вставить Ctrl+v .
 
Последнее редактирование:
Регистрация
08.07.2015
Сообщения
2 848
Благодарностей
712
Баллы
113
Встретился неудобный редактор HTML, с которого не взять полное значение элемента, так что выложу код на C#, которые выделяет, копирует, вставляет (Ctrl+A)(Ctrl+C)(Ctrl+V), думаю в хозяйстве пригодится.
Выделить, копировать, положить в переменную
Код:
instance.ActiveTab.KeyEvent("a","press","ctrl");//выделяем текст
instance.ActiveTab.KeyEvent("c","press","ctrl");//копируем текст в буфер
project.Variables["text"].Value = System.Windows.Forms.Clipboard.GetText();//кладем текст в переменную text
Вставить
Код:
var textcr = project.Variables["text"].Value;
System.Windows.Forms.Clipboard.SetText(textcr);
instance.ActiveTab.KeyEvent("v","press","ctrl");//вставить текст из переменной
А то ведь это самое популярное, чего нет в зенопостере -
выделить Ctrl+a, копировать Ctrl+c, вставить Ctrl+v .
экшен JS все решает это без проблем!
 
Регистрация
23.12.2014
Сообщения
127
Благодарностей
65
Баллы
28
Регистрация
08.07.2015
Сообщения
2 848
Благодарностей
712
Баллы
113
ты имеешь ввиду, что с таким редактором можно легко взаимодействовать через JS?
"редактор" - слово незаметил, думал речь о повсседневном применении копипаста! )
О каком редакторе разговор?
 
Регистрация
23.12.2014
Сообщения
127
Благодарностей
65
Баллы
28
Не знаю как Роману, а мне встречался tinyMCE - он в iframe и элементы не сразу подхватывались.
 

Lord_Alfred

Client
Регистрация
09.10.2015
Сообщения
3 916
Благодарностей
3 866
Баллы
113
Пользовался похожим решением из первого поста, но при многопоточной работе в некоторых потоках результат был непредвиденный из-за того, что буфер обмена - один. И соответственно он использовался в нескольких потоках и где-то даже из-за этого потоки отваливались в самый ответственный момент. Поэтому модифицировал его блокировкой и с сохранением предыдущего буфера в переменную и возвращением его обратно.

Выкладываю его дабы спецы по C# сказали правильно ли он работает - смущает то, что я не знаю как работает lock(SyncObject), блокирует ли он все остальные потоки зенки или работает как-то по-другому?

Код:
lock(SyncObject)
{
    String previous_text = null;
    previous_text = System.Windows.Forms.Clipboard.GetText();
   
    var descr = project.Variables["content"].Value;
    System.Windows.Forms.Clipboard.SetText(descr);
    instance.ActiveTab.KeyEvent("v","press","ctrl");
    System.Windows.Forms.Clipboard.Clear();
   
    System.Windows.Forms.Clipboard.SetText(previous_text);
}
 
  • Спасибо
Реакции: GREXA, zombie и Metrix

ezotonal

Client
Регистрация
13.01.2014
Сообщения
819
Благодарностей
231
Баллы
43
Пользовался похожим решением из первого поста, но при многопоточной работе в некоторых потоках результат был непредвиденный из-за того, что буфер обмена - один. И соответственно он использовался в нескольких потоках и где-то даже из-за этого потоки отваливались в самый ответственный момент. Поэтому модифицировал его блокировкой и с сохранением предыдущего буфера в переменную и возвращением его обратно.

Выкладываю его дабы спецы по C# сказали правильно ли он работает - смущает то, что я не знаю как работает lock(SyncObject), блокирует ли он все остальные потоки зенки или работает как-то по-другому?

Код:
lock(SyncObject)
{
    String previous_text = null;
    previous_text = System.Windows.Forms.Clipboard.GetText();
 
    var descr = project.Variables["content"].Value;
    System.Windows.Forms.Clipboard.SetText(descr);
    instance.ActiveTab.KeyEvent("v","press","ctrl");
    System.Windows.Forms.Clipboard.Clear();
 
    System.Windows.Forms.Clipboard.SetText(previous_text);
}
lock (SyncObjects.InputSyncer)
 
Последнее редактирование:

Lord_Alfred

Client
Регистрация
09.10.2015
Сообщения
3 916
Благодарностей
3 866
Баллы
113

ezotonal

Client
Регистрация
13.01.2014
Сообщения
819
Благодарностей
231
Баллы
43

ezotonal

Client
Регистрация
13.01.2014
Сообщения
819
Благодарностей
231
Баллы
43

lzlmrf

Client
Регистрация
14.08.2015
Сообщения
488
Благодарностей
149
Баллы
43
у меня этот снипет тупит в многопотоке( и не могу понять причину..иногда нормально вставляет, иногда курочит смайлы в вопросики , иногда выходит по красной ветке но при этом постит а иногда выходит по зеленой - но и не постит
Пробывал на всех версиях..в 1 поток работает. как добавляю - 3,5 - начинается тупняки. Текст большой вставляется (простынь кеев)
 

Lord_Alfred

Client
Регистрация
09.10.2015
Сообщения
3 916
Благодарностей
3 866
Баллы
113
у меня этот снипет тупит в многопотоке( и не могу понять причину..иногда нормально вставляет, иногда курочит смайлы в вопросики , иногда выходит по красной ветке но при этом постит а иногда выходит по зеленой - но и не постит
Пробывал на всех версиях..в 1 поток работает. как добавляю - 3,5 - начинается тупняки. Текст большой вставляется (простынь кеев)
Пробовал многопоточный вариант, который я как-то выкладывал?
 

lzlmrf

Client
Регистрация
14.08.2015
Сообщения
488
Благодарностей
149
Баллы
43

master-84

Пользователь
Регистрация
20.07.2014
Сообщения
36
Благодарностей
2
Баллы
8
подскажите пожалуйста сниппет. как взять текст из переменной и вставить его в инстанс через ctr+v ? что б он не печатался а именно вставился через ctr+v
 

Roman*

Client
Регистрация
25.09.2013
Сообщения
1 657
Благодарностей
656
Баллы
113
подскажите пожалуйста сниппет. как взять текст из переменной и вставить его в инстанс через ctr+v ? что б он не печатался а именно вставился через ctr+v
Чем не подходит тот сниппет для вставки, который в первом посте? В text переменную,кладешь, что надо и пуляешь.
 

master-84

Пользователь
Регистрация
20.07.2014
Сообщения
36
Благодарностей
2
Баллы
8
Все подходит разобрался Большое Спасибо! Очень давно искал ето действие?
 

novichok

Client
Регистрация
17.04.2016
Сообщения
173
Благодарностей
63
Баллы
28
Спасибо, очень пригодилось!, удалось решить один затуп
 
  • Спасибо
Реакции: Roman*

novichok

Client
Регистрация
17.04.2016
Сообщения
173
Благодарностей
63
Баллы
28
Ребят подскажите как найти на странице нужный текст из переменной, выделить его и вставить другой из переменной.
т.е. поиск и замена на странице.
 

Delvig

Client
Регистрация
07.09.2016
Сообщения
132
Благодарностей
131
Баллы
43
Ребят подскажите как найти на странице нужный текст из переменной, выделить его и вставить другой из переменной.
т.е. поиск и замена на странице.
Выделить все и скопировать в переменную, произвести манипуляции по замене, вставить обратно отредактированный текст.
 

Fedor5588

Client
Регистрация
04.06.2017
Сообщения
313
Благодарностей
73
Баллы
28
Встретился неудобный редактор HTML, с которого не взять полное значение элемента, так что выложу код на C#, которые выделяет, копирует, вставляет (Ctrl+A)(Ctrl+C)(Ctrl+V), думаю в хозяйстве пригодится.
Выделить, копировать, положить в переменную

в многопотоке норм работает?

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

Roman*

Client
Регистрация
25.09.2013
Сообщения
1 657
Благодарностей
656
Баллы
113
в многопотоке норм работает?

у меня снипет от дона шампиньона не всегда норм отрабатывает, у меня одновременно работает куча парсеров и постеров, так иногда наблюдаю, что на одном паблике текст разместился, который предназначен для другого паблика, и затуп именно в буфере обмена, а еще не всегда этому сниппету удается вернуть предыдущее состояние буфера и выходит с ошибкой.
Писали, что буфер один и могут быть глюки, я не проверял.
 
  • Спасибо
Реакции: Fedor5588

Rimen

Client
Регистрация
28.10.2019
Сообщения
406
Благодарностей
253
Баллы
63
После обновы 5.42.0.0. операции с доставанием данных из переменной в буфер перестали работать :(
 

Mikhail B.

Client
Регистрация
23.12.2014
Сообщения
14 427
Благодарностей
5 453
Баллы
113
  • Спасибо
Реакции: Sergodjan и Rimen

vasyaya

Client
Регистрация
09.02.2015
Сообщения
555
Благодарностей
35
Баллы
28
Встретился неудобный редактор HTML, с которого не взять полное значение элемента, так что выложу код на C#, которые выделяет, копирует, вставляет (Ctrl+A)(Ctrl+C)(Ctrl+V), думаю в хозяйстве пригодится.
Выделить, копировать, положить в переменную
Код:
instance.ActiveTab.KeyEvent("a","press","ctrl");//выделяем текст
instance.ActiveTab.KeyEvent("c","press","ctrl");//копируем текст в буфер
project.Variables["text"].Value = System.Windows.Forms.Clipboard.GetText();//кладем текст в переменную text
Вставить
Код:
var textcr = project.Variables["text"].Value;
System.Windows.Forms.Clipboard.SetText(textcr);
instance.ActiveTab.KeyEvent("v","press","ctrl");//вставить текст из переменной
А то ведь это самое популярное, чего нет в зенопостере -
выделить Ctrl+a, копировать Ctrl+c, вставить Ctrl+v .
Уууууууу :ay: Супер полезно! Спасибо, выручил!
 

Sergey2580

Новичок
Регистрация
12.09.2021
Сообщения
7
Благодарностей
0
Баллы
1
Встретился неудобный редактор HTML, с которого не взять полное значение элемента, так что выложу код на C#, которые выделяет, копирует, вставляет (Ctrl+A)(Ctrl+C)(Ctrl+V), думаю в хозяйстве пригодится.
Выделить, копировать, положить в переменную
Код:
instance.ActiveTab.KeyEvent("a","press","ctrl");//выделяем текст
instance.ActiveTab.KeyEvent("c","press","ctrl");//копируем текст в буфер
project.Variables["text"].Value = System.Windows.Forms.Clipboard.GetText();//кладем текст в переменную text
Вставить
Код:
var textcr = project.Variables["text"].Value;
System.Windows.Forms.Clipboard.SetText(textcr);
instance.ActiveTab.KeyEvent("v","press","ctrl");//вставить текст из переменной
А то ведь это самое популярное, чего нет в зенопостере -
выделить Ctrl+a, копировать Ctrl+c, вставить Ctrl+v .
приветствую только начал заниматься zp я не прогер, можете подсказать как это реализовать а то тыкаю и не получается ничего. Создаем кубик C# вставляем код, а дальше что и как
 

Roman*

Client
Регистрация
25.09.2013
Сообщения
1 657
Благодарностей
656
Баллы
113
приветствую только начал заниматься zp я не прогер, можете подсказать как это реализовать а то тыкаю и не получается ничего. Создаем кубик C# вставляем код, а дальше что и как
Первый кубик сишарпа копирует текст, а второй вставляет из буфера, курсор вроде должен стоять в начале текста.
 

Sergey2580

Новичок
Регистрация
12.09.2021
Сообщения
7
Благодарностей
0
Баллы
1
Способ получился, но в моем случае получается БАГ и вставленный текст не засчитывается и зависает, тоесть дальше моя форма не пускает меня потому что он как будто не видит текст. Можно ли с вами как то связаться и вы посмотрите проект, очень нужно чтоб работало а все не получается почему то(

 

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