 
wincons.rbは、Windows上で動作するRuby用コンソールライブラリです。
      動作確認を行ったRubyのバージョン ruby 2.5.3p105 RubyInstaller x86
   wincons.rbのダウンロード(wincons_v240.7z)
   
Consoleクラス コンソール用クラスです。
| 定数 | 内容 | 
|---|---|
| SW_MAXIMIZE | ウィンドウを最大化します。 | 
| SW_MINIMIZE | ウィンドウを最小化し、Z オーダーが次のトップレベルウィンドウをアクティブにします。 | 
| SW_SHOWNORMAL | ウィンドウを直前の位置とサイズで表示します。ウィンドウをアクティブにします。 | 
| SW_HIDE | ウィンドウを非表示にし、他のウィンドウをアクティブにします。 | 
| SW_SHOW | ウィンドウをアクティブにして、現在の位置とサイズで表示します。 | 
| ca | 文字または漢字(シフトJISまたは、UTF-8コード) キー入力なしまたは該当文字がない時はnil | 
| ikcode | 仮想キーコード 該当コードなしの時は、0 | 
| ikstate | コントロールキーの状態 ビット対応 0ビット RIGHT_ALT_PRESSED 1ビット LEFT_ALT_PRESSED 2ビット RIGHT_CTRL_PRESSED 3ビット LEFT_CTRL_PRESSED 4ビット SHIFT_PRESSED 5ビット NUMLOCK_ON 6ビット SCROLLLOCK_ON 7ビット CAPSLOCK_ON 8ビット ENHANCED_KEY | 
| bi | 正常時:0以外の値 異常時:0 | 
cons1 = Console.new(__ENCODING__)
引数に文字のエンコーディング「__ENCODING__」を指定します。 シフトJIS(magic comment:「Windows-31j」,「shift_jis」)とUTF-8が使用出来ます。
# -*- coding: utf-8 -*-
require "./wincons"
cons = Console.new(__ENCODING__)
icurs,icurv = cons.getCursorInfo       #カーソル状態取得
cons.setCursorInfo(50,1)
cons.setConsoleTitle("Rubyコンソールのテスト")
cons.cls
cons.screen(80,24)
cons.locate(1,0)
cons.color(Console::AQUA | Console::INTENSITY)
cons.cprint("Rubyコンソールのテスト")
cons.locate(2,2)
cons.color(Console::AQUA, Console::BLACK)
cons.cprint("Ruby RUBY ruby")
cons.locate(2,3)
cons.color(Console::AQUA | Console::INTENSITY)
cons.cprint("Ruby RUBY ruby")
cons.locate(2,4)
cons.color(Console::GREEN)
cons.cprint("Ruby RUBY ruby")
cons.locate(2,5)
cons.color(Console::GREEN | Console::INTENSITY)
cons.cprint("Ruby RUBY ruby")
cons.locate(25,2)
cons.color(Console::WHITE, Console::RED)
cons.cprint("TEXCELL TEXCELL texcell")
cons.locate(25,3)
cons.color(Console::WHITE | Console::INTENSITY, Console::RED | Console::INTENSITY)
cons.cprint("TEXCELL TEXCELL texcell")
cons.locate(25,4)
cons.color(Console::RED, Console::WHITE)
cons.cprint("TEXCELL TEXCELL texcell")
cons.locate(25,5)
cons.color(Console::RED | Console::INTENSITY, Console::WHITE | Console::INTENSITY)
cons.cprint("TEXCELL TEXCELL texcell")
cons.locate(60,2)
cons.color(Console::YELLOW | Console::INTENSITY, Console::BLACK)
cons.cprint("日本ニホン123")
cons.locate(60,3)
cons.cprint("記号:☀☁☂☃")
sleep 2
cons.showWindow(Console::SW_MINIMIZE)       #最小化
sleep 2
cons.showWindow(Console::SW_SHOWNORMAL)     #元に戻す
cons.color(Console::WHITE | Console::INTENSITY, Console::BLACK)
cons.locate(20, 8)
cons.cprint("「Q」キー入力で終了します。")
while true do
#   ca,ikcode,ikstate,bi = cons.inkey
   ca = cons.inkey
   if ca[0] == "q" || ca[0] == "Q"
      cons.color(Console::WHITE, Console::BLACK)
      break
   end
   sleep 0.01
end
cons.setCursorInfo(icurs, icurv)      #カーソル状態戻し
   
履歴