Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.68/103: Рейтинг темы: голосов - 103, средняя оценка - 4.68
4 / 4 / 1
Регистрация: 13.11.2011
Сообщений: 168
1

Как можно в консоль вставлять с помощью Ctrl + V

20.01.2012, 22:08. Показов 20255. Ответов 20
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
а как можно в консоль вставлять с помощью Ctrl + V когда вставляю пишет ^V...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.01.2012, 22:08
Ответы с готовыми решениями:

Как вставлять в Entry с помощью Ctrl+V?
Как вставлять в Entry с помощью Ctrl+V? a = Entry(textvariable="a").place(x=85,y=85)

С помощью чего можно вставлять в проект другие программы (bat файлы, приложения, формы)?
Спасибо! еще пару вопросов: 1. с помощью чего можно вставлять в delphi другие программы (bat...

Как вставлять текст в консоль из буфера обмена?
При нажатии привычного для windows ctrl+v вставляется соответствующий символ, еще попробовал...

Копирую, но не могу вставить ни с помощью мыши ни с помощью CTRL+V
у меня вот такая проблема копирую но не могу вставить ни с помощью мыши ни с помощью CTRL+V ни где...

20
87 / 73 / 6
Регистрация: 11.09.2011
Сообщений: 118
20.01.2012, 22:40 2
ПКМ->Вставить
0
4 / 4 / 1
Регистрация: 13.11.2011
Сообщений: 168
20.01.2012, 22:47  [ТС] 3
нет, даже не нажиматься
0
87 / 73 / 6
Регистрация: 11.09.2011
Сообщений: 118
20.01.2012, 22:58 4
В консоль (cmd.exe) или консольное приложение?
0
4 / 4 / 1
Регистрация: 13.11.2011
Сообщений: 168
20.01.2012, 23:05  [ТС] 5
консольное приложение, прошу прощение что сразу не указал...
0
80 / 78 / 10
Регистрация: 29.12.2011
Сообщений: 183
21.01.2012, 23:43 6
Цитата Сообщение от Niades Посмотреть сообщение
В консоль (cmd.exe) или консольное приложение?
А какая собственно разница? И там и там тест из буфера обмена можно вставить простым кликом правой кнопкой мыши в окне консоли. Главное чтобы текст был в буфере обмена и консоль ждала ввода данных
C#
1
Console.ReadLine()
вот и все.
0
87 / 73 / 6
Регистрация: 11.09.2011
Сообщений: 118
22.01.2012, 00:07 7
Цитата Сообщение от ibmpc Посмотреть сообщение
А какая собственно разница? И там и там тест из буфера обмена можно вставить простым кликом правой кнопкой мыши в окне консоли. Главное чтобы текст был в буфере обмена и консоль ждала ввода данных
C#
1
Console.ReadLine()
вот и все.
Не работает же.
0
4 / 4 / 1
Регистрация: 13.11.2011
Сообщений: 168
22.01.2012, 00:18  [ТС] 8
не работает даже ПКМ не вызывает меню...
0
80 / 78 / 10
Регистрация: 29.12.2011
Сообщений: 183
22.01.2012, 00:47 9
Цитата Сообщение от Intestyx Посмотреть сообщение
не работает даже ПКМ не вызывает меню...
Меню не должно появляться.
Цитата Сообщение от Niades Посмотреть сообщение
Не работает же.
Настраивается так: запускаем любую консоль cmd.exe в панели задач ПКМ > Свойства > Общие > Ставим галочки (Быстрая вставка) > Сохраняем для всех окон (Изменить свойства всех)
Забыл что давно уже все это настроил. Самому интересно как программно это настроить в run time на чистой ОС? Свойства в реестре? А если для одного окна?
0
4 / 4 / 1
Регистрация: 13.11.2011
Сообщений: 168
22.01.2012, 00:50  [ТС] 10
Значит я особенный... Написал программу где нужно было ввести значение, я его копиру с блокнота вставляю с помощью ctrl + v пишет ^V а кнопка вообще не нажимаеться...
0
80 / 78 / 10
Регистрация: 29.12.2011
Сообщений: 183
22.01.2012, 01:18 11
Цитата Сообщение от Intestyx Посмотреть сообщение
Значит я особенный... Написал программу где нужно было ввести значение, я его копиру с блокнота вставляю с помощью ctrl + v пишет ^V а кнопка вообще не нажимаеться...
Вы пытаетесь передать в окно консоли сочетание клавиш, которое оно не обрабатывает. Для "стандартной" реакции нужен обработчик по умолчанию. В консоли такой существует только для Ctrl+C. Это кстати единственно событие доступное в классе Console. К нему даже можно добавить свой обработчик.
1
4 / 4 / 1
Регистрация: 13.11.2011
Сообщений: 168
22.01.2012, 01:24  [ТС] 12
Понятно, а как добавить обработчик??
0
80 / 78 / 10
Регистрация: 29.12.2011
Сообщений: 183
22.01.2012, 13:46 13
Добавление обработчика событию класса Console Ctrl+C
C#
1
2
3
4
5
6
7
8
9
10
//добавляем обработчик события используя лябда выражение
            Console.CancelKeyPress += new ConsoleCancelEventHandler((object obj,ConsoleCancelEventArgs ConArg ) => 
            {
                Console.WriteLine("!!!!!!!!!!!!!!!!!!!!!!!!!");
                ConArg.Cancel = true;// событие нами обработано
                
            });
            //вечный цикл
            while (true)
            {  }

Нужно понимать технологию работы всего этого по сути тут ничего сложного нет. И в случае понимания есть такая фишка обработчик можно добавить к событию. Чтобы обработать Ctrl+V с таким подходом понадобиться событие. Для добавления события от Console классы наследовать по моему нельзя насколько я помню. Исходники ясно дело недоступны.

Для простейшего отлова Ctrl+V в консольном приложении можно поступить так:
В месте программы, где ожидается ввод в отдельном потоке (или прямо там) читаем символы из потока ввода. Причем так чтобы символы там оставались.
Если встречаем последовательность ^V тут же извлекаем текст имеющийся в буфере обмена ОС. Про то как работать с буфером обмена google подскажет. Но прежде чем с буфером обмена работать нужно протестировать схему без оного, хотя бы выводить что-нибудь в консоль при нажатии Ctrl+V. Ну и конечно нужно избежать появления символов ^V на экране (или сгладить этот момент быстрым удалением).
P.S. Это только идея.

Есть другая идея. Консольное приложение можно собрать как WinForms сменив target в свойствах проекта. Получим полноценное окно, с которым можно будет реализовать обработку Ctrl+V на более высоком уровне, более профессионально. Само приложение при смене target внешне не измениться.
1
19 / 17 / 5
Регистрация: 06.09.2011
Сообщений: 51
22.01.2012, 15:24 14
как вариант, обработать ввод как раз вот этого "^V" и вставить текст из буфера обмена
C#
1
2
3
4
5
if (Console.ReadLine() == "^V")
{
IDataObject iData = Clipboard.GetDataObject();
string s = (String)iData.GetData(DataFormats.Text);
}

Не по теме:

сорри, не заметил, что уже есть такой вариант :)

1
80 / 78 / 10
Регистрация: 29.12.2011
Сообщений: 183
22.01.2012, 16:49 15
Цитата Сообщение от hotkey Посмотреть сообщение
if (Console.ReadLine() == "^V")
Этот вариант не кошерен, так как требует завершения ввода (Enter), что собственно ну совсем некрасиво. Это же должно быть сочетание клавиш при котором прозрачно для пользователя из буфера обмена вынимаются данные. Так что сам способ получения "^V" я бы сменил и попытался вынимать из потока ввода консоли Console.In символы в отдельном потоке приложения.
1
Быдлокодер
512 / 298 / 85
Регистрация: 22.11.2009
Сообщений: 892
01.04.2012, 20:02 16
Извините за некропостинг, но вдруг кому окажется полезным - обработчик
C#
1
if (Console.ReadLine() == "^V")
никогда не сработает, потому что при нажатии Ctrl+V вовсе не считывается данная комбинация клавиш.
0
0 / 0 / 0
Регистрация: 08.04.2012
Сообщений: 4
05.12.2013, 20:47 17
а shift+insert разве не работает?
0
Master of Orion
Эксперт .NET
6098 / 4954 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
05.12.2013, 21:00 18
Как вариант:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
using System;
using System.Windows.Forms;
 
namespace ConsoleInsert
{
    class Program
    {
        [STAThread]
        static void Main()
        {
            for (;;)
            {
                var k = Console.ReadKey(true);
                if (k.Key == ConsoleKey.V && k.Modifiers == ConsoleModifiers.Control)
                {
                    string text = Clipboard.GetText();
                    Console.WriteLine(text);
                }
                else 
                    Console.Write(k.KeyChar);
            }
        }
    }
}
1
46 / 46 / 12
Регистрация: 03.08.2012
Сообщений: 215
06.12.2013, 12:43 19
Если щелкнуть по иконке приложения (левый верхний угол), то появится менюшка, а там изменить => вставить.
0
Master of Orion
Эксперт .NET
6098 / 4954 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
06.12.2013, 12:45 20
dood,
а как можно в консоль вставлять с помощью Ctrl + V
0
06.12.2013, 12:45
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.12.2013, 12:45
Помогаю со студенческими работами здесь

Как отловить нажатие ctrl+v ctrl+c ctrl+x key_Press
Как правильно отловить нажатие ctrl+v ctrl+c ctrl+x в событии key_Press? я пробую так: private...

Можно ли код, написанный на asp вставлять в aspx и как?
Скажите кто - нибудь. Можно ли код, написанный на asp вставлять в aspx и как.

Как в Ubuntu 10.04 сменить переключение на русский/английский язык с помощью Shift+Ctrl?
Как в Ubuntu 10.04 сменить переключение на русский/английский язык с помощью Shift+Ctrl? А то я не...

Как вытащить из документа таблицу, чтобы её можно было вставлять в другие документы?
как вытащить из документа таблицу чтобы её можно было вставлять в другие документы,... таблицу...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru