- Windows のコマンドプロンプトで Gauche を使うときに、
コンソールの制御を可能とするモジュールです。
- mscon.scm を Gauche でロード可能なフォルダにコピーします。
(例えば (gauche-site-library-directory) で表示されるフォルダ等)
(use mscon) ; モジュールをロードします
(cls) ; 画面をクリアします(コマンドのため遅い)
(cls2) ; 画面をクリアします2(*)
(screen-size 80 300) ; 画面のバッファのサイズ(w,h)を設定します(単位:文字)(*2)
; (ウィンドウサイズより小さくは設定できません)
(screen-area 0 0 79 24) ; 画面の表示エリア(x1,y1,x2,y2)を設定します(単位:文字)
; (画面のバッファを越える値は設定できません)
; (ディスプレイに入りきらない値は設定できません)
(screen-left) ; 画面の左上のx座標を取得します(単位:文字)
(screen-top) ; 画面の左上のy座標を取得します(単位:文字)
(screen-width) ; 画面の幅を取得します(単位:文字)
(screen-height) ; 画面の高さを取得します(単位:文字)
(screen-buffer-width) ; 画面のバッファの幅を取得します(単位:文字)
(screen-buffer-height) ; 画面のバッファの高さを取得します(単位:文字)
(cursor-x) ; カーソルのx座標を取得します(単位:文字)
(cursor-y) ; カーソルのy座標を取得します(単位:文字)
(cursor-off) ; カーソルを非表示にします
(cursor-on) ; カーソルを表示します
(locate 10 40) ; カーソルを座標(x,y)に移動します(単位:文字)
; (画面のバッファを越える値は設定できません)
(color COL_GREEN) ; 色を設定します
; (設定可能な色の定数はソースコード参照)
(print "HIT ANY KEY!") ;
(keywait) ; キーボードの入力を待ちます
; (戻り値は、入力した文字になります)
(keystate) ; キーボードの状態を取得します(*)
; (戻り値は、キーボードの状態のリストになります。
; 入力がない場合は、空リストが返ります。
; キーボードの状態1個は、数値6個で構成されるリストです。
; 数値6個の意味は、ソースコードのkeystate等を参照)
(keystate-test) ; キーボード状態取得テスト用です(*)
(keywait2 3000) ; キーボードの入力を待ちます2(タイムアウト設定可能(msec))(*)
; (タイムアウト値を省略すると、入力があるまで待ちます。
; 戻り値は、入力時のキーボードの状態のリストになります。
; 入力がなくタイムアウトした場合は、空リストが返ります。
; キーボードの状態1個は、数値6個で構成されるリストです。
; 数値6個の意味は、ソースコードのkeystate等を参照)
(keyclear) ; キーボードの入力をクリアします(*)
(puttext "ABCDE" 10 10) ; 座標(x,y)に文字列を表示します
; (引数の順番は、文字列 x y の順です)
(putcolor 5 10 10 COL_GREEN) ; 座標(x,y)からn文字分に色を設定します(*)
; (引数の順番は、文字数 x y 色 の順です)
(set-console-title "test") ; コンソールのタイトル(文字列)を設定します(*2)
(get-console-title) ; コンソールのタイトル(文字列)を取得します
(*)マークがある命令は Gauche v0.9.3.3 以前では使用できません。
使用可能かどうかは (mscon-all-available?) でチェックできます。
(*2)マークがある命令は Gauche v0.9.4 以前では使用できません。
Gauche v0.9.5 では使用可能です。
-
write や display が、指定したカーソル位置に表示しないことがあります。
→ flush すれば表示されます。 -
最下行に print で表示すると、改行のためスクロールします。
-
puttext は、color で指定した色では表示しません。
(色をつけるには putcolor と併用する必要があります) -
リダイレクトには非対応です(エラーになります)。
-
Windows 8 上の Gauche v0.9.3.3 では、付属の test.scm を実行すると、
しばらく動いた後に実行時エラーが発生します。
(実数の計算でエラーになっているようだが、詳細原因不明)
(Gauche v0.9.4 では、エラーは発生しません)
- OS
- Windows 8.1 (64bit)
- Windows XP Home SP3
- 言語
- Gauche v0.9.5
- Gauche v0.9.4
- Gauche v0.9.3.3
- 2014-6-22 v1.00 (初版)
- 2014-6-22 v1.01 コメント修正のみ
- 2014-6-23 v1.02 コメント修正のみ
- 2014-6-23 v1.03 keywait2の処理を修正
- 2014-6-23 v1.04 cls2の処理を修正
(sys-fill-console-output-characterの引数型変更(文字列→文字)) - 2014-6-24 v1.05 コメント修正のみ
- 2014-6-24 v1.06 keystate-testの処理を一部見直し
- 2014-6-25 v1.07 keywait2の処理を修正
- 2014-7-21 v1.08 コマンド追加(screen-left,screen-top,cursor-x,cursor-y)
一部処理見直し - 2014-7-22 v1.09 keystateの処理を一部見直し
- 2014-7-23 v1.10 keywait2の処理を一部見直し
- 2014-7-24 v1.11 clsの処理を一部見直し
- 2014-8-6 v1.12 インデント修正のみ
- 2014-8-8 v1.13 一部処理見直し(mscon-all-available?,rlet1)
- 2014-8-9 v1.14 一部処理見直し(let*)
- 2014-8-14 v1.15 keystate-testの処理を一部見直し
- 2014-8-17 v1.16 一部処理見直し(and #t)
- 2014-9-12 v1.17 コマンド追加(screen-size,screen-area)
- 2014-9-13 v1.18 一部処理見直し(screen-sizeの引数)
- 2014-9-17 v1.19 コマンド追加(screen-buffer-width,screen-buffer-height)
- 2014-9-23 v1.20 一部処理見直し(let*)
- 2014-11-26 v1.21 コメント修正のみ
- 2015-7-31 v1.22 コマンド追加(set-console-title,get-console-title)
- 2015-8-13 v1.23 一部処理見直し(keystate,keystate-test,keywait2)
- 2015-10-12 v1.24 仮想キーコードの定数をエクスポート
- 2015-10-12 v1.25 一部処理見直し(keywait2)
- 2016-3-14 v1.26 keywait2の戻り値変更等
- 2016-3-17 v1.27 変数名変更
- 2016-6-9 v1.28 一部処理見直し(sys-peek-console-input, sys-read-console-input,
mscon-all-available?, keystate) - 2016-10-14 v1.29 一部処理見直し(keystate-test)
- 2016-11-25 v1.30 コメント修正のみ
(2016-11-25)