• ベストアンサー

スキャンコード取得は MapVirtualKey を使う?

bugmaruの回答

  • bugmaru
  • ベストアンサー率38% (76/195)
回答No.1

UINT MapVirtualKey( UINT uCode, // 仮想キーコードまたはスキャンコード UINT uMapType // 実行したい変換の種類 ); uMapType = 0をセットして、uCodeに仮想キーを設定すれば戻り値として スキャンコードが返されます

yasu
質問者

お礼

ありがとうございます。マイクロソフトのHPで 確認しました。しかし、以下で仮想キーコードらしき ものが取れているようなんですが、 test = HIBYTE(GetAsyncKeyState( VK_LSHIFT )); その次に test2 = MapVirtualKey(test, 0) ・・・とやると、test2 に本来のスキャンコードと別の 数値が返って来るので悩んでいるところだったりします。 ( VK_LSHIFT = 2a だが、128 が返って来る ) 今も頭いたいです・・・

yasu
質問者

補足

なんとか目星がつきました。 ヒントをいただきまして、本当に ありがとうございました。

関連するQ&A

  • SendInputにおけるスキャンコードの意味

    お世話になっております。 Win32APIのSendInput関数についてご教授願いたく質問させていただきます。 C#にて、SendInputを使ってソフトウェアキーボードのようにキー入力を行いたいと考えています。 その際にSendInputにKEYBDINPUT構造体をメンバに持つINPUT構造体を渡しています。 private struct KEYBDINPUT { public ushort wVk; public ushort wScan; public uint dwFlags; public uint time; public IntPtr dwExtraInfo; } wVkに仮想キーコードを入れてwScanは0で試しているのですが無事に想定した通りに仮想キーコードに対応する文字が入力できています。 ただ、Webで調べたところwScanにきちんとスキャンコード(MapVirtualKeyで取得)も入れているサンプルも多く見つけました。 そこで、スキャンコードを入れて試したところ、前者と同様に適切に入力することができました。 となると、wScanの設定の有無はどのように影響が出るのでしょうか。 問題がなければ常にwScanを入れておけば良いのかも知れませんが、仕様として分からないまま使うのは憚られます。。。 ご存じの方はご教授願えないでしょうか。 宜しくお願い致します。

  • 仮想キーコード、スキャンコードの拾い方

    Cで、ファンクションキーを含む、キーボードのオン・ オフした際の、仮想キーコード、及び、スキャンコード を拾いたいんです。 画面で何を押したか確認できるような簡単なAPを業務の 必要にせまられて作りたいのですが、サンプルコード とかどこかに落ちていないでしょうか。 仕様 例えば、vf3, vf4, vf5の各キ-を押したとき、以下の スキャンコ-ドと仮想キ-コ-ドを発生する。 vf3 : 0x45+E0, VK_NUMLOCK vf4 : 0x46, VK_OEM_SCROLL vf5 : 0x29, VK_DBE_SBCSCHAR/VK_DBE_DBCSCHAR 雑誌の付録にあったよ、とか以前こんなの作ったこと あるよ、とかどんな小さな情報でも結構です。 ご存知の方がいましたらなにとぞよろしくお願いします。 m(__)m m(__)m m(__)m

  • Key.getAscii() について

    どうもこんばんわ。 ActionScript 勉強中の者です。 キーボードのあるキーが押されたら、Key.getAscii() でアスキーコードを取得し、それを String.fromCharCode(取得したアスキーコード) で文字に変換して、ダイナミックテキストに表示させる、といったようなことをやってみたいと思っているのですが、どうも Key.getAscii() で取得する値が変というかおかしいというか、正しく表示されないようです。 英語大文字・小文字については何ら問題はないのですが、ある特定の記号となるとダメみだいです。(_ とか * とか) 記号であっても、正しくキーコードを取得することはできないのでしょうか? ものすごく初歩的で漠然とした質問で申し訳ないのですが、宜しくお願いいたします。 環境 OS:WindowsXP Flash:MX 2004

  • httpステータスコード 取得

    AndroidStudioでステータスコードを取得する方法について https://developer.android.com/reference/java/net/HttpURLConnection.html 404や500などのhttpステータスコードを取得したいのですが上記の公式リファレンスで調べてみたところ 「HTTP_NOT_FOUND」を使えば404のコードが取得できる可能性があると思っていて タッチイベントなら public boolean onTouchEvent(MotionEvent event) {....}などのメソッドがあると思うのですが どのメソッドで使えば良いのかなど コードのサンプルを調べているのですが中々見つかりません。 「HTTP_NOT_FOUND」はどのメソッドで使えばいいのでしょうか? 目的 ・Webviewにて表示しているアプリでサイトが見つからないときに404などのコードをエラー画面に表示し500などの場合も別のエラーページを表示したい。

    • ベストアンサー
    • Java
  • OSの文字コードを取得

    ココでも、googleでも検索したのですが みつけられなかったので教えてください。 Perlスクリプトを書いているのですが OSの文字コードを取得する方法があれば知りたいです。 具体的には Encode::from_to($aaa, "utf8","euc-jp"); という部分の"euc-jp"を、直で書きたくないのです。 my $os_encode = *****; として、なんとかうまく取得して Encode::from_to($aaa, "utf8",$os_encode); としたいのです。 OSの文字コードを取得する方法があれば教えてください。 よろしくお願いいたします。

  • VC++2005でコードの再フォーマットのような機能

    最近、VBからVC++2005へ移行しました。 "コードの再フォーマット"というのはVB固有のものらしいのですが、VC++2005にも同様(または類似)の機能はあるのでしょうか? 具体的には ・変数やオブジェクトの大文字と小文字の修正 ・文字の間隔の自動調整 などを行える機能を探しています。 よろしくお願いします。

  • NortonAntiVirus2003完全スキャンできない

    NortonAntiVirus2003を使用しています(WindowXP)。 2005年5月に完全スキャンしたっきりですので メイン画面の完全スキャンが警告状態です。 完全スキャンをするのですが、あるファイルのところにくると とまってしまい進みません。いつも特定のファイルです。 何回やってもいつも同じところ・・・(泣) 昨夜も止まったままの状態で、いつかは進むだろうと そのままにしておいて朝起きたら全くそこから進んでいませんでした。 特定のファイルとは、マイドキュの マイミュージック:\iTunes:\iTunesMusic の中のMPEG4ファイルです。 スキャン画面のファイル表示は、エクスプローラで見るファイル名と違い 「\\\\\\\\\\\\\\\\\\\\\\」という文字がみえます。 質問をどこまで具体的に示せばよいのかわからないのですが 何かヒントになることがあれば教えてください。 とにかく一度完全スキャンしたいのです。

  • VC++のソースコードをチェックするツール

    VC++でプログラミングしているのですが、開発効率を あげるために、ソースコードのチェックツールがあれば それを使おうかと思っています。 具体的には、不定値参照や未使用変数などを検出したいです。 このようなツールはありますでしょうか? よろしくお願い足します。

  • キーボードが勝手に押されてしまいます。

    DELLの「INSPIRON 1501」を使っていまして、一定時間ごとにキーが押されているのですが、スキャンコードを調べたところ、「0xe00d」でどうやらテンキーのEnterが押されているようです。 レジストリで「0x0000」に割り当てているのですが、Alt+Tab を使う際にいずれのキーコードがきても、表示が消えてしまうので、不便で仕方がないのですが、これを解消する方法はないでしょうか?

  • オンラインスキャンができなくなりました

    ウイルスバスターオンラインスキャンのページから「検索画面を表示する」をクリックしたら、 「xscan53.cabをインストールしますか?」というダイアログが表示されたのでそれをインストールしました するとそれ以後「検索画面を表示する」をクリックすると 「ウイルスバスター On-Line Scanを実行できません。このWebサイトはホストのウイルスバスター On-Line Scanによって許可されていません。」 というダイアログが表示されTrend Microの米国サイトにつながってしまう様になり オンラインスキャンが全くできなくなってしまいました。 どうすれば良いかアドバイスをください 以前までは問題無く検索画面が表示されスキャンもできていました。 私のパソコンの仕様です 使用しているOS:Windows98 使用しているブラウザ:unDonut 使用しているCPUの種類:PentiumIII800MHz 使用しているメモリの容量:128MB