Для продолжения нажмите любую клавишу c как сделать
Перейти к содержимому

Для продолжения нажмите любую клавишу c как сделать

  • автор:

Создание и запуск проекта консольного приложения C++

Вы создали проект консольного приложения C++ и ввели код. Теперь вы можете выполнить сборку приложения и запустить его в Visual Studio. Затем запустите его как автономное приложение из командной строки.

Необходимые компоненты

  • Установите и запустите на своем компьютере Visual Studio с рабочей нагрузкой Разработка классических приложений на C++. Если установка еще не выполнена, следуйте инструкциям в статье Установка поддержки C++ в Visual Studio.
  • Создайте проект Hello, World!» По умолчанию он содержит код для печати Hello World! . Если вы еще не сделали этого, выполните действия, описанные в разделе Создание проекта консольного приложения С++.

Если Visual Studio выглядит следующим образом, можно приступать к сборке и запуску приложения:

Screenshot of Visual Studio showing the Hello World source code in the editor.

Сборка и запуск кода в Visual Studio

  1. Для сборки проекта выберите в меню Сборка пункт Собрать решение. Окно Вывод отображает результаты процесса сборки.
  2. Чтобы запустить этот код, в строке меню выберите Отладка и Запуск без отладки. Открывается окно консоли, и запускается ваше приложение. При запуске консольного приложения в Visual Studio система выполняет код, а затем выводит сообщение «Нажмите любую клавишу, чтобы продолжить. . .», чтобы вы могли просмотреть выходные данные.

Поздравляем! Вы создали свое первое консольное приложение «Hello, world!» в Visual Studio! Нажмите любую клавишу, чтобы закрыть окно консоли и вернуться в редактор Visual Studio.

Выполнение кода в командном окне

Обычно консольные приложения запускаются из командной строки, а не в Visual Studio. После создания приложения Visual Studio его можно запустить из командного окна. Вот как можно найти и запустить новое приложение в окне командной строки.

  1. В обозревателе решений выберите решение HelloWorld (а не проект HelloWorld) и щелкните правой кнопкой мыши, чтобы открыть контекстное меню. Выберите Открыть папку в проводнике, чтобы открыть окно проводника в папке решения HelloWorld.
  1. В окне проводник откройте папку Debug . Эта папка содержит файлы приложения HelloWorld.exe и отладки. Удерживайте клавишу SHIFT и щелкните правой кнопкой мыши HelloWorld.exe , чтобы открыть контекстное меню. Выберите команду Копировать как путь, чтобы скопировать путь к приложению в буфер обмена.
  1. В окне проводник откройте x64 папку и затем папку Debug . Эта папка содержит файлы приложения HelloWorld.exe и отладки. Удерживайте клавишу SHIFT и щелкните правой кнопкой мыши HelloWorld.exe , чтобы открыть контекстное меню. Выберите команду Копировать как путь, чтобы скопировать путь к приложению в буфер обмена.
  1. Чтобы открыть окно командной строки, нажмите Windows + R, чтобы открыть диалоговое окно Выполнить. Введите cmd.exe в текстовом поле Открыть, а затем выберите ОК для запуска окна командной строки.
  2. В окне командной строки щелкните правой кнопкой мыши, чтобы вставить путь к приложению в командную строку. Нажмите клавишу ВВОД, чтобы запустить приложение.

Поздравляем! Вы создали и запустили консольное приложение в Visual Studio.

Дальнейшие действия

После создания и запуска этого простого приложения можно приступать к более сложным проектам. Дополнительные сведения см. в разделе Использование интегрированной среды разработки Visual Studio для разработки приложений для настольных систем на языке C++. В нем содержатся более подробные пошаговые руководства, посвященные возможностям Microsoft C++ в Visual Studio.

Руководство по устранению неполадок

Здесь приведены решения распространенных проблем, которые могут возникнуть при создании первого проекта C++.

Сборка и запуск кода в Visual Studio: проблемы

Если в редакторе исходного кода отображаются красные волнистые линии, то сборка может содержать ошибки или предупреждения. Убедитесь, что код соответствует примеру в написании, пунктуации и регистре.

Выполнение кода в командном окне: проблемы

Если путь, показанный в проводник заканчивается \HelloWorld\HelloWorld , вы открыли проект HelloWorld вместо решения HelloWorld. Вы будете путать папку Debug , которая не содержит ваше приложение. Перейдите на уровень вверх в проводнике, чтобы открыть папку решения — первый HelloWorld в пути. Эта папка также содержит папку Debug , и вы найдете там свое приложение.

Вы также можете перейти в папку решения Debug в командной строке, чтобы запустить приложение. Приложение не будет запускаться из других каталогов, если не указан путь к приложению. Однако вы можете скопировать приложение в другой каталог и запустить его из него. Его также можно скопировать в каталог, указанный PATH переменной среды, а затем запустить его из любого места.

Если путь, показанный в проводник заканчивается \HelloWorld\HelloWorld , вы открыли проект HelloWorld вместо решения HelloWorld. Вы будете путать папку x64\Debug , которая не содержит ваше приложение. Перейдите на уровень в проводник, чтобы перейти к папке решения, первой HelloWorld в пути. Эта папка также содержит папку x64\Debug , и вы найдете там свое приложение.

Вы также можете перейти в папку решения x64\Debug в командной строке, чтобы запустить приложение. Приложение не будет запускаться из других каталогов, если не указан путь к приложению. Однако вы можете скопировать приложение в другой каталог и запустить его из него. Его также можно скопировать в каталог, указанный PATH переменной среды, а затем запустить его из любого места.

Если в контекстном меню отсутствует параметр Копировать как путь, закройте меню, а затем удерживайте нажатой клавишу SHIFT при повторном открытии. Эта команда предназначена только для удобства. Можно также скопировать путь к папке из панели поиска проводника и вставить его в диалоговое окно Выполнить, а затем ввести имя исполняемого файла в конце. При этом потребуется чуть больше действий по вводу текста, но результат будет тем же.

Обратная связь

Были ли сведения на этой странице полезными?

Для продолжения нажмите любую клавишу c как сделать

Регистрация: 20.05.2011

Сообщений: 6

Для продолжения нажмите любую клавишу

После компиляции программы выводится программное окно, где написанно «Для продолжения нажмите любую клавишу . . .» Как я понимаю, я банально не ввел getch, но вот не знаю где. Сама программа написана правильно, собственно код:

#include #include #include int main() < return 0; >class vector < double x,y,z; public: vector(double vX=0, float vY=0, float vZ=0) < x=vX; y=vY; z=vZ; >// конструктор ~vector () <>; friend vector operator+(vector a, vector b); //сложение векторов friend vector operator-(vector a, vector b); //вычитание векторов friend vector operator*(vector a, double scalar); //умножение вектора на скаляр friend double operator*(vector a, vector b); //скалярное произведение векторов friend vector operator%(vector a, vector b); //векторное произведение векторов friend double abs(vector a); //модуль вектора >; vector operator+(vector a, vector b) < vector temp; temp.x = a.x + b.x; temp.y = a.y + b.y; temp.z = a.z + b.z; return temp; >vector operator-(vector a, vector b) < vector temp; temp.x = a.x - b.x; temp.y = a.y - b.y; temp.z = a.z - b.z; return temp; >vector operator*(vector a, double scalar) < vector temp; temp.x = a.x * scalar; temp.y = a.y * scalar; temp.z = a.z * scalar; return temp; >double operator*(vector a, vector b) < return a.x*b.x + a.y*b.y + a.z*b.z; >vector operator%(vector a, vector b) < vector Ox(1,0,0), Oy(0,1,0), Oz(0,0,1); return Ox*(a.y*b.z - a.z*b.y) + Oy*(a.z*b.x - a.x*b.z) + Oz*(a.x*b.y - a.y*b.x); >double abs(vector a)

Для продолжения нажмите любую клавишу c как сделать

Программисты!Подскажите пожалуйста, как убрать в консоли, в Visual Studio 2005, в конце программы фразу «Для продолжения нажмите любую клавишу»,которая вылазит после нажатия клавиши ENTER,я пробывал вконце прописать cin.get(); , эта фраза исчезает при выводе, но при нажатии на энтер, всё равно появляется. Не скажите как избавится от этой фразы. Зараннее благодарю.

Software Engineer
Участник клуба
Регистрация: 07.04.2007
Сообщений: 1,618

Эта фраза появляется только если вы запускаете программу из среды в режиме отладки. Когда вы ее скомпилируете и запустите в режиме релиза — этой надписи не будет

Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
убрать пробелы zetrix Microsoft Office Excel 9 10.03.2009 10:03
Убрать баннер _Dmitry JavaScript, Ajax 3 07.11.2008 00:01
Убрать HTML JRcoker JavaScript, Ajax 10 29.09.2008 20:21
Убрать значки masterprog Помощь студентам 2 28.12.2007 19:47
Убрать из uses Маркъ Общие вопросы Delphi 3 03.02.2007 11:44

Console. Read Key Метод

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

Получает следующий нажатый пользователем символ или функциональную клавишу.

Перегрузки

Получает следующий нажатый пользователем символ или функциональную клавишу. Нажатая клавиша отображается в окне консоли.

Получает следующий нажатый пользователем символ или функциональную клавишу. Нажатая клавиша может быть отображена в окне консоли.

ReadKey()

Получает следующий нажатый пользователем символ или функциональную клавишу. Нажатая клавиша отображается в окне консоли.

public: static ConsoleKeyInfo ReadKey();
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")] public static ConsoleKeyInfo ReadKey ();
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")] [System.Runtime.Versioning.UnsupportedOSPlatform("android")] [System.Runtime.Versioning.UnsupportedOSPlatform("ios")] [System.Runtime.Versioning.UnsupportedOSPlatform("tvos")] public static ConsoleKeyInfo ReadKey ();
public static ConsoleKeyInfo ReadKey ();
[] static member ReadKey : unit -> ConsoleKeyInfo
[] [] [] [] static member ReadKey : unit -> ConsoleKeyInfo
static member ReadKey : unit -> ConsoleKeyInfo
Public Shared Function ReadKey () As ConsoleKeyInfo
Возвращаемое значение

Объект, описывающий константу ConsoleKey и символ Юникода (при наличии), соответствующий нажатой клавише консоли. Этот объект ConsoleKeyInfo также описывает в битовой комбинации значений ConsoleModifiers, нажимались ли клавиши-модификаторы (одна или несколько) Shift, Alt или Ctrl одновременно с клавишей консоли.

Исключения

Свойство In перенаправлено из потока, отличного от консоли.

Примеры

Одним из наиболее распространенных способов ReadKey() использования метода является остановка выполнения программы до тех пор, пока пользователь не нажмет клавишу и приложение не завершит работу или не отобразит дополнительное окно с информацией. В следующем примере метод используется ReadKey() для ожидания нажатия пользователем клавиши ВВОД перед завершением приложения.

using System; public class Example < public static void Main() < DateTime dat = DateTime.Now; Console.WriteLine("The time: at ", dat); TimeZoneInfo tz = TimeZoneInfo.Local; Console.WriteLine("The time zone: \n", tz.IsDaylightSavingTime(dat) ? tz.DaylightName : tz.StandardName); Console.Write("Press to exit. "); while (Console.ReadKey().Key != ConsoleKey.Enter) <> > > // The example displays output like the following: // The time: 11/11/2015 at 4:02 PM: // The time zone: Pacific Standard Time 
open System let dat = DateTime.Now printfn $"The time: at " let tz = TimeZoneInfo.Local printfn $"The time zone: \n" printf"Press to exit. " while Console.ReadKey().Key <> ConsoleKey.Enter do () // The example displays output like the following: // The time: 12/28/2021 at 8:35 PM // The time zone: Pacific Standard Time 
Module Example Public Sub Main() Dim dat As Date = Date.Now Console.WriteLine("The time: at ", dat) Dim tz As TimeZoneInfo = TimeZoneInfo.Local Console.WriteLine("The time zone: ", If(tz.IsDaylightSavingTime(dat), tz.DaylightName, tz.StandardName)) Console.WriteLine() Console.Write("Press to exit. ") Do While Console.ReadKey().Key <> ConsoleKey.Enter Loop End Sub End Module ' The example displays the following output: ' The time: 11/11/2015 at 4:02 PM ' The time zone: Pacific Standard Time 

Обратите внимание, что эта перегрузка ReadKey метода по умолчанию повторяет все отображаемые клавиши, нажимаемые пользователем в консоли. Чтобы подавить их, вызовите ReadKey метод с аргументом true intercept .

В следующем примере метод используется для ReadKey() отображения сведений о нажатой пользователем клавише.

using namespace System; void main() < ConsoleKeyInfo cki; // Prevent example from ending if CTL+C is pressed. Console::TreatControlCAsInput = true; Console::WriteLine("Press any combination of CTL, ALT, and SHIFT, and a console key."); Console::WriteLine("Press the Escape (Esc) key to quit: \n"); do < cki = Console::ReadKey(); Console::Write(" --- You pressed "); if((cki.Modifiers & ConsoleModifiers::Alt) != ConsoleModifiers()) Console::Write("ALT+"); if((cki.Modifiers & ConsoleModifiers::Shift) != ConsoleModifiers()) Console::Write("SHIFT+"); if((cki.Modifiers & ConsoleModifiers::Control) != ConsoleModifiers()) Console::Write("CTL+"); Console::WriteLine(cki.Key.ToString()); >while (cki.Key != ConsoleKey::Escape); > // This example displays output similar to the following: // Press any combination of CTL, ALT, and SHIFT, and a console key. // Press the Escape (Esc) key to quit: // // a --- You pressed A // k --- You pressed ALT+K // ► --- You pressed CTL+P // --- You pressed RightArrow // R --- You pressed SHIFT+R // --- You pressed CTL+I // j --- You pressed ALT+J // O --- You pressed SHIFT+O // § --- You pressed CTL+U > 
using System; class Example < public static void Main() < ConsoleKeyInfo cki; // Prevent example from ending if CTL+C is pressed. Console.TreatControlCAsInput = true; Console.WriteLine("Press any combination of CTL, ALT, and SHIFT, and a console key."); Console.WriteLine("Press the Escape (Esc) key to quit: \n"); do < cki = Console.ReadKey(); Console.Write(" --- You pressed "); if((cki.Modifiers & ConsoleModifiers.Alt) != 0) Console.Write("ALT+"); if((cki.Modifiers & ConsoleModifiers.Shift) != 0) Console.Write("SHIFT+"); if((cki.Modifiers & ConsoleModifiers.Control) != 0) Console.Write("CTL+"); Console.WriteLine(cki.Key.ToString()); >while (cki.Key != ConsoleKey.Escape); > > // This example displays output similar to the following: // Press any combination of CTL, ALT, and SHIFT, and a console key. // Press the Escape (Esc) key to quit: // // a --- You pressed A // k --- You pressed ALT+K // ► --- You pressed CTL+P // --- You pressed RightArrow // R --- You pressed SHIFT+R // --- You pressed CTL+I // j --- You pressed ALT+J // O --- You pressed SHIFT+O // § --- You pressed CTL+U 
open System // Prevent example from ending if CTL+C is pressed. Console.TreatControlCAsInput while cki.Key <> ConsoleKey.Escape do cki 0 then printf "ALT+" if int (cki.Modifiers &&& ConsoleModifiers.Shift) <> 0 then printf "SHIFT+" if int (cki.Modifiers &&& ConsoleModifiers.Control) <> 0 then printf "CTL+" printfn $"" // This example displays output similar to the following: // Press any combination of CTL, ALT, and SHIFT, and a console key. // Press the Escape (Esc) key to quit: // // a --- You pressed A // k --- You pressed ALT+K // ► --- You pressed CTL+P // --- You pressed RightArrow // R --- You pressed SHIFT+R // --- You pressed CTL+I // j --- You pressed ALT+J // O --- You pressed SHIFT+O // § --- You pressed CTL+U 
Class Example Public Shared Sub Main() Dim cki As ConsoleKeyInfo ' Prevent example from ending if CTL+C is pressed. Console.TreatControlCAsInput = True Console.WriteLine("Press any combination of CTL, ALT, and SHIFT, and a console key.") Console.WriteLine("Press the Escape (Esc) key to quit: " + vbCrLf) Do cki = Console.ReadKey() Console.Write(" --- You pressed ") If (cki.Modifiers And ConsoleModifiers.Alt) <> 0 Then Console.Write("ALT+") If (cki.Modifiers And ConsoleModifiers.Shift) <> 0 Then Console.Write("SHIFT+") If (cki.Modifiers And ConsoleModifiers.Control) <> 0 Then Console.Write("CTL+") Console.WriteLine(cki.Key.ToString) Loop While cki.Key <> ConsoleKey.Escape End Sub End Class ' This example displays output similar to the following: ' Press any combination of CTL, ALT, and SHIFT, and a console key. ' Press the Escape (Esc) key to quit: ' ' a --- You pressed A ' k --- You pressed ALT+K ' ► --- You pressed CTL+P ' --- You pressed RightArrow ' R --- You pressed SHIFT+R ' --- You pressed CTL+I ' j --- You pressed ALT+J ' O --- You pressed SHIFT+O ' § --- You pressed CTL+U 

Комментарии

Метод ReadKey ожидает, то есть блокирует поток, выдающий ReadKey метод, пока не будет нажат символьная или функциональная клавиша. Символьная или функциональная клавиша может быть нажата в сочетании с одной или несколькими клавишами-модификаторами ALT, CTRL или SHIFT. Однако нажатие клавиши-модификатора само по себе не приведет к возврату ReadKey метода.

В зависимости от приложения может потребоваться использовать метод в сочетании ReadKey со свойством KeyAvailable .

Метод ReadKey считывает с клавиатуры, даже если стандартные входные данные перенаправляются в файл с SetIn помощью метода .

См. также раздел

  • ConsoleKey
  • KeyAvailable
  • TreatControlCAsInput
  • CancelKeyPress

Применяется к

ReadKey(Boolean)

Получает следующий нажатый пользователем символ или функциональную клавишу. Нажатая клавиша может быть отображена в окне консоли.

public: static ConsoleKeyInfo ReadKey(bool intercept);
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")] public static ConsoleKeyInfo ReadKey (bool intercept);
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")] [System.Runtime.Versioning.UnsupportedOSPlatform("android")] [System.Runtime.Versioning.UnsupportedOSPlatform("ios")] [System.Runtime.Versioning.UnsupportedOSPlatform("tvos")] public static ConsoleKeyInfo ReadKey (bool intercept);
public static ConsoleKeyInfo ReadKey (bool intercept);
[] static member ReadKey : bool -> ConsoleKeyInfo
[] [] [] [] static member ReadKey : bool -> ConsoleKeyInfo
static member ReadKey : bool -> ConsoleKeyInfo
Public Shared Function ReadKey (intercept As Boolean) As ConsoleKeyInfo
Параметры

Определяет, следует ли отображать нажатую клавишу в окне консоли. Значение true , чтобы не отображать нажатую клавишу; в противном случае — значение false .

Возвращаемое значение

Объект, описывающий константу ConsoleKey и символ Юникода (при наличии), соответствующий нажатой клавише консоли. Этот объект ConsoleKeyInfo также описывает в битовой комбинации значений ConsoleModifiers, нажимались ли клавиши-модификаторы (одна или несколько) Shift, Alt или Ctrl одновременно с клавишей консоли.

Исключения

Свойство In перенаправлено из потока, отличного от консоли.

Примеры

Одним из наиболее распространенных способов ReadKey использования метода является остановка выполнения программы до тех пор, пока пользователь не нажмет клавишу и приложение не завершит работу или не отобразит дополнительное окно с информацией. В следующем примере метод используется ReadKey(Boolean) для ожидания нажатия пользователем клавиши ВВОД перед завершением приложения. Обратите внимание, что если пользователь нажимает любую другую клавишу, она не передается в консоль.

using System; public class Example < public static void Main() < DateTime dat = DateTime.Now; Console.WriteLine("The time: at ", dat); TimeZoneInfo tz = TimeZoneInfo.Local; Console.WriteLine("The time zone: \n", tz.IsDaylightSavingTime(dat) ? tz.DaylightName : tz.StandardName); Console.Write("Press to exit. "); while (Console.ReadKey(true).Key != ConsoleKey.Enter) <> > > // The example displays output like the following: // The time: 11/11/2015 at 4:02 PM: // The time zone: Pacific Standard Time 
open System let dat = DateTime.Now printfn $"The time: at " let tz = TimeZoneInfo.Local printfn $"The time zone: \n" printf"Press to exit. " while Console.ReadKey(true).Key <> ConsoleKey.Enter do () // The example displays output like the following: // The time: 12/28/2021 at 8:37 PM // The time zone: Pacific Standard Time 
Module Example Public Sub Main() Dim dat As Date = Date.Now Console.WriteLine("The time: at ", dat) Dim tz As TimeZoneInfo = TimeZoneInfo.Local Console.WriteLine("The time zone: ", If(tz.IsDaylightSavingTime(dat), tz.DaylightName, tz.StandardName)) Console.WriteLine() Console.Write("Press to exit. ") Do While Console.ReadKey(True).Key <> ConsoleKey.Enter Loop End Sub End Module ' The example displays the following output: ' The time: 11/11/2015 at 4:02 PM ' The time zone: Pacific Standard Time 

В следующем примере метод используется ReadKey(Boolean) для отображения сведений о клавише, нажатой пользователем, без повторения этой клавиши в консоли.

using namespace System; void main() < ConsoleKeyInfo cki; // Prevent example from ending if CTL+C is pressed. Console::TreatControlCAsInput = true; Console::WriteLine("Press any combination of CTL, ALT, and SHIFT, and a console key."); Console::WriteLine("Press the Escape (Esc) key to quit: \n"); do < cki = Console::ReadKey(true); Console::Write("You pressed "); if ((cki.Modifiers & ConsoleModifiers::Alt) != ConsoleModifiers()) Console::Write("ALT+"); if ((cki.Modifiers & ConsoleModifiers::Shift) != ConsoleModifiers()) Console::Write("SHIFT+"); if ((cki.Modifiers & ConsoleModifiers::Control) != ConsoleModifiers()) Console::Write("CTL+"); Console::WriteLine("(character '')", cki.Key, cki.KeyChar); > while (cki.Key != ConsoleKey::Escape); > // This example displays output similar to the following: // Press any combination of CTL, ALT, and SHIFT, and a console key. // Press the Escape (Esc) key to quit: // // You pressed CTL+A (character '☺') // You pressed C (character 'c') // You pressed CTL+C (character '♥') // You pressed K (character 'k') // You pressed ALT+I (character 'i') // You pressed ALT+U (character 'u') // You pressed ALT+SHIFT+H (character 'H') // You pressed Escape (character '←') 
using System; class Example < public static void Main() < ConsoleKeyInfo cki; // Prevent example from ending if CTL+C is pressed. Console.TreatControlCAsInput = true; Console.WriteLine("Press any combination of CTL, ALT, and SHIFT, and a console key."); Console.WriteLine("Press the Escape (Esc) key to quit: \n"); do < cki = Console.ReadKey(true); Console.Write("You pressed "); if ((cki.Modifiers & ConsoleModifiers.Alt) != 0) Console.Write("ALT+"); if ((cki.Modifiers & ConsoleModifiers.Shift) != 0) Console.Write("SHIFT+"); if ((cki.Modifiers & ConsoleModifiers.Control) != 0) Console.Write("CTL+"); Console.WriteLine("(character '')", cki.Key, cki.KeyChar); > while (cki.Key != ConsoleKey.Escape); > > // This example displays output similar to the following: // Press any combination of CTL, ALT, and SHIFT, and a console key. // Press the Escape (Esc) key to quit: // // You pressed CTL+A (character '☺') // You pressed C (character 'c') // You pressed CTL+C (character '♥') // You pressed K (character 'k') // You pressed ALT+I (character 'i') // You pressed ALT+U (character 'u') // You pressed ALT+SHIFT+H (character 'H') // You pressed Escape (character '←') 
open System // Prevent example from ending if CTL+C is pressed. Console.TreatControlCAsInput while cki.Key <> ConsoleKey.Escape do cki 0 then printf "ALT+" if int (cki.Modifiers &&& ConsoleModifiers.Shift) <> 0 then printf "SHIFT+" if int (cki.Modifiers &&& ConsoleModifiers.Control) <> 0 then printf "CTL+" printfn $" (character '')" // This example displays output similar to the following: // Press any combination of CTL, ALT, and SHIFT, and a console key. // Press the Escape (Esc) key to quit: // // You pressed CTL+A (character '☺') // You pressed C (character 'c') // You pressed CTL+C (character '♥') // You pressed K (character 'k') // You pressed ALT+I (character 'i') // You pressed ALT+U (character 'u') // You pressed ALT+SHIFT+H (character 'H') // You pressed Escape (character '←') 
Class Example Public Shared Sub Main() Dim cki As ConsoleKeyInfo ' Prevent example from ending if CTL+C is pressed. Console.TreatControlCAsInput = True Console.WriteLine("Press any combination of CTL, ALT, and SHIFT, and a console key.") Console.WriteLine("Press the Escape (Esc) key to quit: " + vbCrLf) Do cki = Console.ReadKey(True) Console.Write("You pressed ") If (cki.Modifiers And ConsoleModifiers.Alt) <> 0 Then Console.Write("ALT+") If (cki.Modifiers And ConsoleModifiers.Shift) <> 0 Then Console.Write("SHIFT+") If (cki.Modifiers And ConsoleModifiers.Control) <> 0 Then Console.Write("CTL+") Console.WriteLine(" (character '')", cki.Key, cki.KeyChar) Loop While cki.Key <> ConsoleKey.Escape End Sub End Class ' This example displays output similar to the following: ' Press any combination of CTL, ALT, and SHIFT, and a console key. ' Press the Escape (Esc) key to quit: ' ' You pressed CTL+A (character '☺') ' You pressed C (character 'c') ' You pressed CTL+C (character '♥') ' You pressed K (character 'k') ' You pressed ALT+I (character 'i') ' You pressed ALT+U (character 'u') ' You pressed ALT+SHIFT+H (character 'H') ' You pressed Escape (character '←') 

Комментарии

Метод ReadKey ожидает, то есть блокирует поток, выдающий ReadKey метод, пока не будет нажат символьная или функциональная клавиша. Символьная или функциональная клавиша может быть нажата в сочетании с одной или несколькими клавишами-модификаторами ALT, CTRL или SHIFT. Однако нажатие клавиши-модификатора само по себе не приведет к возврату ReadKey метода.

intercept Если параметр имеет значение true , нажатая клавиша перехватывается и не отображается в окне консоли; в противном случае отображается нажатая клавиша.

В зависимости от приложения может потребоваться использовать метод в сочетании ReadKey со свойством KeyAvailable .

Метод ReadKey считывает с клавиатуры, даже если стандартные входные данные перенаправляются в файл с SetIn помощью метода .

См. также раздел

  • ConsoleKey
  • KeyAvailable
  • TreatControlCAsInput
  • CancelKeyPress

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *