スキップしてメイン コンテンツへ

 none
Windowsのキー入力について教えてください RRS feed

  • 質問

  • WindowsアプリケーションをC++で開発しています。

    キーイベントを取得するには、まずはWM_KEYDOWNを取得。
    もっと早く知りたい場合は、グローバルフック。
    さらに早く知りたい場合は、KeyboardFilterDriverを開発...

    このようにしてWindowsのキー入力について深堀してきたのですが、ハードからのキー入力をどのようにソフトで処理しているのか、一連の流れがつかめません。
    ハードからカーネル、ドライバ、ユーザーランド、ユーザーアプリケーション....といったキー入力の一連の流れを詳しく教えてはいただけないでしょうか。

    目的は、ユーザーランド側(システムではない方)でいち早くキー入力を取得したいのです。
    ドライバ開発からすればシステムの一部としてキー入力を取得できるかもしれませんが、それではアプリケーションを利用できる層は限られています。(管理者でないといけない)
    なので、キー入力の仕組みをきちんと理解して、キー入力を取得できるようにしたいのです。(ユーザーランド側で)



    よろしくお願いします。

    2019年4月19日 15:22

すべての返信

  • マルチポスト https://ja.stackoverflow.com/q/54355/4236

    # ご本人は他では質問していないと主張されていますが…。

    2019年4月22日 7:01
  • 投稿時にエラーとなり投稿できていないものだと勘違いしておりました...

    申し訳ありません。

    2019年4月22日 7:44
  • 「信用できる情報を見極めなさい」と忠告したけど、まさかここに来るとは。w
    stackoverflow で kunif さんが提示されている kaspersky の記事は、非常に分かりやすく説明されているし、最新の Windows 10 でも基本的にこれと同じアーキテクチャ。
    なので、これをちゃんと読んで理解すればいい。
    (この記事は、MSDN ドキュメントよりもわかりやすく説明されている。。。と個人的には思う。)
    これを読んでもわからないのであれば、Windows System の Kernel Mode Architecture に関する根本的な知識が足りていないということ。
    それらを学びたいのであれば、下記技術書を熟読することをお勧めする。
    (何回読み直しても???なことが満載だけど、読み返せばその度に理解が深まる。)

    ☆ インサイド Windows
    (最新版の第7版はまだ高いけど、第4版なら Book-off とかで安く売ってる。)

    ☆ Microsoft WDMプログラミング
    (これも Book-off とかで安く売ってる。)
    2019年4月22日 9:37