T:5403 Y:9231 Total:02798274 Online:331

    Flashの組み込みプログラミング講座

「AmebaKING」アメブロ売上倍増&アクセスアップの多機能ツール

2004/11/24

WindowsXPのエスケープシーケンス カテゴリー TIPSなど

 WindowsNT Link 以降の32BitのWindows Link ではいわゆるDOS窓、すなわちコマンドプロンプト Link では、エスケープシーケンス Link 【G 】をサポートしていませんね。



身近で(学生さんが)Cのプログラム Link でシェル(DOS窓 )場の文字 Link をエスケープシーケンスで色を変えたいんですけど・・という相談がありました。いろいろ情報 Link もあるのですが、大事な部分が抜けています。



Windows側では、16ビット Link のプログラムを起動する前には必ず仮想DOS 上のドライバー Link 等の組み込み Link を行う仕組みなんですがこれが、



1.DOSプログラムの場合 -> C:¥SysemRoot¥System32¥CONFIG.NT |C#V| AUTOEXEC.NT

2.Windowsプログラムは -> C:¥SysemRoot¥System32¥CONFIG.WOW |C#V| AUTOEXEC.NT

となります。



ですから、DOSプログラムを処理する場合には、CONFIG.NT にはNECのPC9801 Link と違って、ansi.sysを組み込んでやる必要があります。

ファイル Link の最後の方に・・



device=%SystemRoot%¥system32¥ANSI Link .SYS

dosonly



を入れましょう。

ここからが大事なんですが、16ビットのDOSプログラムを起動すると自動的に認識してくれますが、Cコンパイラ Link が32ビット Link の場合には、DOS窓(command.com)ではなくて、CMD.EXE が起動されるでしょう。



したがって、明示的 LinkCOMMAND.COM Link を起動した方が確実です。

このDOS窓から、コマンドライン Link でプログラムを起動するとエスケープシーケンスが効いているはずです。ためしに次のコマンド Link入力 Link して見て Link ください。

PROMPT=[$p]% $e[33m

DIR

これで、プロンプトの色等が変化していればOKです。



注意 Link ですが、command.com は16ビット用ですから通常 Link の終了をするとかなりWindowsのほうで処理を考え込んでしまいます。笑



これを終了するときにもコマンドライン上から、EXIT Link で抜けてください。ここが肝心です。:P

― posted by i2lab at 10:43 am pingTrackBack [0]

この記事に対するコメントは締め切られています





Top! Top!
blog seo tool : track word blog SEO tool
[プレスブログ]価値あるブログに掲載料をお支払いします。