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) #カーソル状態戻し
履歴