ConsoleKeyInfo 構造体とは? わかりやすく解説

ConsoleKeyInfo 構造体

メモ : この構造体は、.NET Framework version 2.0新しく追加されたものです。

コンソール キーが表す文字や、ShiftAltCtrl の各修飾子キーの状態など、押されコンソール キー記述します

名前空間: System
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

<SerializableAttribute> _
Public Structure ConsoleKeyInfo
Dim instance As ConsoleKeyInfo
[SerializableAttribute] 
public struct ConsoleKeyInfo
[SerializableAttribute] 
public value class ConsoleKeyInfo
/** @attribute SerializableAttribute() */ 
public final class ConsoleKeyInfo extends ValueType
JScript では、構造体使用できますが、新規に宣言することはできません。
解説解説

ConsoleKeyInfo 型は、ユーザー作成することを意図した型ではありません。代わりに、この型は、Console.ReadKey メソッド呼び出し対す応答としてユーザー返されます。

ConsoleKeyInfo オブジェクトは、ConsoleKey 定数と、押されコンソール キー対応する Unicode 文字 (存在する場合) を記述しますまた、ConsoleKeyInfo オブジェクトは、1 つ上の ShiftAltCtrl の各修飾子キーコンソール キー同時に押されたかどうかを ConsoleModifiers 値のビットごとの組み合わせ記述します

使用例使用例

読み取り操作ConsoleKeyInfo オブジェクト使用するコード例次に示します

' This example demonstrates the Console.ReadKey() method
Imports System
Imports System.Text
Imports Microsoft.VisualBasic

Class Sample
   Public Shared Sub Main()
      Dim cki As ConsoleKeyInfo
      '                   0        1         2         3         4 
        5         6
      '                   123456789012345678901234567890123456879012345678901234567890
      Dim m1 As String =
 "This example discovers the console and modifier keys "
 & _
                         "that you press." & vbCrLf
      Dim m2 As String =
 "Press any combination of CTL, ALT, and SHIFT modifier keys,
 " & _
                         "and a console key." &
 vbCrLf & _
                         "Press the Escape (Esc) key to quit:
 "
      Dim m3 As String =
 "You pressed "
      Dim m4 As String =
 " (character '{0}')."
      Dim sb As New StringBuilder()
      '
      ' The Console.TreatControlCAsInput property prevents this example
 from
      ' ending if you press CTL+C, however all other operating system
 keys and 
      ' shortcuts, such as ALT+TAB or the Windows Logo key, are still
 in effect. 
      '
      Console.TreatControlCAsInput = True
      Console.WriteLine(m1)
      Do
         Console.WriteLine(m2)
         sb.Length = 0
         cki = Console.ReadKey(True)
         sb.Append(m3)
         If cki.Modifiers <> 0 Then
            If(cki.Modifiers And ConsoleModifiers.Alt)
 <> 0 Then
               sb.Append("ALT+")
            End If
            If(cki.Modifiers And ConsoleModifiers.Shift)
 <> 0 Then
               sb.Append("SHIFT+")
            End If
            If(cki.Modifiers And ConsoleModifiers.Control)
 <> 0 Then
               sb.Append("CTL+")
            End If
         End If
         sb.Append(cki.Key.ToString())
         sb.AppendFormat(m4, cki.KeyChar)
         sb.AppendLine().AppendLine()
         Console.WriteLine(sb.ToString())
      Loop While cki.Key <> ConsoleKey.Escape
   End Sub 'Main ' Note: This
 example requires the Escape (Esc) key.
End Class 'Sample
'
'This example produces results similar to following text:
'
'This example discovers the console and modifier keys that you press.
'
'Press any combination of CTL, ALT, and SHIFT modifier keys, and a console
 key.
'Press the Escape (Esc) key to quit:
'You pressed A (character 'a').
'
'
'Press any combination of CTL, ALT, and SHIFT modifier keys, and a console
 key.
'Press the Escape (Esc) key to quit:
'You pressed SHIFT+A (character 'A').
'
'
'Press any combination of CTL, ALT, and SHIFT modifier keys, and a console
 key.
'Press the Escape (Esc) key to quit:
'You pressed ALT+SHIFT+CTL+A (character ' ').
'
'
'Press any combination of CTL, ALT, and SHIFT modifier keys, and a console
 key.
'Press the Escape (Esc) key to quit:
'You pressed Escape (character '?').
'
// This example demonstrates the Console.ReadKey() method
using System;
using System.Text;

class Sample 
{
    public static void Main()
 
    {
    ConsoleKeyInfo cki;
//               0        1         2         3         4         5
         6
//               123456789012345678901234567890123456879012345678901234567890
    String m1 = "This example discovers the console and modifier keys "
 +
                "that you press.\n";
    String m2 = "Press any combination of CTL, ALT, and SHIFT modifier keys,
 " +
                "and a console key.\nPress the Escape (Esc) key to quit: ";
    String m3 = "You pressed ";
    String m4 = " (character '{0}').";
    StringBuilder sb = new StringBuilder();   
//
// The Console.TreatControlCAsInput property prevents this example from
// ending if you press CTL+C, however all other operating system keys
 and 
// shortcuts, such as ALT+TAB or the Windows Logo key, are still in
 effect. 
//
    Console.TreatControlCAsInput = true;
    Console.WriteLine(m1);
    do 
    {
        Console.WriteLine(m2);
        sb.Length = 0;
        cki = Console.ReadKey(true);
        sb.Append(m3);
        if (cki.Modifiers != 0)
            {
            if ((cki.Modifiers & ConsoleModifiers.Alt) !=
 0)
                sb.Append("ALT+");
            if ((cki.Modifiers & ConsoleModifiers.Shift) !=
 0)
                sb.Append("SHIFT+");
            if ((cki.Modifiers & ConsoleModifiers.Control)
 != 0)
                sb.Append("CTL+");
            }
        sb.Append(cki.Key.ToString());
        sb.AppendFormat(m4, cki.KeyChar);
        sb.AppendLine().AppendLine();
        Console.WriteLine(sb.ToString());
    } while (cki.Key != ConsoleKey.Escape);
// Note: This example requires the Escape (Esc) key.
    }
}
/*
This example produces results similar to following text:

This example discovers the console and modifier keys that you press.

Press any combination of CTL, ALT, and SHIFT modifier keys, and a console key.
Press the Escape (Esc) key to quit:
You pressed A (character 'a').


Press any combination of CTL, ALT, and SHIFT modifier keys, and a console key.
Press the Escape (Esc) key to quit:
You pressed SHIFT+A (character 'A').


Press any combination of CTL, ALT, and SHIFT modifier keys, and a console key.
Press the Escape (Esc) key to quit:
You pressed ALT+SHIFT+CTL+A (character ' ').


Press any combination of CTL, ALT, and SHIFT modifier keys, and a console key.
Press the Escape (Esc) key to quit:
You pressed Escape (character '?').
*/
// This example demonstrates the Console.ReadKey() method
using namespace System;
using namespace System::Text;
int main()
{
   ConsoleKeyInfo cki;
   
   //               0        1         2         3         4         5
         6
   //               123456789012345678901234567890123456879012345678901234567890
   String^ m1 = "This example discovers the console and modifier keys "
   "that you press.\n";
   String^ m2 = "Press any combination of CTL, ALT, and SHIFT modifier keys,
 "
   "and a console key.\nPress the Escape (Esc) key to quit: ";
   String^ m3 = "You pressed ";
   String^ m4 = " (character '{0}').";
   StringBuilder^ sb = gcnew StringBuilder;
   
   //
   // The Console.TreatControlCAsInput property prevents this example
 from
   // ending if you press CTL+C, however all other operating system keys
 and 
   // shortcuts, such as ALT+TAB or the Windows Logo key, are still in
 effect. 
   //
   Console::TreatControlCAsInput = true;
   Console::WriteLine( m1 );
   do
   {
      Console::WriteLine( m2 );
      sb->Length = 0;
      cki = Console::ReadKey( true );
      sb->Append( m3 );
      if ( (int)cki.Modifiers )
      {
         if ( (int)(cki.Modifiers & ConsoleModifiers::Alt)
 )
                  sb->Append( "ALT+" );

         if ( (int)(cki.Modifiers & ConsoleModifiers::Shift)
 )
                  sb->Append( "SHIFT+" );

         if ( (int)(cki.Modifiers & ConsoleModifiers::Control)
 )
                  sb->Append( "CTL+" );
      }

      sb->Append( cki.Key.ToString() );
      sb->AppendFormat( m4, cki.KeyChar );
      sb->AppendLine()->AppendLine();
      Console::WriteLine( sb );
   }
   while ( cki.Key != ConsoleKey::Escape );

   
   // Note: This example requires the Escape (Esc) key.
}

/*
This example produces results similar to following text:

This example discovers the console and modifier keys that you press.

Press any combination of CTL, ALT, and SHIFT modifier keys, and a console key.
Press the Escape (Esc) key to quit:
You pressed A (character 'a').


Press any combination of CTL, ALT, and SHIFT modifier keys, and a console key.
Press the Escape (Esc) key to quit:
You pressed SHIFT+A (character 'A').


Press any combination of CTL, ALT, and SHIFT modifier keys, and a console key.
Press the Escape (Esc) key to quit:
You pressed ALT+SHIFT+CTL+A (character ' ').


Press any combination of CTL, ALT, and SHIFT modifier keys, and a console key.
Press the Escape (Esc) key to quit:
You pressed Escape (character '?').
*/
// This example demonstrates the Console.ReadKey() method
import System.*;
import System.Text.*;

class Sample
{
    public static void main(String[]
 args)
    {
        ConsoleKeyInfo cki;
        //        0        1         2         3         4         5
         6
        //        123456789012345678901234567890123456879012345678901234567890
        String m1 = "This example discovers the console and modifier keys "
            + "that you press.\n";
        String m2 = "Press any combination of CTL, ALT, and SHIFT modifier keys,
 "
            + "and a console key.\nPress the Escape (Esc) key to quit: ";
        String m3 = "You pressed ";
        String m4 = " (character '{0}').";
        StringBuilder sb = new StringBuilder();
        //
        // The Console.TreatControlCAsInput property prevents this example
 from
        // ending if you press CTL+C, however all other operating system keys
 and 
        // shortcuts, such as ALT+TAB or the Windows Logo key, are still
 in
        // effect.
        //
        Console.set_TreatControlCAsInput(true);
        Console.WriteLine(m1);
        do {
            Console.WriteLine(m2);
            sb.set_Length(0);
            cki = Console.ReadKey(true);
            sb.Append(m3);
            if (!(cki.get_Modifiers().Equals((Int32)0))) {
                if (!((cki.get_Modifiers() & ConsoleModifiers.Alt).ToString().
                    Equals(Convert.ToString(0)))) {
                    sb.Append("ALT+");
                }
                if (!((cki.get_Modifiers() & ConsoleModifiers.Shift).ToString().
                    Equals(Convert.ToString(0)))) {
                    sb.Append("SHIFT+");
                }
                if (!((cki.get_Modifiers() & ConsoleModifiers.Control).ToString().
                    Equals(Convert.ToString(0)))) {
                    sb.Append("CTL+");
                }
            }
            sb.Append(cki.get_Key().ToString());
            sb.AppendFormat(m4, (System.Char)cki.get_KeyChar());
            sb.AppendLine().AppendLine();
            Console.WriteLine(sb.ToString());
        } while (!(cki.get_Key().Equals(ConsoleKey.Escape)));
        // Note: This example requires the Escape (Esc) key.
    } //main
} //Sample
/*
This example produces results similar to following text:

This example discovers the console and modifier keys that you press.

Press any combination of CTL, ALT, and SHIFT modifier keys, and a console key.
Press the Escape (Esc) key to quit:
You pressed A (character 'a').


Press any combination of CTL, ALT, and SHIFT modifier keys, and a console key.
Press the Escape (Esc) key to quit:
You pressed SHIFT+A (character 'A').


Press any combination of CTL, ALT, and SHIFT modifier keys, and a console key.
Press the Escape (Esc) key to quit:
You pressed ALT+SHIFT+CTL+A (character ' ').


Press any combination of CTL, ALT, and SHIFT modifier keys, and a console key.
Press the Escape (Esc) key to quit:
You pressed Escape (character '?').
*/
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバ場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
ConsoleKeyInfo メンバ
System 名前空間
ConsoleModifiers
ConsoleKey 列挙


このページでは「.NET Framework クラス ライブラリ リファレンス」からConsoleKeyInfo 構造体を検索した結果を表示しています。
Weblioに収録されているすべての辞書からConsoleKeyInfo 構造体を検索する場合は、下記のリンクをクリックしてください。
 全ての辞書からConsoleKeyInfo 構造体 を検索

英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「ConsoleKeyInfo 構造体」の関連用語

ConsoleKeyInfo 構造体のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



ConsoleKeyInfo 構造体のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2025 Microsoft.All rights reserved.

©2025 GRAS Group, Inc.RSS