人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Windows(32bit)のコンソールAPIについて、分かり易く解説された書籍を紹介して下さい。
GetConsoleScreenBufferInfo()関数、SetConsoleCursorPosition()関数辺りから、コンソールアプリケーションでのマウス入力の受け取り方辺りまで、を欲しています。
書籍の中のコード例として希望する言語はC/C++です。僕はWindowsの専門家ではありませんが、アマチュア時代とあわせて30年くらいプログラミング経験はありますので、大抵の書籍の難易度は大丈夫だと思います。
僕の手元にある書籍では「Win32システムサービスプログラミング」(http://www.amazon.co.jp/gp/product/4894713713)の「第14章コンソール」がイメージに近いのですが、この書物の第14章を膨らませて1冊にしたようなものが見つかると嬉しいのです。
猫でもわかる?は嫌いではない書物ですが、今回欲している内容(精度や濃さ)に対しては雑な印象になります。
技術書を買うときは書店で手に取って…が僕の基本的な芸風なのですが、仲々良書が見つからず疲れました。皆さんから紹介して頂いた書籍を候補に、再度書店を巡ろうと思っています。どうか宜しくお願いします。


●質問者: キチョー id:Kityo
●カテゴリ:コンピュータ 書籍・音楽・映画
✍キーワード:API Win32 Windows アプリケーション アマチュア
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● AZUY
●50ポイント

だれも書かないようなので、一応。

>コンソールアプリケーションでのマウス入力の受け取り方辺りまで

コンソールアプリケーションでマウス入力のAPIなんてありません。

http://ziddy.japan.zdnet.com/qa4826710.html

◎質問者からの返答

いいえ、出来そうですよ?

単独のAPIで、簡単には出来ない…の意味ならそうでしょうけれども。

質問文面の「Win32システムサービスプログラミング」にもその方法の触りが書いてありますし、同書の中身自体は信用出来ると思っています。

フリーコマンドラインツールのbcc32と対になっているTurbo Debuggerなどは、実際にマウス入力を受け付けているWin32コンソールアプリケーションです。


雰囲気的には、生のMS-DOSでマウスドライバとお話しする程度の苦労で、マウス入力を受け取ることが出来るだろうと踏んでいます。(ポインタの座標が、テキスト座標系で取れるといいな)


ともあれ、AZUYさん回答ありがとうございます。

出来れば再回答にて、良さそうな書籍を紹介して下さい。


2 ● cx20
●300ポイント

書籍は確認していませんが、書籍の情報(特に日本語情報)は少ないのではないかと思います。

MSDN ライブラリにしても、日本語のドキュメントには構造体の説明やサンプルコードへのリンク等が無いことが多いので、できるだけ本家(英語)を参照するようにした方が良いと思います。

(コンソール API に限らず、最新の API やニーズの少ない情報に関しては日本語訳が提供されていないのが実情ですので・・・)

■ コンソール - MSDN ライブラリ(日本語)
http://msdn.microsoft.com/ja-jp/library/cc392639.aspx

[MSDN ライブラリ]
 +-[Win32 および COM 開発]
  +-[Windows ベース サービス]
    +-[ファイルおよび入出力]
     +-[SDK ドキュメント]
       +-[ファイル入出力]
        +-[コンソール]
          +-[リファレンス]
           +-[関数] … コンソール API の説明。ただし、構造体、サンプルコードへのリンクが無い。
■ Character-Mode Applications - MSDN Library(英語)
http://msdn.microsoft.com/en-us/library/ms682010%28VS.85%29.aspx

[MSDN Library]
 +-[Win32 and COM Development]
  +-[System Services]
    +-[DLLs, Process, and Threads]
     +-[Character-Mode Applications]
       +-[About Character-Mode Applications] … コンソールアプリケーションの概要
       +-[Using the Console] … コンソールアプリケーションのサンプル
       +-[Console Reference] … コンソール API の説明。構造体、サンプルコードへのリンク有り。
        +-[Console Functions]
        +-[Console Structures]
        +-[Console WinEvents]

海外サイトでも構わないようでしたら、いくつか、チュートリアルやサンプルがありました。

■ Creating our Window(コンソールウィンドウの作成)

http://www.benryves.com/tutorials/winconsole/

■ Writing to the Console(コンソールに書き込む)

http://www.benryves.com/tutorials/winconsole/2

■ Handling Events(イベントハンドリング(キーボード、マウス))

http://www.benryves.com/tutorials/winconsole/3

■ Using the Keyboard, Mouse and Buffer(キーボード、マウス、バッファを使用する)

http://www.benryves.com/tutorials/winconsole/4

■ Part 1 - describes consoles(コンソールについての説明)

http://www.adrianxw.dk/SoftwareSite/Consoles/Consoles1.html

■ Part 2 - naming consoles, obtaining standard handles, moving the cursor, blocks of characters and clearing the screen(コンソールのタイトルの設定、標準ハンドルの取得、カーソル移動、キャラクタ ブロックとスクリーン クリア)

http://www.adrianxw.dk/SoftwareSite/Consoles/Consoles2.html

■ Part 3 - drawing lines, boxes and grids and hiding/modifying the cursor(ライン、ボックス、グリッドの表示、カーソルの隠蔽と変更)

http://www.adrianxw.dk/SoftwareSite/Consoles/Consoles3.html

■ Part 4 - colour(色)

http://www.adrianxw.dk/SoftwareSite/Consoles/Consoles4.html

■ Part 5 - keyboard and mouse events(キーボード&マウスイベント)

http://www.adrianxw.dk/SoftwareSite/Consoles/Consoles5.html

■ Part 6 - console size issues(コンソールサイズの問題)

http://www.adrianxw.dk/SoftwareSite/Consoles/Consoles6.html

■ ASCII Madness / benryves.com(アスキーアートのアニメーション)

http://www.benryves.com/products/asciimadness

■ ASCII Madness II / benryves.com(アスキーアートのアニメーション)

http://www.benryves.com/products/am2

■ CodeProject: JLib - A Windows Console Library(コンソール向け簡易ライブラリ)

http://www.codeproject.com/KB/winsdk/JLib.aspx

■ CodeProject: Basic Graphics For Your Console Applications.(コンソール向け簡易ライブラリ)

http://www.codeproject.com/KB/recipes/ConsoleAppGraphics.aspx

■ CodeGuru: Win32 Console Application Tools(コンソール向け簡易ライブラリ)

http://www.codeguru.com/cpp/w-d/console/article.php/c3959/

■ RLeez Village - コンソールユーティリティ

http://homepage2.nifty.com/rleez/program_old/console/util.html

あと、関数名が分かっていて、使用例を探したいという場合であれば「Google ソースコード検索」で探すというのも手だと思います。

w3m(テキストブラウザ)や Cygwin(Windows 上の UNIX 互換環境)等がコンソールでマウス処理を行っているようです。

■ Google ソースコード検索

http://www.google.co.jp/codesearch

◎質問者からの返答

詳細に調べて頂き、嬉しいです!

MSDNも英語のほうが充実しているンですね。[Character-Mode Applications]の先を少し探りましたが、間接的ですがhomeが(0,0)位は書いてありました。

adrianxw.dk Win32 Tutorials Home / Working with Windows Consolesも凄くいい感じですね。例の本の「第14章」よりも数倍は豊富な例で見せてくれますし、時間は掛かりそうだけれどpart5まで通読してみようかと思います。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ