Отправка сообщений ctrl + v,с помощью C#

Nikita54332

Client
Регистрация
06.09.2022
Сообщения
9
Благодарностей
6
Баллы
3
Всем доброго вечера, столкнулся с проблемой,нужно быстро отправить сообщения,перебрал много вариантов,пришёл к выводу,что всё можно сделать через код c#.Можете помочь с кодом,что-бы он отправлял нужное моё сообщение и быстро вставлял его в поле ввода
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 789
Благодарностей
5 721
Баллы
113

Nikita54332

Client
Регистрация
06.09.2022
Сообщения
9
Благодарностей
6
Баллы
3
Можете сказать как именно это можно реализовать
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 789
Благодарностей
5 721
Баллы
113
Можете сказать как именно это можно реализовать
сначала надо изучить справку

104790



потом использовать то что на скрине у меня.

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

kagorec

Client
Регистрация
24.08.2013
Сообщения
994
Благодарностей
540
Баллы
93
По возможности избегайте использование работы буффером обмена в зенно. Данные будут перехватываться и результаты вас не обрадуют особенно если на рабочем\домашнем пк такие шаблоны будут работать. Данные перехватывать могут иногда которые вы копировали работая в другой программе. Не решает проблему блокировки (на форуме был где то снипет C# с локом стека)
 

Sherminator

Client
Регистрация
10.09.2021
Сообщения
1 302
Благодарностей
702
Баллы
113
Я вот с форума вот такую конструкцию использую
C#:
                lock (LockList)
                {
                    string previous_text = null;
                    previous_text = Clipboard.GetText();
                    Clipboard.SetText("Текст который поместится в буфер обмена");
                    instance.ActiveTab.KeyEvent("v", "press", "ctrl");
                    Clipboard.Clear();
                    if (string.IsNullOrEmpty(previous_text))
                    {
                        previous_text = "1";
                    }
                    Clipboard.SetText(previous_text);
                }
Тут получается если у тебя в буфере обмена уже есть какой то текст, он сохраняется, затем в буфер помещается требуемый тебе текст, происходит вставка и затем в буфер обратно возвращается тот текст который там был
 
  • Спасибо
Реакции: kagorec

kagorec

Client
Регистрация
24.08.2013
Сообщения
994
Благодарностей
540
Баллы
93
C#:
string str = project.Variables["Text"].Value;
string[] split = str.Split(new string[] { @"\r\n" }, StringSplitOptions.RemoveEmptyEntries);
 
lock (SyncObjects.InputSyncer) {
    // Сохраняем предыдущее состояние буфера
    string previous_text = System.Windows.Forms.Clipboard.GetText();
    // Сохраняем нужный текст в буфер и вставляем его (программно делаем CTRL+V)
    for (int i = 0; i < split.Count(); i++) {
        System.Windows.Forms.Clipboard.SetText(split[i]);
        instance.ActiveTab.KeyEvent("v", "press", "ctrl");
        if (i < split.Count() - 1)
            instance.SendText("{ENTER}", 1);
    }
    // Очищаем буфер и возвращаем его к первоначальному состоянию
    System.Windows.Forms.Clipboard.Clear();
    System.Windows.Forms.Clipboard.SetText(previous_text);
}
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 789
Благодарностей
5 721
Баллы
113
зря вы накидываете код... очень зря

вставлю и свои 5 копеек.
во первых, таким образом затирается весь буфер обмена, а восстанавливается только текстовая часть. Если в буфере будет html код или картинка, то это затрется.
во вторых, ну не предназначен буфер для дрюкания в многопотоке и все тут. кто не видел, можете ознакомиться. :bk:
 

Sherminator

Client
Регистрация
10.09.2021
Сообщения
1 302
Благодарностей
702
Баллы
113
зря вы накидываете код... очень зря

вставлю и свои 5 копеек.
во первых, таким образом затирается весь буфер обмена, а восстанавливается только текстовая часть. Если в буфере будет html код или картинка, то это затрется.
во вторых, ну не предназначен буфер для дрюкания в многопотоке и все тут. кто не видел, можете ознакомиться. :bk:
А какие еще варики? В моем случае на пример это единственный вариант вставить эмодзи в текст, т.к зенка это сделать не в состоянии
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 789
Благодарностей
5 721
Баллы
113
А какие еще варики? В моем случае на пример это единственный вариант вставить эмодзи в текст, т.к зенка это сделать не в состоянии
недавно вроде про эмодзи обсуждали... есть варианты вставить. у меня запросто из кода C# вставлялся, обычным копированием из нотепада++
 

Sherminator

Client
Регистрация
10.09.2021
Сообщения
1 302
Благодарностей
702
Баллы
113
недавно вроде про эмодзи обсуждали... есть варианты вставить. у меня запросто из кода C# вставлялся, обычным копированием из нотепада++
Ну вот на cef все работает, а на хромиуме когда в наборе текста попадается эмодзи, он его не вставляет, так еще и на весь текст который дальше идет болт кладет
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 789
Благодарностей
5 721
Баллы
113
Ну вот на cef все работает, а на хромиуме когда в наборе текста попадается эмодзи, он его не вставляет, так еще и на весь текст который дальше идет болт кладет
так Хромиум же хромой на все копыта... не зря же с него не убрали до сих пор ярлык, БЕТКА... :bk:
на нем и с графикой работать невозможно. только и подходит, что делать клики через события.

Поэтому, все претензии к разработчикам движка. я вот кучу багов создал по работе с графикой, так и висят уже больше года в нерешенных багах.
А где баг по вставке эмодзи на Хромиуме ? нету ? ну значит у разработчиков все хорошо, никто же не жалуется ;-)
 

Sherminator

Client
Регистрация
10.09.2021
Сообщения
1 302
Благодарностей
702
Баллы
113
так Хромиум же хромой на все копыта... не зря же с него не убрали до сих пор ярлык, БЕТКА... :bk:
на нем и с графикой работать невозможно. только и подходит, что делать клики через события.

Поэтому, все претензии к разработчикам движка. я вот кучу багов создал по работе с графикой, так и висят уже больше года в нерешенных багах.
А где баг по вставке эмодзи на Хромиуме ? нету ? ну значит у разработчиков все хорошо, никто же не жалуется ;-)
Был бы толк с этих репортов)
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 789
Благодарностей
5 721
Баллы
113
Был бы толк с этих репортов)
раньше, можно было бы настоять. но сейчас в 7-ке уже не будут ничего делать. и так половину команды сняли на 8-ку.
так что остается только надеяться на выход 8-ки... и что там будет меньше проблем с технической стороны. типа вставить смайлик или попасть фул эмуляцией в элемент :bk:
 

Dmitriy Ka

Client
Регистрация
03.05.2016
Сообщения
774
Благодарностей
517
Баллы
93
Всем доброго вечера, столкнулся с проблемой,нужно быстро отправить сообщения,перебрал много вариантов,пришёл к выводу,что всё можно сделать через код c#.Можете помочь с кодом,что-бы он отправлял нужное моё сообщение и быстро вставлял его в поле ввода
Можно поподробней описать задачу, скорей всего это можно сделать без ctrl c-v. Кладем данные в переменную и работаем с этой переменной, куда надо отправляем, куда надо вставляем. В поле ввода его можно вставить через метод SetValue();
SetValue
 

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